summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu-xetex/layout
diff options
context:
space:
mode:
authorJonathan Kew <jfkthame@googlemail.com>2008-03-04 13:21:23 +0000
committerJonathan Kew <jfkthame@googlemail.com>2008-03-04 13:21:23 +0000
commitf483a5de9331a257f597282e611ecfb63f5ab118 (patch)
tree756baa5a727dd0438448eb380bb6ca81fb41d534 /Build/source/libs/icu-xetex/layout
parente2603863b071e717675b6a69e97c45a42e55bf2c (diff)
remove old icu version
git-svn-id: svn://tug.org/texlive/trunk@6841 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu-xetex/layout')
-rw-r--r--Build/source/libs/icu-xetex/layout/.cvsignore7
-rw-r--r--Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.cpp52
-rw-r--r--Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.h38
-rw-r--r--Build/source/libs/icu-xetex/layout/AnchorTables.cpp106
-rw-r--r--Build/source/libs/icu-xetex/layout/AnchorTables.h54
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp217
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h239
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicShaping.cpp267
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicShaping.h83
-rw-r--r--Build/source/libs/icu-xetex/layout/AttachmentPosnSubtables.h42
-rw-r--r--Build/source/libs/icu-xetex/layout/CanonData.cpp3754
-rw-r--r--Build/source/libs/icu-xetex/layout/CanonShaping.cpp81
-rw-r--r--Build/source/libs/icu-xetex/layout/CanonShaping.h30
-rw-r--r--Build/source/libs/icu-xetex/layout/CharSubstitutionFilter.h81
-rw-r--r--Build/source/libs/icu-xetex/layout/ClassDefinitionTables.cpp120
-rw-r--r--Build/source/libs/icu-xetex/layout/ClassDefinitionTables.h55
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualGlyphInsertion.h46
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.cpp79
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.h65
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualGlyphSubstitution.h41
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp522
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.h204
-rw-r--r--Build/source/libs/icu-xetex/layout/CoverageTables.cpp87
-rw-r--r--Build/source/libs/icu-xetex/layout/CoverageTables.h44
-rw-r--r--Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.cpp49
-rw-r--r--Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.h41
-rw-r--r--Build/source/libs/icu-xetex/layout/DefaultCharMapper.h57
-rw-r--r--Build/source/libs/icu-xetex/layout/DeviceTables.cpp44
-rw-r--r--Build/source/libs/icu-xetex/layout/DeviceTables.h39
-rw-r--r--Build/source/libs/icu-xetex/layout/ExtensionSubtables.cpp37
-rw-r--r--Build/source/libs/icu-xetex/layout/ExtensionSubtables.h35
-rw-r--r--Build/source/libs/icu-xetex/layout/Features.cpp61
-rw-r--r--Build/source/libs/icu-xetex/layout/Features.h44
-rw-r--r--Build/source/libs/icu-xetex/layout/GDEFMarkFilter.cpp31
-rw-r--r--Build/source/libs/icu-xetex/layout/GDEFMarkFilter.h37
-rw-r--r--Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp69
-rw-r--r--Build/source/libs/icu-xetex/layout/GXLayoutEngine.h125
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.cpp34
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.h96
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphIterator.cpp492
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphIterator.h102
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphLookupTables.cpp32
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphLookupTables.h34
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.cpp166
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h362
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp31
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h51
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp145
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h47
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp122
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h49
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp29
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h48
-rw-r--r--Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp84
-rw-r--r--Build/source/libs/icu-xetex/layout/HanLayoutEngine.h104
-rw-r--r--Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp338
-rw-r--r--Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h125
-rw-r--r--Build/source/libs/icu-xetex/layout/HindiFeatureTags.h42
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicClassTables.cpp419
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp114
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicLayoutEngine.h162
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicRearrangement.h65
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.cpp398
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.h63
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicReordering.cpp731
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicReordering.h299
-rw-r--r--Build/source/libs/icu-xetex/layout/KernTable.cpp222
-rw-r--r--Build/source/libs/icu-xetex/layout/KernTable.h51
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp81
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.h129
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerReordering.cpp491
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerReordering.h132
-rw-r--r--Build/source/libs/icu-xetex/layout/LEFontInstance.cpp154
-rw-r--r--Build/source/libs/icu-xetex/layout/LEFontInstance.h542
-rw-r--r--Build/source/libs/icu-xetex/layout/LEGlyphFilter.h43
-rw-r--r--Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp649
-rw-r--r--Build/source/libs/icu-xetex/layout/LEGlyphStorage.h512
-rw-r--r--Build/source/libs/icu-xetex/layout/LEInsertionList.cpp88
-rw-r--r--Build/source/libs/icu-xetex/layout/LEInsertionList.h174
-rw-r--r--Build/source/libs/icu-xetex/layout/LELanguages.h67
-rw-r--r--Build/source/libs/icu-xetex/layout/LEScripts.h140
-rw-r--r--Build/source/libs/icu-xetex/layout/LESwaps.h121
-rw-r--r--Build/source/libs/icu-xetex/layout/LETypes.h568
-rw-r--r--Build/source/libs/icu-xetex/layout/LayoutEngine.cpp578
-rw-r--r--Build/source/libs/icu-xetex/layout/LayoutEngine.h484
-rw-r--r--Build/source/libs/icu-xetex/layout/LayoutTables.h26
-rw-r--r--Build/source/libs/icu-xetex/layout/LigatureSubstProc.cpp117
-rw-r--r--Build/source/libs/icu-xetex/layout/LigatureSubstProc.h71
-rw-r--r--Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp74
-rw-r--r--Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.h45
-rw-r--r--Build/source/libs/icu-xetex/layout/LigatureSubstitution.h51
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupProcessor.cpp275
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupProcessor.h72
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupTables.cpp85
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupTables.h90
-rw-r--r--Build/source/libs/icu-xetex/layout/Lookups.cpp44
-rw-r--r--Build/source/libs/icu-xetex/layout/Lookups.h65
-rw-r--r--Build/source/libs/icu-xetex/layout/MPreFixups.cpp93
-rw-r--r--Build/source/libs/icu-xetex/layout/MPreFixups.h42
-rw-r--r--Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl90
-rw-r--r--Build/source/libs/icu-xetex/layout/Makefile.in232
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkArrays.cpp39
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkArrays.h39
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.cpp99
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.h43
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.cpp103
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.h49
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp97
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.h43
-rw-r--r--Build/source/libs/icu-xetex/layout/MirroredCharData.cpp108
-rw-r--r--Build/source/libs/icu-xetex/layout/MorphStateTables.h28
-rw-r--r--Build/source/libs/icu-xetex/layout/MorphTables.cpp96
-rw-r--r--Build/source/libs/icu-xetex/layout/MorphTables.h85
-rw-r--r--Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.cpp87
-rw-r--r--Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.h38
-rw-r--r--Build/source/libs/icu-xetex/layout/NonContextualGlyphSubst.h30
-rw-r--r--Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.cpp60
-rw-r--r--Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.h43
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp347
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h373
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeTables.h48
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeUtilities.cpp175
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeUtilities.h34
-rw-r--r--Build/source/libs/icu-xetex/layout/PairPositioningSubtables.cpp150
-rw-r--r--Build/source/libs/icu-xetex/layout/PairPositioningSubtables.h84
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguage.cpp61
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguage.h52
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp157
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h164
-rw-r--r--Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.cpp60
-rw-r--r--Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.h58
-rw-r--r--Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.cpp54
-rw-r--r--Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.h58
-rw-r--r--Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp208
-rw-r--r--Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.cpp51
-rw-r--r--Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.h58
-rw-r--r--Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.cpp72
-rw-r--r--Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.h49
-rw-r--r--Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.cpp79
-rw-r--r--Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.h46
-rw-r--r--Build/source/libs/icu-xetex/layout/SingleTableProcessor.cpp51
-rw-r--r--Build/source/libs/icu-xetex/layout/SingleTableProcessor.h57
-rw-r--r--Build/source/libs/icu-xetex/layout/StateTableProcessor.cpp77
-rw-r--r--Build/source/libs/icu-xetex/layout/StateTableProcessor.h58
-rw-r--r--Build/source/libs/icu-xetex/layout/StateTables.h65
-rw-r--r--Build/source/libs/icu-xetex/layout/SubstitutionLookups.cpp46
-rw-r--r--Build/source/libs/icu-xetex/layout/SubstitutionLookups.h43
-rw-r--r--Build/source/libs/icu-xetex/layout/SubtableProcessor.cpp31
-rw-r--r--Build/source/libs/icu-xetex/layout/SubtableProcessor.h46
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp94
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.h121
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiShaping.cpp307
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiShaping.h108
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiStateTables.cpp87
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp87
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h129
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanReordering.cpp381
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanReordering.h151
-rw-r--r--Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.cpp55
-rw-r--r--Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.h60
-rw-r--r--Build/source/libs/icu-xetex/layout/ValueRecords.cpp360
-rw-r--r--Build/source/libs/icu-xetex/layout/ValueRecords.h72
-rw-r--r--Build/source/libs/icu-xetex/layout/layout.rc108
-rw-r--r--Build/source/libs/icu-xetex/layout/layout.vcproj786
164 files changed, 0 insertions, 25370 deletions
diff --git a/Build/source/libs/icu-xetex/layout/.cvsignore b/Build/source/libs/icu-xetex/layout/.cvsignore
deleted file mode 100644
index eda315fc570..00000000000
--- a/Build/source/libs/icu-xetex/layout/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-*.d
-*.o
-*.ao
-*.pdb
-Debug
-Makefile
-Release
diff --git a/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.cpp
deleted file mode 100644
index ffe65b320fe..00000000000
--- a/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "AlternateSubstSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 AlternateSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- // NOTE: For now, we'll just pick the first alternative...
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- le_uint16 altSetCount = SWAPW(alternateSetCount);
-
- if (coverageIndex < altSetCount) {
- Offset alternateSetTableOffset = SWAPW(alternateSetTableOffsetArray[coverageIndex]);
- const AlternateSetTable *alternateSetTable =
- (const AlternateSetTable *) ((char *) this + alternateSetTableOffset);
- le_int32 altIndex = glyphIterator->getFeatureParam();
-
- if (altIndex < SWAPW(alternateSetTable->glyphCount)) {
- TTGlyphID alternate = SWAPW(alternateSetTable->alternateArray[altIndex]);
-
- if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, alternate))) {
- glyphIterator->setCurrGlyphID(alternate);
- }
-
- return 1;
- }
-
- // feature param was out of range for the glyph
- return 0;
- }
-
- // XXXX If we get here, the table's mal-formed...
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.h b/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.h
deleted file mode 100644
index 41e3bc9409d..00000000000
--- a/Build/source/libs/icu-xetex/layout/AlternateSubstSubtables.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __ALTERNATESUBSTITUTIONSUBTABLES_H
-#define __ALTERNATESUBSTITUTIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct AlternateSetTable
-{
- le_uint16 glyphCount;
- TTGlyphID alternateArray[ANY_NUMBER];
-};
-
-struct AlternateSubstitutionSubtable : GlyphSubstitutionSubtable
-{
- le_uint16 alternateSetCount;
- Offset alternateSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/AnchorTables.cpp b/Build/source/libs/icu-xetex/layout/AnchorTables.cpp
deleted file mode 100644
index 24f3cf31df4..00000000000
--- a/Build/source/libs/icu-xetex/layout/AnchorTables.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "DeviceTables.h"
-#include "AnchorTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-void AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance,
- LEPoint &anchor) const
-{
- switch(SWAPW(anchorFormat)) {
- case 1:
- {
- const Format1AnchorTable *f1 = (const Format1AnchorTable *) this;
-
- f1->getAnchor(fontInstance, anchor);
- break;
- }
-
- case 2:
- {
- const Format2AnchorTable *f2 = (const Format2AnchorTable *) this;
-
- f2->getAnchor(glyphID, fontInstance, anchor);
- break;
- }
-
- case 3:
- {
- const Format3AnchorTable *f3 = (const Format3AnchorTable *) this;
-
- f3->getAnchor(fontInstance, anchor);
- break;
- }
-
- default:
- // unknown format: just use x, y coordinate, like format 1...
- const Format1AnchorTable *f1 = (const Format1AnchorTable *) this;
-
- f1->getAnchor(fontInstance, anchor);
- break;
- }
-}
-
-void Format1AnchorTable::getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const
-{
- le_int16 x = SWAPW(xCoordinate);
- le_int16 y = SWAPW(yCoordinate);
- LEPoint pixels;
-
- fontInstance->transformFunits(x, y, pixels);
-
- fontInstance->pixelsToUnits(pixels, anchor);
-}
-
-void Format2AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance, LEPoint &anchor) const
-{
- LEPoint point;
-
- if (! fontInstance->getGlyphPoint(glyphID, SWAPW(anchorPoint), point)) {
- le_int16 x = SWAPW(xCoordinate);
- le_int16 y = SWAPW(yCoordinate);
-
- fontInstance->transformFunits(x, y, point);
- }
-
-
- fontInstance->pixelsToUnits(point, anchor);
-}
-
-void Format3AnchorTable::getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const
-{
- le_int16 x = SWAPW(xCoordinate);
- le_int16 y = SWAPW(yCoordinate);
- LEPoint pixels;
- Offset dtxOffset = SWAPW(xDeviceTableOffset);
- Offset dtyOffset = SWAPW(yDeviceTableOffset);
-
- fontInstance->transformFunits(x, y, pixels);
-
- if (dtxOffset != 0) {
- const DeviceTable *dtx = (const DeviceTable *) ((char *) this + dtxOffset);
- le_int16 adjx = dtx->getAdjustment((le_int16) fontInstance->getXPixelsPerEm());
-
- pixels.fX += adjx;
- }
-
- if (dtyOffset != 0) {
- const DeviceTable *dty = (const DeviceTable *) ((char *) this + dtyOffset);
- le_int16 adjy = dty->getAdjustment((le_int16) fontInstance->getYPixelsPerEm());
-
- pixels.fY += adjy;
- }
-
- fontInstance->pixelsToUnits(pixels, anchor);
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu-xetex/layout/AnchorTables.h b/Build/source/libs/icu-xetex/layout/AnchorTables.h
deleted file mode 100644
index 71825c5ca16..00000000000
--- a/Build/source/libs/icu-xetex/layout/AnchorTables.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __ANCHORTABLES_H
-#define __ANCHORTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct AnchorTable
-{
- le_uint16 anchorFormat;
- le_int16 xCoordinate;
- le_int16 yCoordinate;
-
- void getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance,
- LEPoint &anchor) const;
-};
-
-struct Format1AnchorTable : AnchorTable
-{
- void getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const;
-};
-
-struct Format2AnchorTable : AnchorTable
-{
- le_uint16 anchorPoint;
-
- void getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance, LEPoint &anchor) const;
-};
-
-struct Format3AnchorTable : AnchorTable
-{
- Offset xDeviceTableOffset;
- Offset yDeviceTableOffset;
-
- void getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp
deleted file mode 100644
index 424447433ec..00000000000
--- a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LEGlyphFilter.h"
-#include "LEGlyphStorage.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-#include "ArabicLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "CharSubstitutionFilter.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-#include "GDEFMarkFilter.h"
-
-#include "ArabicShaping.h"
-#include "CanonShaping.h"
-
-U_NAMESPACE_BEGIN
-
-le_bool CharSubstitutionFilter::accept(LEGlyphID glyph) const
-{
- return fFontInstance->canDisplay((LEUnicode) glyph);
-}
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
-
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
-{
- fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
-{
- fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
-
- // NOTE: We don't need to set fFeatureOrder to TRUE here
- // because this constructor is only called by the constructor
- // for UnicodeArabicOpenTypeLayoutEngine, which uses a pre-built
- // GSUB table that has the features in the correct order.
-
- //fFeatureOrder = TRUE;
-}
-
-ArabicOpenTypeLayoutEngine::~ArabicOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-// Input: characters
-// Output: characters, char indices, tags
-// Returns: output character count
-le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- outChars = LE_NEW_ARRAY(LEUnicode, count);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(count, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- return 0;
- }
-
- CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, outChars, glyphStorage);
-
- // Note: This processes the *original* character array so we can get context
- // for the first and last characters. This is OK because only the marks
- // will have been reordered, and they don't contribute to shaping.
- ArabicShaping::shape(chars, offset, count, max, rightToLeft, glyphStorage);
-
- return count;
-}
-
-void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fGPOSTable != NULL) {
- OpenTypeLayoutEngine::adjustGlyphPositions(chars, offset, count, reverse, glyphStorage, success);
- } else if (fGDEFTable != NULL) {
- GDEFMarkFilter filter(fGDEFTable);
-
- adjustMarkGlyphs(glyphStorage, &filter, success);
- } else {
- GlyphDefinitionTableHeader *gdefTable = (GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
- GDEFMarkFilter filter(gdefTable);
-
- adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
- }
-}
-
-UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
-{
- fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
- fGDEFTable = (const GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
-
- fSubstitutionFilter = new CharSubstitutionFilter(fontInstance);
-}
-
-UnicodeArabicOpenTypeLayoutEngine::~UnicodeArabicOpenTypeLayoutEngine()
-{
- delete fSubstitutionFilter;
-}
-
-// "glyphs", "indices" -> glyphs, indices
-le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- // FIXME: we could avoid the memory allocation and copy if we
- // made a clone of mapCharsToGlyphs which took the fake glyphs
- // directly.
- le_int32 tempGlyphCount = tempGlyphStorage.getGlyphCount();
- LEUnicode *tempChars = LE_NEW_ARRAY(LEUnicode, tempGlyphCount);
-
- if (tempChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- for (le_int32 i = 0; i < tempGlyphCount; i += 1) {
- tempChars[i] = (LEUnicode) LE_GET_GLYPH(tempGlyphStorage[i]);
- }
-
- glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
-
- ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, TRUE, glyphStorage, success);
-
- LE_DELETE_ARRAY(tempChars);
-
- return tempGlyphCount;
-}
-
-void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/, le_bool /*filterZeroWidth*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- le_int32 i, dir = 1, out = 0;
-
- if (reverse) {
- out = count - 1;
- dir = -1;
- }
-
- glyphStorage.allocateGlyphArray(count, reverse, success);
-
- for (i = 0; i < count; i += 1, out += dir) {
- glyphStorage[out] = (LEGlyphID) chars[offset + i];
- }
-}
-
-void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- GDEFMarkFilter filter(fGDEFTable);
-
- adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h
deleted file mode 100644
index 68378985336..00000000000
--- a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h
+++ /dev/null
@@ -1,239 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __ARABICLAYOUTENGINE_H
-#define __ARABICLAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LEGlyphFilter.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * This class implements OpenType layout for Arabic fonts. It overrides
- * the characerProcessing method to assign the correct OpenType feature
- * tags for the Arabic contextual forms. It also overrides the adjustGlyphPositions
- * method to guarantee that all vowel and accent glyphs have zero advance width.
- *
- * @internal
- */
-class ArabicOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of ArabicOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * Indic OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLanguageTags.h for script and language codes
- *
- * @internal
- */
- ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLanguageTags.h for script and language codes
- *
- * @internal
- */
- ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~ArabicOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Arabic OpenType character processing. It assigns the OpenType feature
- * tags to the characters to generate the correct contextual forms and ligatures.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- *
- * Output parameters:
- * @param outChars - the output character arrayt
- * @param charIndices - the output character index array
- * @param featureTags - the output feature tag array
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method applies the GPOS table if it is present, otherwise it ensures that all vowel
- * and accent glyphs have a zero advance width by calling the adjustMarkGlyphs method.
- * If the font contains a GDEF table, that is used to identify voewls and accents. Otherwise
- * the character codes are used.
- *
- * @param chars - the input character context
- * @param offset - the offset of the first character to process
- * @param count - the number of characters to process
- * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
- * @param glyphs - the input glyph array
- * @param glyphCount - the number of glyphs
- * @param positions - the position array, will be updated as needed
- * @param success - output parameter set to an error code if the operation fails
- *
- * @internal
- */
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- // static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-/**
- * The class implements OpenType layout for Arabic fonts which don't
- * contain a GSUB table, using a canned GSUB table based on Unicode
- * Arabic Presentation Forms. It overrides the mapCharsToGlyphs method
- * to use the Presentation Forms as logical glyph indices. It overrides the
- * glyphPostProcessing method to convert the Presentation Forms to actual
- * glyph indices.
- *
- * @see ArabicOpenTypeLayoutEngine
- *
- * @internal
- */
-class UnicodeArabicOpenTypeLayoutEngine : public ArabicOpenTypeLayoutEngine
-{
-public:
- /**
- * This constructs an instance of UnicodeArabicOpenTypeLayoutEngine for a specific font,
- * script and language.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param languageCode - the language
- *
- * @see LEFontInstance
- * @see ScriptAndLanguageTags.h for script and language codes
- *
- * @internal
- */
- UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~UnicodeArabicOpenTypeLayoutEngine();
-
-protected:
-
- /**
- * This method converts the Arabic Presentation Forms in the temp glyph array
- * into actual glyph indices using ArabicOpenTypeLayoutEngine::mapCharsToGlyps.
- *
- * Input paramters:
- * @param tempGlyphs - the input presentation forms
- * @param tempCharIndices - the input character index array
- * @param tempGlyphCount - the number of Presentation Froms
- *
- * Output parameters:
- * @param glyphs - the output glyph index array
- * @param charIndices - the output character index array
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyph indices in the output glyph index array
- *
- * @internal
- */
- virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method copies the input characters into the output glyph index array,
- * for use by the canned GSUB table. It also generates the character index array.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the offset of the first character to be mapped
- * @param count - the number of characters to be mapped
- * @param reverse - if <code>TRUE</code>, the output will be in reverse order
- * @param mirror - if <code>TRUE</code>, do character mirroring
- * @param filterZeroWidth - if <code>TRUE</code> replace ZWJ / ZWNJ with a glyph with no contours.
- * @param glyphStorage - the glyph storage object. Glyph and char index arrays will be updated.
- *
- * @param success - set to an error code if the operation fails
- *
- * @internal
- */
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method ensures that all vowel and accent glyphs have a zero advance width by calling
- * the adjustMarkGlyphs method. The character codes are used to identify the vowel and mark
- * glyphs.
- *
- * @param chars - the input character context
- * @param offset - the offset of the first character to process
- * @param count - the number of characters to process
- * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
- * @param glyphStorage - the glyph storage object. The glyph positions will be updated as needed.
- * @param success - output parameter set to an error code if the operation fails
- *
- * @internal
- */
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp b/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp
deleted file mode 100644
index 9550910ad84..00000000000
--- a/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "ArabicShaping.h"
-#include "LEGlyphStorage.h"
-#include "ClassDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-// This table maps Unicode joining types to
-// ShapeTypes.
-const ArabicShaping::ShapeType ArabicShaping::shapeTypes[] =
-{
- ArabicShaping::ST_NOSHAPE_NONE, // [U]
- ArabicShaping::ST_NOSHAPE_DUAL, // [C]
- ArabicShaping::ST_DUAL, // [D]
- ArabicShaping::ST_LEFT, // [L]
- ArabicShaping::ST_RIGHT, // [R]
- ArabicShaping::ST_TRANSPARENT // [T]
-};
-
-// Draft Mongolian shaping classes, not provided by the Unicode data files at this time
-enum {
- _c_ = ArabicShaping::ST_NOSHAPE_DUAL,
- _d_ = ArabicShaping::ST_DUAL,
- _n_ = ArabicShaping::ST_NONE,
- _r_ = ArabicShaping::ST_RIGHT,
- _t_ = ArabicShaping::ST_TRANSPARENT,
- _x_ = ArabicShaping::ST_NOSHAPE_NONE
-};
-
-const ArabicShaping::ShapeType ArabicShaping::mongolianTypes[] =
-{
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _t_, _t_, _t_, _t_, _n_, // 0x1800 - 0x180f
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, // 0x1810 - 0x181f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1820 - 0x182f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1830 - 0x183f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1840 - 0x184f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1850 - 0x185f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1860 - 0x186f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, // 0x1870 - 0x187f
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1880 - 0x188f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1890 - 0x189f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _t_, _n_, _n_, _n_, _n_, _n_, _n_ // 0x18a0 - 0x18af
-};
-
-/*
- shaping array holds types for Arabic chars between 0610 and 0700
- other values are either unshaped, or transparent if a mark or format
- code, except for format codes 200c (zero-width non-joiner) and 200d
- (dual-width joiner) which are both unshaped and non_joining or
- dual-joining, respectively.
-*/
-ArabicShaping::ShapeType ArabicShaping::getShapeType(LEUnicode c)
-{
- const ClassDefinitionTable *joiningTypes = (const ClassDefinitionTable *) ArabicShaping::shapingTypeTable;
- le_int32 joiningType = joiningTypes->getGlyphClass(c);
-
- if (joiningType == JT_RIGHT_JOINING) { // check for Syriac exceptions ALAPH, DALATH, RISH
- if (c == 0x0710)
- return ST_ALAPH;
- if (c == 0x0715 || c == 0x0716 || c == 0x072A || c == 0x072F)
- return ST_DALATH_RISH;
- }
-
- if (joiningType == 0) { // check for Mongolian range, not supported by ArabicShaping::shapingTypeTable
- if (c >= 0x1800 && c <= 0x18af)
- return mongolianTypes[c - 0x1800];
- }
-
- if (joiningType >= 0 && joiningType < JT_COUNT) {
- return shapeTypes[joiningType];
- }
-
- return ST_NOSHAPE_NONE;
-}
-
-#define isolFeatureTag LE_ISOL_FEATURE_TAG
-#define initFeatureTag LE_INIT_FEATURE_TAG
-#define mediFeatureTag LE_MEDI_FEATURE_TAG
-#define med2FeatureTag LE_MED2_FEATURE_TAG
-#define finaFeatureTag LE_FINA_FEATURE_TAG
-#define fin2FeatureTag LE_FIN2_FEATURE_TAG
-#define fin3FeatureTag LE_FIN3_FEATURE_TAG
-#define ligaFeatureTag LE_LIGA_FEATURE_TAG
-#define msetFeatureTag LE_MSET_FEATURE_TAG
-#define markFeatureTag LE_MARK_FEATURE_TAG
-#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-#define rligFeatureTag LE_RLIG_FEATURE_TAG
-#define caltFeatureTag LE_CALT_FEATURE_TAG
-#define dligFeatureTag LE_DLIG_FEATURE_TAG
-#define cswhFeatureTag LE_CSWH_FEATURE_TAG
-#define cursFeatureTag LE_CURS_FEATURE_TAG
-#define kernFeatureTag LE_KERN_FEATURE_TAG
-#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
-
-// NOTE:
-// The isol, fina, init and medi features must be
-// defined in the above order, and have masks that
-// are all in the same byte.
-#define isolFeatureMask 0x80000000UL
-#define finaFeatureMask 0x40000000UL
-#define initFeatureMask 0x20000000UL
-#define mediFeatureMask 0x10000000UL
-#define fin2FeatureMask 0x08000000UL
-#define fin3FeatureMask 0x04000000UL
-#define med2FeatureMask 0x03000000UL /* two bits, from shifting either fin2 or fin3 */
-
-#define ccmpFeatureMask 0x00800000UL
-#define rligFeatureMask 0x00400000UL
-#define caltFeatureMask 0x00200000UL
-#define ligaFeatureMask 0x00100000UL
-#define dligFeatureMask 0x00080000UL
-#define cswhFeatureMask 0x00040000UL
-#define msetFeatureMask 0x00020000UL
-#define cursFeatureMask 0x00010000UL
-#define kernFeatureMask 0x00008000UL
-#define markFeatureMask 0x00004000UL
-#define mkmkFeatureMask 0x00002000UL
-
-#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
-
-#define SHAPE_MASK 0xFF000000UL
-
-static const FeatureMap featureMap[] = {
- {ccmpFeatureTag, ccmpFeatureMask},
- {isolFeatureTag, isolFeatureMask},
- {finaFeatureTag, finaFeatureMask},
- {fin2FeatureTag, fin2FeatureMask},
- {fin3FeatureTag, fin3FeatureMask},
- {mediFeatureTag, mediFeatureMask},
- {med2FeatureTag, med2FeatureMask},
- {initFeatureTag, initFeatureMask},
- {rligFeatureTag, rligFeatureMask},
- {caltFeatureTag, caltFeatureMask},
- {ligaFeatureTag, ligaFeatureMask},
- {dligFeatureTag, dligFeatureMask},
- {cswhFeatureTag, cswhFeatureMask},
- {msetFeatureTag, msetFeatureMask},
- {cursFeatureTag, cursFeatureMask},
- {kernFeatureTag, kernFeatureMask},
- {markFeatureTag, markFeatureMask},
- {mkmkFeatureTag, mkmkFeatureMask}
-};
-
-const FeatureMap *ArabicShaping::getFeatureMap(le_int32 &count)
-{
- count = LE_ARRAY_SIZE(featureMap);
-
- return featureMap;
-}
-
-void ArabicShaping::adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage)
-{
- LEErrorCode success = LE_NO_ERROR;
- FeatureMask featureMask = (FeatureMask) glyphStorage.getAuxData(outIndex, success);
- FeatureMask shape = featureMask & SHAPE_MASK;
-
- shape >>= shapeOffset;
-
- glyphStorage.setAuxData(outIndex, ((featureMask & ~SHAPE_MASK) | shape), NULL, success);
-}
-
-void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
- le_bool rightToLeft, LEGlyphStorage &glyphStorage)
-{
- // iterate in logical order, store tags in visible order
- //
- // the effective right char is the most recently encountered
- // non-transparent char
- //
- // four boolean states:
- // the effective right char shapes
- // the effective right char causes left shaping
- // the current char shapes
- // the current char causes right shaping
- //
- // if both cause shaping, then
- // shaper.shape(errout, 2) (isolate to initial, or final to medial)
- // shaper.shape(out, 1) (isolate to final)
-
- // special cases for Syriac ALAPH:
- // final ALAPH is fin2 when effective right char shapes but does not cause left shaping, and is not DALATH/RISH
- // final ALAPH is fin3 when effective right char is DALATH/RISH
- // medial ALAPH is med2 when effective right char shapes but does not cause left shaping
- // using one of:
- // shaper.shape(out, 4) (isolate to fin2)
- // shaper.shape(out, 5) (isolate to fin3)
-
- ShapeType rightType = ST_NOSHAPE_NONE, leftType = ST_NOSHAPE_NONE;
- LEErrorCode success = LE_NO_ERROR;
- le_int32 i;
-
- for (i = offset - 1; i >= 0; i -= 1) {
- rightType = getShapeType(chars[i]);
-
- if (rightType != ST_TRANSPARENT) {
- break;
- }
- }
-
- for (i = offset + charCount; i < charMax; i += 1) {
- leftType = getShapeType(chars[i]);
-
- if (leftType != ST_TRANSPARENT) {
- break;
- }
- }
-
- // erout is effective right logical index
- le_int32 erout = -1;
- le_bool rightShapes = FALSE;
- le_bool rightCauses = (rightType & MASK_SHAPE_LEFT) != 0;
- le_int32 in, e, out = 0, dir = 1;
-
- if (rightToLeft) {
- out = charCount - 1;
- erout = charCount;
- dir = -1;
- }
-
- for (in = offset, e = offset + charCount; in < e; in += 1, out += dir) {
- LEUnicode c = chars[in];
- ShapeType t = getShapeType(c);
-
- glyphStorage.setAuxData(out, ISOL_FEATURES, NULL, success);
-
- if ((t & MASK_TRANSPARENT) != 0) {
- continue;
- }
-
- le_bool curShapes = (t & MASK_NOSHAPE) == 0;
- le_bool curCauses = (t & MASK_SHAPE_RIGHT) != 0;
-
- if (rightCauses && curCauses) {
- if (rightShapes) {
- adjustTags(erout, 2, glyphStorage);
- }
-
- if (curShapes) {
- adjustTags(out, 1, glyphStorage);
- }
- } else if (t == ST_ALAPH) {
- if (rightType == ST_DALATH_RISH) {
- adjustTags(out, 5, glyphStorage);
- } else if (rightShapes && !rightCauses) {
- adjustTags(out, 4, glyphStorage);
- }
- }
-
- rightShapes = curShapes;
- rightCauses = (t & MASK_SHAPE_LEFT) != 0;
- rightType = t; // remember this; might need to know if it was DALATH/RISH
- erout = out;
- }
-
- if (rightShapes && rightCauses && (leftType & MASK_SHAPE_RIGHT) != 0) {
- adjustTags(erout, 2, glyphStorage);
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ArabicShaping.h b/Build/source/libs/icu-xetex/layout/ArabicShaping.h
deleted file mode 100644
index 937d619a643..00000000000
--- a/Build/source/libs/icu-xetex/layout/ArabicShaping.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __ARABICSHAPING_H
-#define __ARABICSHAPING_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class ArabicShaping /* not : public UObject because all methods are static */ {
-public:
- // Joining types
- enum JoiningTypes
- {
- JT_NON_JOINING = 0,
- JT_JOIN_CAUSING = 1,
- JT_DUAL_JOINING = 2,
- JT_LEFT_JOINING = 3,
- JT_RIGHT_JOINING = 4,
- JT_TRANSPARENT = 5,
- JT_COUNT = 6
- };
-
- // shaping bit masks
- enum ShapingBitMasks
- {
- MASK_SHAPE_RIGHT = 1, // if this bit set, shapes to right
- MASK_SHAPE_LEFT = 2, // if this bit set, shapes to left
- MASK_TRANSPARENT = 4, // if this bit set, is transparent (ignore other bits)
- MASK_NOSHAPE = 8, // if this bit set, don't shape this char, i.e. tatweel
-
- MASK_ALAPH = 16, // if this bit set, char is Syriac ALAPH
- MASK_DALATH_RISH = 32 // if this bit set, char is Syriac DALATH/RISH
- };
-
- // shaping values
- enum ShapeTypeValues
- {
- ST_NONE = 0,
- ST_RIGHT = MASK_SHAPE_RIGHT,
- ST_LEFT = MASK_SHAPE_LEFT,
- ST_DUAL = MASK_SHAPE_RIGHT | MASK_SHAPE_LEFT,
- ST_TRANSPARENT = MASK_TRANSPARENT,
- ST_NOSHAPE_DUAL = MASK_NOSHAPE | ST_DUAL,
- ST_NOSHAPE_NONE = MASK_NOSHAPE,
- ST_ALAPH = MASK_ALAPH | MASK_SHAPE_RIGHT,
- ST_DALATH_RISH = MASK_DALATH_RISH | MASK_SHAPE_RIGHT
- };
-
- typedef le_int32 ShapeType;
-
- static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
- le_bool rightToLeft, LEGlyphStorage &glyphStorage);
-
- static const FeatureMap *getFeatureMap(le_int32 &count);
-
-private:
- // forbid instantiation
- ArabicShaping();
-
- static ShapeType getShapeType(LEUnicode c);
-
- static const le_uint8 shapingTypeTable[];
- static const ShapeType shapeTypes[];
- static const ShapeType mongolianTypes[];
-
- static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/AttachmentPosnSubtables.h b/Build/source/libs/icu-xetex/layout/AttachmentPosnSubtables.h
deleted file mode 100644
index 7f8406dc19f..00000000000
--- a/Build/source/libs/icu-xetex/layout/AttachmentPosnSubtables.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __ATTACHMENTPOSITIONINGSUBTABLES_H
-#define __ATTACHMENTPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "ValueRecords.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct AttachmentPositioningSubtable : GlyphPositioningSubtable
-{
- Offset baseCoverageTableOffset;
- le_uint16 classCount;
- Offset markArrayOffset;
- Offset baseArrayOffset;
-
- inline le_int32 getBaseCoverage(LEGlyphID baseGlyphId) const;
-
- le_uint32 process(GlyphIterator *glyphIterator) const;
-};
-
-inline le_int32 AttachmentPositioningSubtable::getBaseCoverage(LEGlyphID baseGlyphID) const
-{
- return getGlyphCoverage(baseCoverageTableOffset, baseGlyphID);
-}
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/CanonData.cpp b/Build/source/libs/icu-xetex/layout/CanonData.cpp
deleted file mode 100644
index c341c62372a..00000000000
--- a/Build/source/libs/icu-xetex/layout/CanonData.cpp
+++ /dev/null
@@ -1,3754 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 03/31/2005 08:15:27 AM HST
- */
-
-#include "LETypes.h"
-#include "CanonShaping.h"
-
-U_NAMESPACE_BEGIN
-
-const le_uint8 CanonShaping::glyphSubstitutionTable[] = {
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x58, 0x02, 0x86, 0x00, 0x12, 0x61, 0x72, 0x61, 0x62,
- 0x00, 0x6E, 0x62, 0x65, 0x6E, 0x67, 0x00, 0x82, 0x63, 0x79, 0x72, 0x6C, 0x00, 0x8E, 0x64, 0x65,
- 0x76, 0x61, 0x00, 0x9A, 0x67, 0x72, 0x65, 0x6B, 0x00, 0xA6, 0x67, 0x75, 0x72, 0x75, 0x00, 0xB2,
- 0x68, 0x65, 0x62, 0x72, 0x00, 0xBE, 0x68, 0x69, 0x72, 0x61, 0x00, 0xCA, 0x6B, 0x61, 0x6E, 0x61,
- 0x00, 0xD6, 0x6B, 0x6E, 0x64, 0x61, 0x00, 0xE2, 0x6C, 0x61, 0x74, 0x6E, 0x00, 0xEE, 0x6D, 0x6C,
- 0x79, 0x6D, 0x00, 0xFA, 0x6D, 0x79, 0x6D, 0x72, 0x01, 0x06, 0x6F, 0x72, 0x79, 0x61, 0x01, 0x12,
- 0x73, 0x69, 0x6E, 0x68, 0x01, 0x1E, 0x74, 0x61, 0x6D, 0x6C, 0x01, 0x2A, 0x74, 0x65, 0x6C, 0x75,
- 0x01, 0x36, 0x74, 0x69, 0x62, 0x74, 0x01, 0x42, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x15, 0x00, 0x12, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x03,
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x00, 0x01, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x07,
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x09, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x00, 0x01, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x0B,
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x0D, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x00, 0x01, 0x00, 0x0E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x0F,
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x11, 0x00, 0x16, 0x63, 0x63, 0x6D, 0x70, 0x00, 0x86,
- 0x63, 0x63, 0x6D, 0x70, 0x00, 0x8E, 0x63, 0x63, 0x6D, 0x70, 0x00, 0x96, 0x63, 0x63, 0x6D, 0x70,
- 0x00, 0x9E, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xA6, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xAE, 0x63, 0x63,
- 0x6D, 0x70, 0x00, 0xB6, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xBE, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xC6,
- 0x63, 0x63, 0x6D, 0x70, 0x00, 0xCE, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xD6, 0x63, 0x63, 0x6D, 0x70,
- 0x00, 0xDE, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xE6, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xEE, 0x63, 0x63,
- 0x6D, 0x70, 0x00, 0xF6, 0x63, 0x63, 0x6D, 0x70, 0x00, 0xFE, 0x63, 0x63, 0x6D, 0x70, 0x01, 0x06,
- 0x63, 0x63, 0x6D, 0x70, 0x01, 0x0E, 0x66, 0x69, 0x6E, 0x61, 0x01, 0x16, 0x69, 0x6E, 0x69, 0x74,
- 0x01, 0x1C, 0x6C, 0x69, 0x67, 0x61, 0x01, 0x22, 0x6D, 0x65, 0x64, 0x69, 0x01, 0x28, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x12, 0x00, 0x13, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x16, 0x00, 0x17, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x18, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x22, 0x00, 0x23, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x24, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x28, 0x00, 0x52, 0x00, 0xC8, 0x01, 0x2A, 0x01, 0xF4,
- 0x02, 0xBE, 0x03, 0xF8, 0x15, 0x06, 0x15, 0x58, 0x15, 0x9C, 0x18, 0x4E, 0x1A, 0xC4, 0x1B, 0x70,
- 0x1B, 0xF0, 0x4F, 0xEA, 0x8E, 0xAE, 0x8F, 0x14, 0x8F, 0x62, 0x91, 0x58, 0x93, 0x26, 0x94, 0x94,
- 0x95, 0xB4, 0x96, 0x0A, 0x96, 0x66, 0x98, 0x0C, 0x99, 0x54, 0xB9, 0x0C, 0xDC, 0x92, 0xDC, 0xC8,
- 0xDC, 0xF8, 0xDD, 0x18, 0xDD, 0x34, 0xDD, 0x80, 0xDD, 0xC4, 0xDE, 0x0C, 0xDE, 0x5E, 0xDE, 0xA2,
- 0xDE, 0xDC, 0xDE, 0xFC, 0xDF, 0x18, 0xE0, 0x36, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08,
- 0x00, 0x01, 0x00, 0x5E, 0x00, 0x06, 0x00, 0x12, 0x00, 0x2C, 0x00, 0x36, 0x00, 0x40, 0x00, 0x4A,
- 0x00, 0x54, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x06, 0x22, 0x00, 0x02, 0x06, 0x53,
- 0x06, 0x23, 0x00, 0x02, 0x06, 0x54, 0x06, 0x25, 0x00, 0x02, 0x06, 0x55, 0x00, 0x01, 0x00, 0x04,
- 0x06, 0x24, 0x00, 0x02, 0x06, 0x54, 0x00, 0x01, 0x00, 0x04, 0x06, 0x26, 0x00, 0x02, 0x06, 0x54,
- 0x00, 0x01, 0x00, 0x04, 0x06, 0xC2, 0x00, 0x02, 0x06, 0x54, 0x00, 0x01, 0x00, 0x04, 0x06, 0xD3,
- 0x00, 0x02, 0x06, 0x54, 0x00, 0x01, 0x00, 0x04, 0x06, 0xC0, 0x00, 0x02, 0x06, 0x54, 0x00, 0x01,
- 0x00, 0x06, 0x06, 0x27, 0x06, 0x48, 0x06, 0x4A, 0x06, 0xC1, 0x06, 0xD2, 0x06, 0xD5, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x46, 0x00, 0x08, 0x00, 0x16, 0x00, 0x1C,
- 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40, 0x00, 0x02, 0x06, 0x27,
- 0x06, 0x53, 0x00, 0x02, 0x06, 0x27, 0x06, 0x54, 0x00, 0x02, 0x06, 0x48, 0x06, 0x54, 0x00, 0x02,
- 0x06, 0x27, 0x06, 0x55, 0x00, 0x02, 0x06, 0x4A, 0x06, 0x54, 0x00, 0x02, 0x06, 0xD5, 0x06, 0x54,
- 0x00, 0x02, 0x06, 0xC1, 0x06, 0x54, 0x00, 0x02, 0x06, 0xD2, 0x06, 0x54, 0x00, 0x01, 0x00, 0x08,
- 0x06, 0x22, 0x06, 0x23, 0x06, 0x24, 0x06, 0x25, 0x06, 0x26, 0x06, 0xC0, 0x06, 0xC2, 0x06, 0xD3,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x02, 0x00, 0x62, 0x00, 0x2E, 0xFE, 0x8B,
- 0xFE, 0x91, 0xFE, 0x97, 0xFE, 0x9B, 0xFE, 0x9F, 0xFE, 0xA3, 0xFE, 0xA7, 0xFE, 0xB3, 0xFE, 0xB7,
- 0xFE, 0xBB, 0xFE, 0xBF, 0xFE, 0xC3, 0xFE, 0xC7, 0xFE, 0xCB, 0xFE, 0xCF, 0xFE, 0xD3, 0xFE, 0xD7,
- 0xFE, 0xDB, 0xFE, 0xDF, 0xFE, 0xE3, 0xFE, 0xE7, 0xFE, 0xEB, 0xFB, 0xE8, 0xFE, 0xF3, 0xFB, 0x68,
- 0xFB, 0x60, 0xFB, 0x54, 0xFB, 0x58, 0xFB, 0x64, 0xFB, 0x5C, 0xFB, 0x78, 0xFB, 0x74, 0xFB, 0x7C,
- 0xFB, 0x80, 0xFB, 0x6C, 0xFB, 0x70, 0xFB, 0x90, 0xFB, 0xD5, 0xFB, 0x94, 0xFB, 0x9C, 0xFB, 0x98,
- 0xFB, 0xA2, 0xFB, 0xAC, 0xFB, 0xA8, 0xFB, 0xFE, 0xFB, 0xE6, 0x00, 0x01, 0x00, 0x2E, 0x06, 0x26,
- 0x06, 0x28, 0x06, 0x2A, 0x06, 0x2B, 0x06, 0x2C, 0x06, 0x2D, 0x06, 0x2E, 0x06, 0x33, 0x06, 0x34,
- 0x06, 0x35, 0x06, 0x36, 0x06, 0x37, 0x06, 0x38, 0x06, 0x39, 0x06, 0x3A, 0x06, 0x41, 0x06, 0x42,
- 0x06, 0x43, 0x06, 0x44, 0x06, 0x45, 0x06, 0x46, 0x06, 0x47, 0x06, 0x49, 0x06, 0x4A, 0x06, 0x79,
- 0x06, 0x7A, 0x06, 0x7B, 0x06, 0x7E, 0x06, 0x7F, 0x06, 0x80, 0x06, 0x83, 0x06, 0x84, 0x06, 0x86,
- 0x06, 0x87, 0x06, 0xA4, 0x06, 0xA6, 0x06, 0xA9, 0x06, 0xAD, 0x06, 0xAF, 0x06, 0xB1, 0x06, 0xB3,
- 0x06, 0xBB, 0x06, 0xBE, 0x06, 0xC1, 0x06, 0xCC, 0x06, 0xD0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x02, 0x00, 0x62, 0x00, 0x2E, 0xFE, 0x8C, 0xFE, 0x92, 0xFE, 0x98, 0xFE, 0x9C,
- 0xFE, 0xA0, 0xFE, 0xA4, 0xFE, 0xA8, 0xFE, 0xB4, 0xFE, 0xB8, 0xFE, 0xBC, 0xFE, 0xC0, 0xFE, 0xC4,
- 0xFE, 0xC8, 0xFE, 0xCC, 0xFE, 0xD0, 0xFE, 0xD4, 0xFE, 0xD8, 0xFE, 0xDC, 0xFE, 0xE0, 0xFE, 0xE4,
- 0xFE, 0xE8, 0xFE, 0xEC, 0xFB, 0xE9, 0xFE, 0xF4, 0xFB, 0x69, 0xFB, 0x61, 0xFB, 0x55, 0xFB, 0x59,
- 0xFB, 0x65, 0xFB, 0x5D, 0xFB, 0x79, 0xFB, 0x75, 0xFB, 0x7D, 0xFB, 0x81, 0xFB, 0x6D, 0xFB, 0x71,
- 0xFB, 0x91, 0xFB, 0xD6, 0xFB, 0x95, 0xFB, 0x9D, 0xFB, 0x99, 0xFB, 0xA3, 0xFB, 0xAD, 0xFB, 0xA9,
- 0xFB, 0xFF, 0xFB, 0xE7, 0x00, 0x01, 0x00, 0x2E, 0x06, 0x26, 0x06, 0x28, 0x06, 0x2A, 0x06, 0x2B,
- 0x06, 0x2C, 0x06, 0x2D, 0x06, 0x2E, 0x06, 0x33, 0x06, 0x34, 0x06, 0x35, 0x06, 0x36, 0x06, 0x37,
- 0x06, 0x38, 0x06, 0x39, 0x06, 0x3A, 0x06, 0x41, 0x06, 0x42, 0x06, 0x43, 0x06, 0x44, 0x06, 0x45,
- 0x06, 0x46, 0x06, 0x47, 0x06, 0x49, 0x06, 0x4A, 0x06, 0x79, 0x06, 0x7A, 0x06, 0x7B, 0x06, 0x7E,
- 0x06, 0x7F, 0x06, 0x80, 0x06, 0x83, 0x06, 0x84, 0x06, 0x86, 0x06, 0x87, 0x06, 0xA4, 0x06, 0xA6,
- 0x06, 0xA9, 0x06, 0xAD, 0x06, 0xAF, 0x06, 0xB1, 0x06, 0xB3, 0x06, 0xBB, 0x06, 0xBE, 0x06, 0xC1,
- 0x06, 0xCC, 0x06, 0xD0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x02, 0x00, 0x9A,
- 0x00, 0x4A, 0xFE, 0x82, 0xFE, 0x84, 0xFE, 0x86, 0xFE, 0x88, 0xFE, 0x8A, 0xFE, 0x8E, 0xFE, 0x90,
- 0xFE, 0x94, 0xFE, 0x96, 0xFE, 0x9A, 0xFE, 0x9E, 0xFE, 0xA2, 0xFE, 0xA6, 0xFE, 0xAA, 0xFE, 0xAC,
- 0xFE, 0xAE, 0xFE, 0xB0, 0xFE, 0xB2, 0xFE, 0xB6, 0xFE, 0xBA, 0xFE, 0xBE, 0xFE, 0xC2, 0xFE, 0xC6,
- 0xFE, 0xCA, 0xFE, 0xCE, 0xFE, 0xD2, 0xFE, 0xD6, 0xFE, 0xDA, 0xFE, 0xDE, 0xFE, 0xE2, 0xFE, 0xE6,
- 0xFE, 0xEA, 0xFE, 0xEE, 0xFE, 0xF0, 0xFE, 0xF2, 0xFB, 0x51, 0xFB, 0x67, 0xFB, 0x5F, 0xFB, 0x53,
- 0xFB, 0x57, 0xFB, 0x63, 0xFB, 0x5B, 0xFB, 0x77, 0xFB, 0x73, 0xFB, 0x7B, 0xFB, 0x7F, 0xFB, 0x89,
- 0xFB, 0x85, 0xFB, 0x83, 0xFB, 0x87, 0xFB, 0x8D, 0xFB, 0x8B, 0xFB, 0x6B, 0xFB, 0x6F, 0xFB, 0x8F,
- 0xFB, 0xD4, 0xFB, 0x93, 0xFB, 0x9B, 0xFB, 0x97, 0xFB, 0x9F, 0xFB, 0xA1, 0xFB, 0xAB, 0xFB, 0xA5,
- 0xFB, 0xA7, 0xFB, 0xE1, 0xFB, 0xDA, 0xFB, 0xD8, 0xFB, 0xDC, 0xFB, 0xE3, 0xFB, 0xDF, 0xFB, 0xFD,
- 0xFB, 0xE5, 0xFB, 0xAF, 0xFB, 0xB1, 0x00, 0x01, 0x00, 0x4A, 0x06, 0x22, 0x06, 0x23, 0x06, 0x24,
- 0x06, 0x25, 0x06, 0x26, 0x06, 0x27, 0x06, 0x28, 0x06, 0x29, 0x06, 0x2A, 0x06, 0x2B, 0x06, 0x2C,
- 0x06, 0x2D, 0x06, 0x2E, 0x06, 0x2F, 0x06, 0x30, 0x06, 0x31, 0x06, 0x32, 0x06, 0x33, 0x06, 0x34,
- 0x06, 0x35, 0x06, 0x36, 0x06, 0x37, 0x06, 0x38, 0x06, 0x39, 0x06, 0x3A, 0x06, 0x41, 0x06, 0x42,
- 0x06, 0x43, 0x06, 0x44, 0x06, 0x45, 0x06, 0x46, 0x06, 0x47, 0x06, 0x48, 0x06, 0x49, 0x06, 0x4A,
- 0x06, 0x71, 0x06, 0x79, 0x06, 0x7A, 0x06, 0x7B, 0x06, 0x7E, 0x06, 0x7F, 0x06, 0x80, 0x06, 0x83,
- 0x06, 0x84, 0x06, 0x86, 0x06, 0x87, 0x06, 0x88, 0x06, 0x8C, 0x06, 0x8D, 0x06, 0x8E, 0x06, 0x91,
- 0x06, 0x98, 0x06, 0xA4, 0x06, 0xA6, 0x06, 0xA9, 0x06, 0xAD, 0x06, 0xAF, 0x06, 0xB1, 0x06, 0xB3,
- 0x06, 0xBA, 0x06, 0xBB, 0x06, 0xBE, 0x06, 0xC0, 0x06, 0xC1, 0x06, 0xC5, 0x06, 0xC6, 0x06, 0xC7,
- 0x06, 0xC8, 0x06, 0xC9, 0x06, 0xCB, 0x06, 0xCC, 0x06, 0xD0, 0x06, 0xD2, 0x06, 0xD3, 0x00, 0x04,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x10, 0x98, 0x00, 0x35, 0x00, 0x70, 0x00, 0x7A,
- 0x01, 0x0C, 0x01, 0x86, 0x01, 0xA8, 0x01, 0xB2, 0x02, 0x0C, 0x02, 0x62, 0x03, 0x02, 0x03, 0x8A,
- 0x03, 0xB4, 0x03, 0xF6, 0x04, 0x46, 0x04, 0x8A, 0x04, 0xBC, 0x04, 0xEC, 0x05, 0x26, 0x05, 0x38,
- 0x05, 0x42, 0x05, 0x64, 0x05, 0xF8, 0x06, 0x6C, 0x06, 0xEC, 0x07, 0x80, 0x08, 0x1E, 0x08, 0x56,
- 0x08, 0xBA, 0x08, 0xF2, 0x09, 0x38, 0x09, 0x66, 0x09, 0x78, 0x09, 0x82, 0x09, 0xD4, 0x0A, 0x0E,
- 0x0A, 0x40, 0x0A, 0x70, 0x0A, 0xCC, 0x0A, 0xF2, 0x0B, 0x38, 0x0B, 0x68, 0x0B, 0xDC, 0x0C, 0x2A,
- 0x0C, 0xD6, 0x0D, 0x72, 0x0E, 0x16, 0x0E, 0x50, 0x0E, 0xC8, 0x0F, 0x5A, 0x0F, 0xA8, 0x0F, 0xB6,
- 0x0F, 0xC0, 0x0F, 0xCA, 0x10, 0x2E, 0x00, 0x01, 0x00, 0x04, 0xFB, 0xDD, 0x00, 0x02, 0x06, 0x74,
- 0x00, 0x12, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x44, 0x00, 0x4A,
- 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x7A,
- 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0xFB, 0xEC, 0x00, 0x02, 0x00, 0x01, 0xFB, 0xF0, 0x00, 0x02,
- 0xFB, 0xD8, 0xFB, 0xF2, 0x00, 0x02, 0xFB, 0xDA, 0xFB, 0xF4, 0x00, 0x02, 0xFB, 0xDC, 0xFB, 0xF6,
- 0x00, 0x02, 0xFB, 0xE5, 0xFB, 0xF8, 0x00, 0x02, 0xFB, 0xE7, 0xFB, 0xEA, 0x00, 0x02, 0xFE, 0x8E,
- 0xFC, 0x00, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0x97, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x01, 0x00, 0x02,
- 0xFE, 0xA2, 0xFC, 0x98, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x99, 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x02,
- 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0x9A, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x9B, 0x00, 0x02, 0xFE, 0xEC,
- 0xFB, 0xEE, 0x00, 0x02, 0xFE, 0xEE, 0xFB, 0xF9, 0x00, 0x02, 0xFE, 0xF0, 0xFB, 0xFB, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x0F, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E,
- 0x00, 0x74, 0xFB, 0xED, 0x00, 0x02, 0x00, 0x01, 0xFB, 0xF1, 0x00, 0x02, 0xFB, 0xD8, 0xFB, 0xF3,
- 0x00, 0x02, 0xFB, 0xDA, 0xFB, 0xF5, 0x00, 0x02, 0xFB, 0xDC, 0xFB, 0xF7, 0x00, 0x02, 0xFB, 0xE5,
- 0xFB, 0xEB, 0x00, 0x02, 0xFE, 0x8E, 0xFC, 0x64, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x65, 0x00, 0x02,
- 0xFE, 0xB0, 0xFC, 0x66, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xDF, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x67,
- 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xE0, 0x00, 0x02, 0xFE, 0xEC, 0xFB, 0xEF, 0x00, 0x02, 0xFE, 0xEE,
- 0xFB, 0xFA, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x69, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x03, 0x00, 0x08,
- 0x00, 0x0E, 0x00, 0x18, 0xFD, 0x3D, 0x00, 0x02, 0x06, 0x4B, 0xFD, 0xF3, 0x00, 0x04, 0xFE, 0xDB,
- 0xFE, 0x92, 0xFE, 0xAE, 0xFD, 0xF2, 0x00, 0x04, 0xFE, 0xDF, 0xFE, 0xE0, 0xFE, 0xEA, 0x00, 0x01,
- 0x00, 0x04, 0xFD, 0x3C, 0x00, 0x02, 0x06, 0x4B, 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54,
- 0xFC, 0x05, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0x9C, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x06, 0x00, 0x02,
- 0xFE, 0xA2, 0xFC, 0x9D, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x07, 0x00, 0x02, 0xFE, 0xA6, 0xFC, 0x9E,
- 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x08, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0x9F, 0x00, 0x02, 0xFE, 0xE4,
- 0xFC, 0xA0, 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x09, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x0A, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x0A, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38,
- 0x00, 0x3E, 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0xFD, 0xC2, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2,
- 0xFD, 0x9E, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF2, 0xFC, 0x6A, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x6B,
- 0x00, 0x02, 0xFE, 0xB0, 0xFC, 0x6C, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xE1, 0x00, 0x02, 0xFE, 0xE4,
- 0xFC, 0x6D, 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xE2, 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x6E, 0x00, 0x02,
- 0xFE, 0xF0, 0xFC, 0x6F, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x12, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x34,
- 0x00, 0x3A, 0x00, 0x40, 0x00, 0x48, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A,
- 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x8E, 0x00, 0x94, 0x00, 0x9A, 0xFC, 0x0B,
- 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x50, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE4, 0xFC, 0xA1, 0x00, 0x02,
- 0xFE, 0xA0, 0xFC, 0x0C, 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x52, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xA0,
- 0xFD, 0x53, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE4, 0xFC, 0xA2, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x0D,
- 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x54, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE4, 0xFC, 0xA3, 0x00, 0x02,
- 0xFE, 0xA8, 0xFC, 0x0E, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x55, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA0,
- 0xFD, 0x56, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA4, 0xFD, 0x57, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA8,
- 0xFC, 0xA4, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xA5, 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x0F, 0x00, 0x02,
- 0xFE, 0xF0, 0xFC, 0x10, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0F, 0x00, 0x20, 0x00, 0x28, 0x00, 0x30,
- 0x00, 0x38, 0x00, 0x40, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A,
- 0x00, 0x70, 0x00, 0x76, 0x00, 0x7C, 0x00, 0x82, 0xFD, 0xA0, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF0,
- 0xFD, 0x9F, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2, 0xFD, 0x51, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0x9E,
- 0xFD, 0xA2, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF0, 0xFD, 0xA1, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF2,
- 0xFC, 0x70, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x71, 0x00, 0x02, 0xFE, 0xB0, 0xFC, 0x72, 0x00, 0x02,
- 0xFE, 0xE2, 0xFD, 0xA4, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF0, 0xFD, 0xA3, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xF2, 0xFC, 0xE3, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x73, 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xE4,
- 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x74, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x75, 0x00, 0x02, 0xFE, 0xF2,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0xFC, 0x11, 0x00, 0x02,
- 0xFE, 0x9E, 0xFC, 0x12, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xA6, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x13,
- 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x14, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18,
- 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0xFC, 0x76, 0x00, 0x02,
- 0xFE, 0xAE, 0xFC, 0x77, 0x00, 0x02, 0xFE, 0xB0, 0xFC, 0x78, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xE5,
- 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x79, 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xE6, 0x00, 0x02, 0xFE, 0xEC,
- 0xFC, 0x7A, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x7B, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x08, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x44, 0x00, 0x4A, 0xFC, 0x15,
- 0x00, 0x02, 0xFE, 0xA2, 0xFC, 0xA7, 0x00, 0x02, 0xFE, 0xA4, 0xFD, 0xFB, 0x00, 0x08, 0xFE, 0xDE,
- 0x00, 0x20, 0xFE, 0x9F, 0xFE, 0xE0, 0xFE, 0x8E, 0xFE, 0xDF, 0xFE, 0xEA, 0xFC, 0x16, 0x00, 0x02,
- 0xFE, 0xE2, 0xFD, 0x59, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA4, 0xFC, 0xA8, 0x00, 0x02, 0xFE, 0xE4,
- 0xFD, 0x01, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x02, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x07, 0x00, 0x10,
- 0x00, 0x18, 0x00, 0x20, 0x00, 0x28, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0xFD, 0xA6, 0x00, 0x03,
- 0xFE, 0xA4, 0xFE, 0xF0, 0xFD, 0xBE, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2, 0xFD, 0x58, 0x00, 0x03,
- 0xFE, 0xE4, 0xFE, 0xA2, 0xFD, 0xA7, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF0, 0xFD, 0xA5, 0x00, 0x03,
- 0xFE, 0xE4, 0xFE, 0xF2, 0xFD, 0x1D, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x1E, 0x00, 0x02, 0xFE, 0xF2,
- 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0xFC, 0x17,
- 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xA9, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x18, 0x00, 0x02, 0xFE, 0xE2,
- 0xFC, 0xAA, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xFF, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x00, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2A, 0xFD, 0xBF,
- 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2, 0xFD, 0x5B, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF0, 0xFD, 0x5A,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFD, 0x1B, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x1C, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E,
- 0x00, 0x34, 0xFC, 0x19, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xAB, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x1A,
- 0x00, 0x02, 0xFE, 0xA2, 0xFC, 0x1B, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xAC, 0x00, 0x02, 0xFE, 0xE4,
- 0xFD, 0x03, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x04, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x02, 0x00, 0x06,
- 0x00, 0x0C, 0xFD, 0x1F, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x20, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x01,
- 0x00, 0x04, 0xFC, 0x5B, 0x00, 0x02, 0x06, 0x70, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x18,
- 0xFC, 0x5C, 0x00, 0x02, 0x06, 0x70, 0xFD, 0xFC, 0x00, 0x04, 0xFB, 0xFE, 0xFE, 0x8E, 0xFE, 0xDD,
- 0xFD, 0xF6, 0x00, 0x04, 0xFE, 0xB3, 0xFE, 0xEE, 0xFE, 0xDD, 0x00, 0x11, 0x00, 0x24, 0x00, 0x2A,
- 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x5E,
- 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x88, 0x00, 0x8E, 0xFC, 0x1C,
- 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x5D, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xA4, 0xFC, 0xAD, 0x00, 0x02,
- 0xFE, 0xA0, 0xFC, 0x1D, 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x5C, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xA0,
- 0xFC, 0xAE, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x1E, 0x00, 0x02, 0xFE, 0xA6, 0xFC, 0xAF, 0x00, 0x02,
- 0xFE, 0xA8, 0xFD, 0x0E, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x1F, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x61,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA0, 0xFD, 0x60, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA4, 0xFD, 0x63,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFC, 0xB0, 0x00, 0x02, 0xFE, 0xE4, 0xFD, 0x31, 0x00, 0x02,
- 0xFE, 0xEC, 0xFC, 0xFB, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0xFC, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0D,
- 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0xFD, 0x5E, 0x00, 0x03, 0xFE, 0xA0,
- 0xFE, 0xF0, 0xFD, 0x34, 0x00, 0x02, 0xFE, 0xA0, 0xFD, 0x35, 0x00, 0x02, 0xFE, 0xA4, 0xFD, 0xA8,
- 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF0, 0xFD, 0xC6, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF2, 0xFD, 0x36,
- 0x00, 0x02, 0xFE, 0xA8, 0xFD, 0x2A, 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0x5F, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xA2, 0xFD, 0x62, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFC, 0xE7, 0x00, 0x02, 0xFE, 0xE4,
- 0xFC, 0xE8, 0x00, 0x02, 0xFE, 0xEC, 0xFD, 0x17, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x18, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x0F, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x40,
- 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x60, 0x00, 0x68, 0x00, 0x6E, 0x00, 0x74,
- 0x00, 0x7A, 0xFD, 0x09, 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x2D, 0x00, 0x02, 0xFE, 0xA0, 0xFD, 0x0A,
- 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x68, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE4, 0xFD, 0x2E, 0x00, 0x02,
- 0xFE, 0xA4, 0xFD, 0x0B, 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x2F, 0x00, 0x02, 0xFE, 0xA8, 0xFD, 0x0D,
- 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0x0C, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x6B, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xA8, 0xFD, 0x6D, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFD, 0x30, 0x00, 0x02, 0xFE, 0xE4,
- 0xFD, 0x32, 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0xFD, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0xFE, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x11, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00, 0x66, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7C,
- 0x00, 0x82, 0x00, 0x88, 0x00, 0x8E, 0xFD, 0x25, 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x69, 0x00, 0x03,
- 0xFE, 0xA0, 0xFE, 0xF2, 0xFD, 0x37, 0x00, 0x02, 0xFE, 0xA0, 0xFD, 0x26, 0x00, 0x02, 0xFE, 0xA2,
- 0xFD, 0x67, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE2, 0xFD, 0xAA, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2,
- 0xFD, 0x38, 0x00, 0x02, 0xFE, 0xA4, 0xFD, 0x27, 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x39, 0x00, 0x02,
- 0xFE, 0xA8, 0xFD, 0x29, 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0x28, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x6A,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA6, 0xFD, 0x6C, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFC, 0xE9,
- 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xEA, 0x00, 0x02, 0xFE, 0xEC, 0xFD, 0x19, 0x00, 0x02, 0xFE, 0xF0,
- 0xFD, 0x1A, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x32,
- 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x50, 0x00, 0x76, 0x00, 0x7E, 0x00, 0x84, 0x00, 0x8C,
- 0x00, 0x92, 0x00, 0x98, 0xFC, 0x20, 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x65, 0x00, 0x03, 0xFE, 0xA4,
- 0xFE, 0xA4, 0xFC, 0xB1, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0xB2, 0x00, 0x02, 0xFE, 0xA8, 0xFD, 0x0F,
- 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0xF0, 0x00, 0x03, 0xFE, 0xE0, 0xFB, 0xAF, 0xFD, 0xF5, 0x00, 0x04,
- 0xFE, 0xE0, 0xFE, 0xCC, 0xFE, 0xE2, 0xFD, 0xFA, 0x00, 0x12, 0xFE, 0xE0, 0xFE, 0xF0, 0x00, 0x20,
- 0xFE, 0x8D, 0xFE, 0xDF, 0xFE, 0xE0, 0xFE, 0xEA, 0x00, 0x20, 0xFE, 0xCB, 0xFE, 0xE0, 0xFE, 0xF4,
- 0xFE, 0xEA, 0x00, 0x20, 0xFE, 0xED, 0xFE, 0xB3, 0xFE, 0xE0, 0xFE, 0xE2, 0xFD, 0xF9, 0x00, 0x03,
- 0xFE, 0xE0, 0xFE, 0xF0, 0xFC, 0x21, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0xC5, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xE4, 0xFC, 0xB3, 0x00, 0x02, 0xFE, 0xE4, 0xFD, 0x05, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x06,
- 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2C,
- 0x00, 0x32, 0xFD, 0x64, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xA2, 0xFD, 0xA9, 0x00, 0x03, 0xFE, 0xA4,
- 0xFE, 0xF2, 0xFD, 0x2B, 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0x66, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2,
- 0xFD, 0x21, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x22, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0C, 0x00, 0x1A,
- 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C,
- 0x00, 0x52, 0x00, 0x58, 0x00, 0x5E, 0xFC, 0x22, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xB4, 0x00, 0x02,
- 0xFE, 0xA0, 0xFC, 0x23, 0x00, 0x02, 0xFE, 0xA2, 0xFC, 0xB5, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x24,
- 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x70, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE4, 0xFC, 0xB6, 0x00, 0x02,
- 0xFE, 0xA8, 0xFD, 0x10, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x25, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xB7,
- 0x00, 0x02, 0xFE, 0xE4, 0xFD, 0x07, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x08, 0x00, 0x02, 0xFE, 0xF2,
- 0x00, 0x06, 0x00, 0x0E, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0xFD, 0x6E,
- 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF0, 0xFD, 0xAB, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2, 0xFD, 0x6F,
- 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE2, 0xFD, 0x2C, 0x00, 0x02, 0xFE, 0xAE, 0xFD, 0x23, 0x00, 0x02,
- 0xFE, 0xF0, 0xFD, 0x24, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40, 0xFC, 0x26, 0x00, 0x02, 0xFE, 0xA2,
- 0xFC, 0xB8, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x27, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x72, 0x00, 0x03,
- 0xFE, 0xE4, 0xFE, 0xA4, 0xFD, 0x73, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFD, 0x33, 0x00, 0x02,
- 0xFE, 0xE4, 0xFC, 0xF5, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0xF6, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x05,
- 0x00, 0x0C, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0xFD, 0x71, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xA2, 0xFD, 0x74, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFD, 0x3A, 0x00, 0x02, 0xFE, 0xE4,
- 0xFD, 0x11, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x12, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x02, 0x00, 0x06,
- 0x00, 0x0C, 0xFC, 0x28, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xB9, 0x00, 0x02, 0xFE, 0xE4, 0x00, 0x01,
- 0x00, 0x04, 0xFD, 0x3B, 0x00, 0x02, 0xFE, 0xE4, 0x00, 0x09, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x22,
- 0x00, 0x28, 0x00, 0x32, 0x00, 0x38, 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C, 0xFC, 0x29, 0x00, 0x02,
- 0xFE, 0x9E, 0xFD, 0xC4, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE4, 0xFC, 0xBA, 0x00, 0x02, 0xFE, 0xA0,
- 0xFD, 0xF7, 0x00, 0x04, 0xFE, 0xE0, 0xFE, 0xF4, 0xFE, 0xEA, 0xFC, 0x2A, 0x00, 0x02, 0xFE, 0xE2,
- 0xFD, 0x77, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFC, 0xBB, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xF7,
- 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0xF8, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x16,
- 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x34, 0xFD, 0x75, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE2,
- 0xFD, 0x76, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFD, 0x78, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF0,
- 0xFD, 0xB6, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFD, 0x13, 0x00, 0x02, 0xFE, 0xF0, 0xFD, 0x14,
- 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26,
- 0x00, 0x2C, 0xFC, 0x2B, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xBC, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x2C,
- 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xBD, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xF9, 0x00, 0x02, 0xFE, 0xF0,
- 0xFC, 0xFA, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x24,
- 0x00, 0x2A, 0xFD, 0x79, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFD, 0x7B, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xF0, 0xFD, 0x7A, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFD, 0x15, 0x00, 0x02, 0xFE, 0xF0,
- 0xFD, 0x16, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A,
- 0x00, 0x30, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x56, 0xFC, 0x2D,
- 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xBE, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x2E, 0x00, 0x02, 0xFE, 0xA2,
- 0xFC, 0xBF, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x2F, 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x7D, 0x00, 0x03,
- 0xFE, 0xA8, 0xFE, 0xE4, 0xFC, 0xC0, 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x30, 0x00, 0x02, 0xFE, 0xE2,
- 0xFC, 0xC1, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x31, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x32, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x20, 0xFD, 0x7C, 0x00, 0x03,
- 0xFE, 0xA8, 0xFE, 0xE2, 0xFD, 0xC1, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFC, 0x7C, 0x00, 0x02,
- 0xFE, 0xF0, 0xFC, 0x7D, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x26, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40, 0xFC, 0x33, 0x00, 0x02, 0xFE, 0xA2,
- 0xFC, 0xC2, 0x00, 0x02, 0xFE, 0xA4, 0xFD, 0xF1, 0x00, 0x03, 0xFE, 0xE0, 0xFB, 0xAF, 0xFC, 0x34,
- 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0xB4, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA4, 0xFC, 0xC3, 0x00, 0x02,
- 0xFE, 0xE4, 0xFC, 0x35, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x36, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x05,
- 0x00, 0x0C, 0x00, 0x14, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2A, 0xFD, 0x7E, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xA2, 0xFD, 0x7F, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFD, 0xB2, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xF2, 0xFC, 0x7E, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x7F, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0E,
- 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48,
- 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0xFC, 0x37, 0x00, 0x02,
- 0xFE, 0x8E, 0xFC, 0x38, 0x00, 0x02, 0xFE, 0x9E, 0xFC, 0xC4, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x39,
- 0x00, 0x02, 0xFE, 0xA2, 0xFC, 0xC5, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x3A, 0x00, 0x02, 0xFE, 0xA6,
- 0xFC, 0xC6, 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x3B, 0x00, 0x02, 0xFE, 0xDE, 0xFC, 0xC7, 0x00, 0x02,
- 0xFE, 0xE0, 0xFC, 0x3C, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0xC3, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4,
- 0xFC, 0xC8, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x3D, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x3E, 0x00, 0x02,
- 0xFE, 0xF2, 0x00, 0x09, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x34,
- 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0xFC, 0x80, 0x00, 0x02, 0xFE, 0x8E, 0xFC, 0x81, 0x00, 0x02,
- 0xFE, 0xDE, 0xFC, 0xEB, 0x00, 0x02, 0xFE, 0xE0, 0xFC, 0x82, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0xBB,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFD, 0xB7, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFC, 0xEC,
- 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x83, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x84, 0x00, 0x02, 0xFE, 0xF2,
- 0x00, 0x14, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x50,
- 0x00, 0x58, 0x00, 0x5E, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x72, 0x00, 0x78, 0x00, 0x80, 0x00, 0x86,
- 0x00, 0x8C, 0x00, 0x94, 0x00, 0x9A, 0x00, 0xA0, 0x00, 0xA6, 0xFE, 0xF5, 0x00, 0x02, 0xFE, 0x82,
- 0xFE, 0xF7, 0x00, 0x02, 0xFE, 0x84, 0xFE, 0xF9, 0x00, 0x02, 0xFE, 0x88, 0xFE, 0xFB, 0x00, 0x02,
- 0xFE, 0x8E, 0xFC, 0x3F, 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x83, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xA0,
- 0xFD, 0xBA, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE4, 0xFC, 0xC9, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x40,
- 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0xB5, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE4, 0xFC, 0xCA, 0x00, 0x02,
- 0xFE, 0xA4, 0xFC, 0x41, 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x86, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE4,
- 0xFC, 0xCB, 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x42, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x88, 0x00, 0x03,
- 0xFE, 0xE4, 0xFE, 0xA4, 0xFC, 0xCC, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xCD, 0x00, 0x02, 0xFE, 0xEC,
- 0xFC, 0x43, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x44, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x11, 0x00, 0x24,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C,
- 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x90, 0x00, 0x96,
- 0xFE, 0xF6, 0x00, 0x02, 0xFE, 0x82, 0xFE, 0xF8, 0x00, 0x02, 0xFE, 0x84, 0xFE, 0xFA, 0x00, 0x02,
- 0xFE, 0x88, 0xFE, 0xFC, 0x00, 0x02, 0xFE, 0x8E, 0xFD, 0x84, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0x9E,
- 0xFD, 0xBC, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE2, 0xFD, 0xAC, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2,
- 0xFD, 0x80, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE2, 0xFD, 0x82, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF0,
- 0xFD, 0x81, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2, 0xFD, 0x85, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE2,
- 0xFC, 0x85, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x87, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xA2, 0xFD, 0xAD,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0xFC, 0xED, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x86, 0x00, 0x02,
- 0xFE, 0xF0, 0xFC, 0x87, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x12, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x34,
- 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x58, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x70,
- 0x00, 0x76, 0x00, 0x7E, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0xFC, 0x45,
- 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0x8C, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xA4, 0xFD, 0x92, 0x00, 0x03,
- 0xFE, 0xA0, 0xFE, 0xA8, 0xFD, 0x8D, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE4, 0xFC, 0xCE, 0x00, 0x02,
- 0xFE, 0xA0, 0xFC, 0x46, 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x89, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xA0,
- 0xFD, 0xF4, 0x00, 0x04, 0xFE, 0xA4, 0xFE, 0xE4, 0xFE, 0xAA, 0xFD, 0x8A, 0x00, 0x03, 0xFE, 0xA4,
- 0xFE, 0xE4, 0xFC, 0xCF, 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x47, 0x00, 0x02, 0xFE, 0xA6, 0xFD, 0x8E,
- 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xA0, 0xFD, 0x8F, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xE4, 0xFC, 0xD0,
- 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x48, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xD1, 0x00, 0x02, 0xFE, 0xE4,
- 0xFC, 0x49, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x4A, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x06, 0x00, 0x0E,
- 0x00, 0x14, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x32, 0xFC, 0x88, 0x00, 0x02, 0xFE, 0x8E,
- 0xFD, 0xC0, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2, 0xFD, 0x8B, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2,
- 0xFD, 0xB9, 0x00, 0x03, 0xFE, 0xA8, 0xFE, 0xF2, 0xFC, 0x89, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0xB1,
- 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2C, 0x00, 0x34,
- 0x00, 0x3A, 0x00, 0x40, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00, 0x66,
- 0x00, 0x6C, 0x00, 0x72, 0xFC, 0x4B, 0x00, 0x02, 0xFE, 0x9E, 0xFD, 0xB8, 0x00, 0x03, 0xFE, 0xA0,
- 0xFE, 0xA4, 0xFD, 0x98, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE4, 0xFC, 0xD2, 0x00, 0x02, 0xFE, 0xA0,
- 0xFC, 0x4C, 0x00, 0x02, 0xFE, 0xA2, 0xFD, 0x95, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xE4, 0xFC, 0xD3,
- 0x00, 0x02, 0xFE, 0xA4, 0xFC, 0x4D, 0x00, 0x02, 0xFE, 0xA6, 0xFC, 0xD4, 0x00, 0x02, 0xFE, 0xA8,
- 0xFC, 0x4E, 0x00, 0x02, 0xFE, 0xE2, 0xFC, 0xD5, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0xD6, 0x00, 0x02,
- 0xFE, 0xEC, 0xFC, 0x4F, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x50, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x10,
- 0x00, 0x22, 0x00, 0x2A, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x42, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x58,
- 0x00, 0x5E, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C,
- 0xFD, 0xBD, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xA2, 0xFD, 0x97, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xE2,
- 0xFD, 0x99, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF0, 0xFD, 0xC7, 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2,
- 0xFD, 0x96, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF0, 0xFD, 0xB3, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2,
- 0xFC, 0x8A, 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x8B, 0x00, 0x02, 0xFE, 0xB0, 0xFC, 0x8C, 0x00, 0x02,
- 0xFE, 0xE2, 0xFD, 0x9B, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF0, 0xFD, 0x9A, 0x00, 0x03, 0xFE, 0xE4,
- 0xFE, 0xF2, 0xFC, 0xEE, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x8D, 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xEF,
- 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x8E, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x8F, 0x00, 0x02, 0xFE, 0xF2,
- 0x00, 0x09, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x3C,
- 0x00, 0x42, 0x00, 0x48, 0xFC, 0xD9, 0x00, 0x02, 0x06, 0x70, 0xFC, 0x51, 0x00, 0x02, 0xFE, 0x9E,
- 0xFC, 0xD7, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x52, 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x93, 0x00, 0x03,
- 0xFE, 0xE4, 0xFE, 0xA0, 0xFD, 0x94, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFC, 0xD8, 0x00, 0x02,
- 0xFE, 0xE4, 0xFC, 0x53, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x54, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x01,
- 0x00, 0x04, 0xFD, 0xF8, 0x00, 0x04, 0xFE, 0xB3, 0xFE, 0xE0, 0xFE, 0xE2, 0x00, 0x01, 0x00, 0x04,
- 0xFC, 0x5D, 0x00, 0x02, 0x06, 0x70, 0x00, 0x01, 0x00, 0x04, 0xFC, 0x90, 0x00, 0x02, 0x06, 0x70,
- 0x00, 0x0C, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x44, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x5E, 0xFC, 0x55, 0x00, 0x02, 0xFE, 0x9E,
- 0xFC, 0xDA, 0x00, 0x02, 0xFE, 0xA0, 0xFC, 0x56, 0x00, 0x02, 0xFE, 0xA2, 0xFC, 0xDB, 0x00, 0x02,
- 0xFE, 0xA4, 0xFC, 0x57, 0x00, 0x02, 0xFE, 0xA6, 0xFC, 0xDC, 0x00, 0x02, 0xFE, 0xA8, 0xFC, 0x58,
- 0x00, 0x02, 0xFE, 0xE2, 0xFD, 0x9D, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE4, 0xFC, 0xDD, 0x00, 0x02,
- 0xFE, 0xE4, 0xFC, 0xDE, 0x00, 0x02, 0xFE, 0xEC, 0xFC, 0x59, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x5A,
- 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x0C, 0x00, 0x1A, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36,
- 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x5E, 0x00, 0x64, 0xFD, 0xAF,
- 0x00, 0x03, 0xFE, 0xA0, 0xFE, 0xF2, 0xFD, 0xAE, 0x00, 0x03, 0xFE, 0xA4, 0xFE, 0xF2, 0xFC, 0x91,
- 0x00, 0x02, 0xFE, 0xAE, 0xFC, 0x92, 0x00, 0x02, 0xFE, 0xB0, 0xFC, 0x93, 0x00, 0x02, 0xFE, 0xE2,
- 0xFD, 0x9C, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xE2, 0xFD, 0xB0, 0x00, 0x03, 0xFE, 0xE4, 0xFE, 0xF2,
- 0xFC, 0xF0, 0x00, 0x02, 0xFE, 0xE4, 0xFC, 0x94, 0x00, 0x02, 0xFE, 0xE6, 0xFC, 0xF1, 0x00, 0x02,
- 0xFE, 0xEC, 0xFC, 0x95, 0x00, 0x02, 0xFE, 0xF0, 0xFC, 0x96, 0x00, 0x02, 0xFE, 0xF2, 0x00, 0x01,
- 0x00, 0x35, 0xFB, 0xD7, 0xFE, 0x8B, 0xFE, 0x8C, 0xFE, 0x8D, 0xFE, 0x8E, 0xFE, 0x91, 0xFE, 0x92,
- 0xFE, 0x97, 0xFE, 0x98, 0xFE, 0x9B, 0xFE, 0x9C, 0xFE, 0x9F, 0xFE, 0xA0, 0xFE, 0xA3, 0xFE, 0xA4,
- 0xFE, 0xA7, 0xFE, 0xA8, 0xFE, 0xAB, 0xFE, 0xAD, 0xFE, 0xB3, 0xFE, 0xB4, 0xFE, 0xB7, 0xFE, 0xB8,
- 0xFE, 0xBB, 0xFE, 0xBC, 0xFE, 0xBF, 0xFE, 0xC0, 0xFE, 0xC3, 0xFE, 0xC4, 0xFE, 0xC7, 0xFE, 0xC8,
- 0xFE, 0xCB, 0xFE, 0xCC, 0xFE, 0xCF, 0xFE, 0xD0, 0xFE, 0xD3, 0xFE, 0xD4, 0xFE, 0xD7, 0xFE, 0xD8,
- 0xFE, 0xDB, 0xFE, 0xDC, 0xFE, 0xDF, 0xFE, 0xE0, 0xFE, 0xE3, 0xFE, 0xE4, 0xFE, 0xE7, 0xFE, 0xE8,
- 0xFE, 0xEB, 0xFE, 0xED, 0xFE, 0xEF, 0xFE, 0xF0, 0xFE, 0xF3, 0xFE, 0xF4, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x3E, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x22,
- 0x00, 0x2C, 0x00, 0x01, 0x00, 0x04, 0x09, 0xDC, 0x00, 0x02, 0x09, 0xBC, 0x00, 0x01, 0x00, 0x04,
- 0x09, 0xDD, 0x00, 0x02, 0x09, 0xBC, 0x00, 0x01, 0x00, 0x04, 0x09, 0xDF, 0x00, 0x02, 0x09, 0xBC,
- 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x09, 0xCB, 0x00, 0x02, 0x09, 0xBE, 0x09, 0xCC, 0x00, 0x02,
- 0x09, 0xD7, 0x00, 0x01, 0x00, 0x04, 0x09, 0xA1, 0x09, 0xA2, 0x09, 0xAF, 0x09, 0xC7, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x2E, 0x00, 0x05, 0x00, 0x10, 0x00, 0x16,
- 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x02, 0x09, 0xC7, 0x09, 0xBE, 0x00, 0x02, 0x09, 0xC7,
- 0x09, 0xD7, 0x00, 0x02, 0x09, 0xA1, 0x09, 0xBC, 0x00, 0x02, 0x09, 0xA2, 0x09, 0xBC, 0x00, 0x02,
- 0x09, 0xAF, 0x09, 0xBC, 0x00, 0x01, 0x00, 0x05, 0x09, 0xCB, 0x09, 0xCC, 0x09, 0xDC, 0x09, 0xDD,
- 0x09, 0xDF, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x66, 0x00, 0x20,
- 0x00, 0x46, 0x00, 0x50, 0x00, 0x62, 0x00, 0x74, 0x00, 0x96, 0x00, 0xA8, 0x00, 0xB2, 0x00, 0xDC,
- 0x00, 0xEE, 0x00, 0xF8, 0x01, 0x1A, 0x01, 0x24, 0x01, 0x2E, 0x01, 0x38, 0x01, 0x4A, 0x01, 0x5C,
- 0x01, 0x7E, 0x01, 0x90, 0x01, 0x9A, 0x01, 0xC4, 0x01, 0xD6, 0x01, 0xE0, 0x02, 0x02, 0x02, 0x0C,
- 0x02, 0x16, 0x02, 0x20, 0x02, 0x2A, 0x02, 0x34, 0x02, 0x3E, 0x02, 0x48, 0x02, 0x52, 0x02, 0x5C,
- 0x00, 0x01, 0x00, 0x04, 0x04, 0x07, 0x00, 0x02, 0x03, 0x08, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x04, 0xD0, 0x00, 0x02, 0x03, 0x06, 0x04, 0xD2, 0x00, 0x02, 0x03, 0x08, 0x00, 0x02, 0x00, 0x06,
- 0x00, 0x0C, 0x04, 0x03, 0x00, 0x02, 0x03, 0x01, 0x04, 0x03, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04,
- 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x04, 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0xD6,
- 0x00, 0x02, 0x03, 0x06, 0x04, 0x01, 0x00, 0x02, 0x03, 0x08, 0x04, 0x00, 0x00, 0x02, 0x03, 0x40,
- 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x04, 0xC1, 0x00, 0x02, 0x03, 0x06, 0x04, 0xDC, 0x00, 0x02,
- 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xDE, 0x00, 0x02, 0x03, 0x08, 0x00, 0x05, 0x00, 0x0C,
- 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x04, 0x0D, 0x00, 0x02, 0x03, 0x00, 0x04, 0xE2,
- 0x00, 0x02, 0x03, 0x04, 0x04, 0x19, 0x00, 0x02, 0x03, 0x06, 0x04, 0xE4, 0x00, 0x02, 0x03, 0x08,
- 0x04, 0x0D, 0x00, 0x02, 0x03, 0x40, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x04, 0x0C, 0x00, 0x02,
- 0x03, 0x01, 0x04, 0x0C, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x04, 0xE6, 0x00, 0x02,
- 0x03, 0x08, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x04, 0xEE, 0x00, 0x02,
- 0x03, 0x04, 0x04, 0x0E, 0x00, 0x02, 0x03, 0x06, 0x04, 0xF0, 0x00, 0x02, 0x03, 0x08, 0x04, 0xF2,
- 0x00, 0x02, 0x03, 0x0B, 0x00, 0x01, 0x00, 0x04, 0x04, 0xF4, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01,
- 0x00, 0x04, 0x04, 0xF8, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xEC, 0x00, 0x02,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x04, 0xD1, 0x00, 0x02, 0x03, 0x06, 0x04, 0xD3,
- 0x00, 0x02, 0x03, 0x08, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x04, 0x53, 0x00, 0x02, 0x03, 0x01,
- 0x04, 0x53, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x04, 0x50, 0x00, 0x02, 0x03, 0x00, 0x04, 0xD7, 0x00, 0x02, 0x03, 0x06, 0x04, 0x51, 0x00, 0x02,
- 0x03, 0x08, 0x04, 0x50, 0x00, 0x02, 0x03, 0x40, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x04, 0xC2,
- 0x00, 0x02, 0x03, 0x06, 0x04, 0xDD, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xDF,
- 0x00, 0x02, 0x03, 0x08, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x04, 0x5D, 0x00, 0x02, 0x03, 0x00, 0x04, 0xE3, 0x00, 0x02, 0x03, 0x04, 0x04, 0x39, 0x00, 0x02,
- 0x03, 0x06, 0x04, 0xE5, 0x00, 0x02, 0x03, 0x08, 0x04, 0x5D, 0x00, 0x02, 0x03, 0x40, 0x00, 0x02,
- 0x00, 0x06, 0x00, 0x0C, 0x04, 0x5C, 0x00, 0x02, 0x03, 0x01, 0x04, 0x5C, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x04, 0x04, 0xE7, 0x00, 0x02, 0x03, 0x08, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10,
- 0x00, 0x16, 0x00, 0x1C, 0x04, 0xEF, 0x00, 0x02, 0x03, 0x04, 0x04, 0x5E, 0x00, 0x02, 0x03, 0x06,
- 0x04, 0xF1, 0x00, 0x02, 0x03, 0x08, 0x04, 0xF3, 0x00, 0x02, 0x03, 0x0B, 0x00, 0x01, 0x00, 0x04,
- 0x04, 0xF5, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xF9, 0x00, 0x02, 0x03, 0x08,
- 0x00, 0x01, 0x00, 0x04, 0x04, 0xED, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0x57,
- 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0x76, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x01,
- 0x00, 0x04, 0x04, 0x77, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x01, 0x00, 0x04, 0x04, 0xDA, 0x00, 0x02,
- 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xDB, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04,
- 0x04, 0xEA, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x04, 0xEB, 0x00, 0x02, 0x03, 0x08,
- 0x00, 0x01, 0x00, 0x20, 0x04, 0x06, 0x04, 0x10, 0x04, 0x13, 0x04, 0x15, 0x04, 0x16, 0x04, 0x17,
- 0x04, 0x18, 0x04, 0x1A, 0x04, 0x1E, 0x04, 0x23, 0x04, 0x27, 0x04, 0x2B, 0x04, 0x2D, 0x04, 0x30,
- 0x04, 0x33, 0x04, 0x35, 0x04, 0x36, 0x04, 0x37, 0x04, 0x38, 0x04, 0x3A, 0x04, 0x3E, 0x04, 0x43,
- 0x04, 0x47, 0x04, 0x4B, 0x04, 0x4D, 0x04, 0x56, 0x04, 0x74, 0x04, 0x75, 0x04, 0xD8, 0x04, 0xD9,
- 0x04, 0xE8, 0x04, 0xE9, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0A, 0x02, 0x1C, 0x00, 0x01,
- 0x01, 0xA6, 0x00, 0x34, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C,
- 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBC,
- 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xCE, 0x00, 0xD4, 0x00, 0xDA, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEC,
- 0x00, 0xF2, 0x00, 0xF8, 0x00, 0xFE, 0x01, 0x04, 0x01, 0x0A, 0x01, 0x10, 0x01, 0x16, 0x01, 0x1C,
- 0x01, 0x22, 0x01, 0x28, 0x01, 0x2E, 0x01, 0x34, 0x01, 0x3A, 0x01, 0x40, 0x01, 0x46, 0x01, 0x4C,
- 0x01, 0x52, 0x01, 0x58, 0x01, 0x5E, 0x01, 0x64, 0x01, 0x6A, 0x01, 0x70, 0x01, 0x76, 0x01, 0x7C,
- 0x01, 0x82, 0x01, 0x88, 0x01, 0x8E, 0x01, 0x94, 0x01, 0x9A, 0x01, 0xA0, 0x00, 0x02, 0x04, 0x15,
- 0x03, 0x00, 0x00, 0x02, 0x04, 0x15, 0x03, 0x08, 0x00, 0x02, 0x04, 0x13, 0x03, 0x01, 0x00, 0x02,
- 0x04, 0x06, 0x03, 0x08, 0x00, 0x02, 0x04, 0x1A, 0x03, 0x01, 0x00, 0x02, 0x04, 0x18, 0x03, 0x00,
- 0x00, 0x02, 0x04, 0x23, 0x03, 0x06, 0x00, 0x02, 0x04, 0x18, 0x03, 0x06, 0x00, 0x02, 0x04, 0x38,
- 0x03, 0x06, 0x00, 0x02, 0x04, 0x35, 0x03, 0x00, 0x00, 0x02, 0x04, 0x35, 0x03, 0x08, 0x00, 0x02,
- 0x04, 0x33, 0x03, 0x01, 0x00, 0x02, 0x04, 0x56, 0x03, 0x08, 0x00, 0x02, 0x04, 0x3A, 0x03, 0x01,
- 0x00, 0x02, 0x04, 0x38, 0x03, 0x00, 0x00, 0x02, 0x04, 0x43, 0x03, 0x06, 0x00, 0x02, 0x04, 0x74,
- 0x03, 0x0F, 0x00, 0x02, 0x04, 0x75, 0x03, 0x0F, 0x00, 0x02, 0x04, 0x16, 0x03, 0x06, 0x00, 0x02,
- 0x04, 0x36, 0x03, 0x06, 0x00, 0x02, 0x04, 0x10, 0x03, 0x06, 0x00, 0x02, 0x04, 0x30, 0x03, 0x06,
- 0x00, 0x02, 0x04, 0x10, 0x03, 0x08, 0x00, 0x02, 0x04, 0x30, 0x03, 0x08, 0x00, 0x02, 0x04, 0x15,
- 0x03, 0x06, 0x00, 0x02, 0x04, 0x35, 0x03, 0x06, 0x00, 0x02, 0x04, 0xD8, 0x03, 0x08, 0x00, 0x02,
- 0x04, 0xD9, 0x03, 0x08, 0x00, 0x02, 0x04, 0x16, 0x03, 0x08, 0x00, 0x02, 0x04, 0x36, 0x03, 0x08,
- 0x00, 0x02, 0x04, 0x17, 0x03, 0x08, 0x00, 0x02, 0x04, 0x37, 0x03, 0x08, 0x00, 0x02, 0x04, 0x18,
- 0x03, 0x04, 0x00, 0x02, 0x04, 0x38, 0x03, 0x04, 0x00, 0x02, 0x04, 0x18, 0x03, 0x08, 0x00, 0x02,
- 0x04, 0x38, 0x03, 0x08, 0x00, 0x02, 0x04, 0x1E, 0x03, 0x08, 0x00, 0x02, 0x04, 0x3E, 0x03, 0x08,
- 0x00, 0x02, 0x04, 0xE8, 0x03, 0x08, 0x00, 0x02, 0x04, 0xE9, 0x03, 0x08, 0x00, 0x02, 0x04, 0x2D,
- 0x03, 0x08, 0x00, 0x02, 0x04, 0x4D, 0x03, 0x08, 0x00, 0x02, 0x04, 0x23, 0x03, 0x04, 0x00, 0x02,
- 0x04, 0x43, 0x03, 0x04, 0x00, 0x02, 0x04, 0x23, 0x03, 0x08, 0x00, 0x02, 0x04, 0x43, 0x03, 0x08,
- 0x00, 0x02, 0x04, 0x23, 0x03, 0x0B, 0x00, 0x02, 0x04, 0x43, 0x03, 0x0B, 0x00, 0x02, 0x04, 0x27,
- 0x03, 0x08, 0x00, 0x02, 0x04, 0x47, 0x03, 0x08, 0x00, 0x02, 0x04, 0x2B, 0x03, 0x08, 0x00, 0x02,
- 0x04, 0x4B, 0x03, 0x08, 0x00, 0x01, 0x00, 0x34, 0x04, 0x00, 0x04, 0x01, 0x04, 0x03, 0x04, 0x07,
- 0x04, 0x0C, 0x04, 0x0D, 0x04, 0x0E, 0x04, 0x19, 0x04, 0x39, 0x04, 0x50, 0x04, 0x51, 0x04, 0x53,
- 0x04, 0x57, 0x04, 0x5C, 0x04, 0x5D, 0x04, 0x5E, 0x04, 0x76, 0x04, 0x77, 0x04, 0xC1, 0x04, 0xC2,
- 0x04, 0xD0, 0x04, 0xD1, 0x04, 0xD2, 0x04, 0xD3, 0x04, 0xD6, 0x04, 0xD7, 0x04, 0xDA, 0x04, 0xDB,
- 0x04, 0xDC, 0x04, 0xDD, 0x04, 0xDE, 0x04, 0xDF, 0x04, 0xE2, 0x04, 0xE3, 0x04, 0xE4, 0x04, 0xE5,
- 0x04, 0xE6, 0x04, 0xE7, 0x04, 0xEA, 0x04, 0xEB, 0x04, 0xEC, 0x04, 0xED, 0x04, 0xEE, 0x04, 0xEF,
- 0x04, 0xF0, 0x04, 0xF1, 0x04, 0xF2, 0x04, 0xF3, 0x04, 0xF4, 0x04, 0xF5, 0x04, 0xF8, 0x04, 0xF9,
- 0x00, 0x01, 0x00, 0x46, 0x00, 0x08, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E,
- 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40, 0x00, 0x02, 0x04, 0x15, 0x03, 0x40, 0x00, 0x02, 0x04, 0x13,
- 0x03, 0x41, 0x00, 0x02, 0x04, 0x1A, 0x03, 0x41, 0x00, 0x02, 0x04, 0x18, 0x03, 0x40, 0x00, 0x02,
- 0x04, 0x35, 0x03, 0x40, 0x00, 0x02, 0x04, 0x33, 0x03, 0x41, 0x00, 0x02, 0x04, 0x3A, 0x03, 0x41,
- 0x00, 0x02, 0x04, 0x38, 0x03, 0x40, 0x00, 0x01, 0x00, 0x08, 0x04, 0x00, 0x04, 0x03, 0x04, 0x0C,
- 0x04, 0x0D, 0x04, 0x50, 0x04, 0x53, 0x04, 0x5C, 0x04, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x8A, 0x00, 0x0B, 0x00, 0x1C, 0x00, 0x26, 0x00, 0x30, 0x00, 0x3A,
- 0x00, 0x44, 0x00, 0x4E, 0x00, 0x58, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x76, 0x00, 0x80, 0x00, 0x01,
- 0x00, 0x04, 0x09, 0x58, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x59, 0x00, 0x02,
- 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x5A, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04,
- 0x09, 0x5B, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x5C, 0x00, 0x02, 0x09, 0x3C,
- 0x00, 0x01, 0x00, 0x04, 0x09, 0x5D, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x29,
- 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x5E, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01,
- 0x00, 0x04, 0x09, 0x5F, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x31, 0x00, 0x02,
- 0x09, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x09, 0x34, 0x00, 0x02, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x0B,
- 0x09, 0x15, 0x09, 0x16, 0x09, 0x17, 0x09, 0x1C, 0x09, 0x21, 0x09, 0x22, 0x09, 0x28, 0x09, 0x2B,
- 0x09, 0x2F, 0x09, 0x30, 0x09, 0x33, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01,
- 0x00, 0x5E, 0x00, 0x0B, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3A,
- 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x02, 0x09, 0x28, 0x09, 0x3C,
- 0x00, 0x02, 0x09, 0x30, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x33, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x15,
- 0x09, 0x3C, 0x00, 0x02, 0x09, 0x16, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x17, 0x09, 0x3C, 0x00, 0x02,
- 0x09, 0x1C, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x21, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x22, 0x09, 0x3C,
- 0x00, 0x02, 0x09, 0x2B, 0x09, 0x3C, 0x00, 0x02, 0x09, 0x2F, 0x09, 0x3C, 0x00, 0x01, 0x00, 0x0B,
- 0x09, 0x29, 0x09, 0x31, 0x09, 0x34, 0x09, 0x58, 0x09, 0x59, 0x09, 0x5A, 0x09, 0x5B, 0x09, 0x5C,
- 0x09, 0x5D, 0x09, 0x5E, 0x09, 0x5F, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01,
- 0x33, 0x04, 0x00, 0x75, 0x00, 0xF0, 0x01, 0x1A, 0x04, 0x5A, 0x05, 0x0C, 0x08, 0x3C, 0x09, 0x24,
- 0x09, 0xD6, 0x09, 0xE0, 0x0A, 0x54, 0x0D, 0x84, 0x0D, 0x8E, 0x0D, 0x98, 0x11, 0x44, 0x11, 0xF6,
- 0x15, 0x92, 0x16, 0xBC, 0x17, 0x6E, 0x17, 0x88, 0x18, 0xB2, 0x1C, 0x4E, 0x1C, 0x78, 0x1C, 0xA2,
- 0x1C, 0xAC, 0x1C, 0xC6, 0x1D, 0x5C, 0x1D, 0xF2, 0x1D, 0xFC, 0x1E, 0x06, 0x1E, 0x10, 0x1E, 0x1A,
- 0x1E, 0x24, 0x1E, 0x2E, 0x1E, 0xC4, 0x1F, 0x5A, 0x1F, 0x64, 0x1F, 0x6E, 0x1F, 0x78, 0x1F, 0x82,
- 0x1F, 0x8C, 0x1F, 0x96, 0x1F, 0xB8, 0x1F, 0xDA, 0x1F, 0xFC, 0x20, 0x1E, 0x20, 0xB4, 0x21, 0x4A,
- 0x21, 0x54, 0x21, 0x5E, 0x21, 0x68, 0x21, 0x72, 0x21, 0x7C, 0x21, 0x86, 0x22, 0x1C, 0x22, 0xB2,
- 0x22, 0xBC, 0x22, 0xC6, 0x22, 0xD0, 0x22, 0xDA, 0x22, 0xE4, 0x22, 0xEE, 0x23, 0x18, 0x23, 0x42,
- 0x23, 0x6C, 0x23, 0x96, 0x23, 0xB8, 0x23, 0xDA, 0x23, 0xFC, 0x24, 0x1E, 0x24, 0x48, 0x24, 0x72,
- 0x24, 0x9C, 0x25, 0x32, 0x25, 0xC8, 0x25, 0xD2, 0x25, 0xDC, 0x25, 0xE6, 0x25, 0xF0, 0x25, 0xFA,
- 0x26, 0x04, 0x26, 0x9A, 0x27, 0x30, 0x27, 0x3A, 0x27, 0x44, 0x27, 0x4E, 0x27, 0x58, 0x27, 0x62,
- 0x27, 0x6C, 0x27, 0x76, 0x27, 0x80, 0x27, 0x8A, 0x27, 0x94, 0x27, 0x9E, 0x27, 0xA8, 0x27, 0xD2,
- 0x27, 0xFC, 0x28, 0x26, 0x28, 0x50, 0x28, 0x7A, 0x28, 0xA4, 0x28, 0xCE, 0x28, 0xF8, 0x29, 0x22,
- 0x29, 0x4C, 0x29, 0x76, 0x29, 0xA0, 0x2A, 0x78, 0x2A, 0x82, 0x2B, 0x32, 0x2C, 0x5C, 0x2C, 0x86,
- 0x2D, 0x5E, 0x2D, 0x68, 0x2E, 0x18, 0x2E, 0xF0, 0x2E, 0xFA, 0x2F, 0xAA, 0x2F, 0xD4, 0x00, 0x05,
- 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xED, 0x00, 0x02, 0x03, 0x00,
- 0x03, 0x85, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xED, 0x00, 0x02, 0x03, 0x40, 0x03, 0x85, 0x00, 0x02,
- 0x03, 0x41, 0x1F, 0xC1, 0x00, 0x02, 0x03, 0x42, 0x00, 0x4C, 0x00, 0x9A, 0x00, 0xA0, 0x00, 0xA6,
- 0x00, 0xAC, 0x00, 0xB2, 0x00, 0xBC, 0x00, 0xC4, 0x00, 0xCE, 0x00, 0xD6, 0x00, 0xE0, 0x00, 0xE8,
- 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x04, 0x01, 0x0C, 0x01, 0x16, 0x01, 0x20, 0x01, 0x2A, 0x01, 0x34,
- 0x01, 0x3E, 0x01, 0x46, 0x01, 0x4C, 0x01, 0x56, 0x01, 0x5E, 0x01, 0x68, 0x01, 0x70, 0x01, 0x7A,
- 0x01, 0x82, 0x01, 0x8C, 0x01, 0x94, 0x01, 0x9E, 0x01, 0xA6, 0x01, 0xB0, 0x01, 0xBA, 0x01, 0xC4,
- 0x01, 0xCE, 0x01, 0xD8, 0x01, 0xE0, 0x01, 0xE6, 0x01, 0xEC, 0x01, 0xF2, 0x01, 0xFC, 0x02, 0x04,
- 0x02, 0x0E, 0x02, 0x16, 0x02, 0x20, 0x02, 0x28, 0x02, 0x32, 0x02, 0x3A, 0x02, 0x44, 0x02, 0x4C,
- 0x02, 0x56, 0x02, 0x60, 0x02, 0x6A, 0x02, 0x74, 0x02, 0x7E, 0x02, 0x86, 0x02, 0x8C, 0x02, 0x96,
- 0x02, 0xA0, 0x02, 0xAA, 0x02, 0xB4, 0x02, 0xBE, 0x02, 0xC6, 0x02, 0xD0, 0x02, 0xDA, 0x02, 0xE4,
- 0x02, 0xEE, 0x02, 0xF8, 0x03, 0x00, 0x03, 0x0A, 0x03, 0x14, 0x03, 0x1E, 0x03, 0x28, 0x03, 0x32,
- 0x03, 0x3A, 0x1F, 0xBA, 0x00, 0x02, 0x03, 0x00, 0x03, 0x86, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xB9,
- 0x00, 0x02, 0x03, 0x04, 0x1F, 0xB8, 0x00, 0x02, 0x03, 0x06, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x0C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x8A,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40,
- 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x0C, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x04, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x0E, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x42, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x8C,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45, 0x1F, 0x08,
- 0x00, 0x02, 0x03, 0x13, 0x1F, 0x8B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x0B,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x0D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x0B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x0D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x0F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0x8B,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0x89, 0x00, 0x03, 0x03, 0x14, 0x03, 0x45, 0x1F, 0x09, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xBA,
- 0x00, 0x02, 0x03, 0x40, 0x03, 0x86, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x0C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x8A,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x0C, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x04, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x0E, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x8C,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45, 0x1F, 0x08,
- 0x00, 0x02, 0x03, 0x43, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x8C,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13, 0x1F, 0x8B,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x89, 0x00, 0x03, 0x03, 0x45, 0x03, 0x14, 0x1F, 0x8A, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41,
- 0x1F, 0x8E, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x43, 0x1F, 0xBC, 0x00, 0x02, 0x03, 0x45, 0x00, 0x13, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34,
- 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72,
- 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAC,
- 0x1F, 0xC8, 0x00, 0x02, 0x03, 0x00, 0x03, 0x88, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x1A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x00, 0x1F, 0x1C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x1A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x1C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x18, 0x00, 0x02,
- 0x03, 0x13, 0x1F, 0x1B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x1D, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x01, 0x1F, 0x1B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x1D, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x41, 0x1F, 0x19, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xC8, 0x00, 0x02, 0x03, 0x40, 0x03, 0x88,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x1A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x1C, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x01, 0x1F, 0x1A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x1C, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x41, 0x1F, 0x18, 0x00, 0x02, 0x03, 0x43, 0x00, 0x4A, 0x00, 0x96, 0x00, 0x9C,
- 0x00, 0xA2, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBE, 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE2,
- 0x00, 0xEA, 0x00, 0xF4, 0x00, 0xFC, 0x01, 0x06, 0x01, 0x10, 0x01, 0x1A, 0x01, 0x24, 0x01, 0x2E,
- 0x01, 0x36, 0x01, 0x3C, 0x01, 0x46, 0x01, 0x4E, 0x01, 0x58, 0x01, 0x60, 0x01, 0x6A, 0x01, 0x72,
- 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8E, 0x01, 0x96, 0x01, 0xA0, 0x01, 0xAA, 0x01, 0xB4, 0x01, 0xBE,
- 0x01, 0xC8, 0x01, 0xD0, 0x01, 0xD6, 0x01, 0xDC, 0x01, 0xE2, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFE,
- 0x02, 0x06, 0x02, 0x10, 0x02, 0x18, 0x02, 0x22, 0x02, 0x2A, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x46,
- 0x02, 0x50, 0x02, 0x5A, 0x02, 0x64, 0x02, 0x6E, 0x02, 0x76, 0x02, 0x7C, 0x02, 0x86, 0x02, 0x90,
- 0x02, 0x9A, 0x02, 0xA4, 0x02, 0xAE, 0x02, 0xB6, 0x02, 0xC0, 0x02, 0xCA, 0x02, 0xD4, 0x02, 0xDE,
- 0x02, 0xE8, 0x02, 0xF0, 0x02, 0xFA, 0x03, 0x04, 0x03, 0x0E, 0x03, 0x18, 0x03, 0x22, 0x03, 0x2A,
- 0x1F, 0xCA, 0x00, 0x02, 0x03, 0x00, 0x03, 0x89, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x2A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x9C,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01,
- 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x2A, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x04, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x2E,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00,
- 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x9E,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45,
- 0x1F, 0x28, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45,
- 0x1F, 0x2B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x2D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x40, 0x03, 0x45, 0x1F, 0x2B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x9D, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x2D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x9F,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x2F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x9D,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x9F, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0x99, 0x00, 0x03, 0x03, 0x14, 0x03, 0x45, 0x1F, 0x29, 0x00, 0x02, 0x03, 0x14,
- 0x1F, 0xCA, 0x00, 0x02, 0x03, 0x40, 0x03, 0x89, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x9A, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x2A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x9C,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01,
- 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x2A, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x04, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x2E,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00,
- 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x9E,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45,
- 0x1F, 0x28, 0x00, 0x02, 0x03, 0x43, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00,
- 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x9E,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13,
- 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x14, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x9D,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x9F, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x42, 0x1F, 0x99, 0x00, 0x03, 0x03, 0x45, 0x03, 0x14, 0x1F, 0x9A, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x00, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x9A,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x43, 0x1F, 0xCC, 0x00, 0x02, 0x03, 0x45, 0x00, 0x19, 0x00, 0x34, 0x00, 0x3A,
- 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72,
- 0x00, 0x7A, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x00, 0x98, 0x00, 0xA0, 0x00, 0xA8, 0x00, 0xAE,
- 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xCA, 0x00, 0xD2, 0x00, 0xDA, 0x00, 0xE2, 0x1F, 0xDA,
- 0x00, 0x02, 0x03, 0x00, 0x03, 0x8A, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xD9, 0x00, 0x02, 0x03, 0x04,
- 0x1F, 0xD8, 0x00, 0x02, 0x03, 0x06, 0x03, 0xAA, 0x00, 0x02, 0x03, 0x08, 0x1F, 0x3A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x00, 0x1F, 0x3C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x3A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x3C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x3E, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x42, 0x1F, 0x38, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x3B, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x00, 0x1F, 0x3D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x3B, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x40, 0x1F, 0x3D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x3F, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x42, 0x1F, 0x39, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xDA, 0x00, 0x02, 0x03, 0x40, 0x03, 0x8A,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x3A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x3C, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x01, 0x1F, 0x3A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x3C, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x41, 0x1F, 0x3E, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x38, 0x00, 0x02,
- 0x03, 0x43, 0x00, 0x13, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86,
- 0x00, 0x8C, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAC, 0x1F, 0xF8, 0x00, 0x02, 0x03, 0x00,
- 0x03, 0x8C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x4A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x4C,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x4A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x4C,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x48, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x4B, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0x4D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x4B, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0x4D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x49, 0x00, 0x02,
- 0x03, 0x14, 0x1F, 0xF8, 0x00, 0x02, 0x03, 0x40, 0x03, 0x8C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x4A,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x4C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x4A,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x4C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x48,
- 0x00, 0x02, 0x03, 0x43, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xEC, 0x00, 0x02, 0x03, 0x14, 0x00, 0x0D,
- 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3A, 0x00, 0x42, 0x00, 0x4A,
- 0x00, 0x52, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0x1F, 0xEA, 0x00, 0x02, 0x03, 0x00,
- 0x03, 0x8E, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xE9, 0x00, 0x02, 0x03, 0x04, 0x1F, 0xE8, 0x00, 0x02,
- 0x03, 0x06, 0x03, 0xAB, 0x00, 0x02, 0x03, 0x08, 0x1F, 0x5B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00,
- 0x1F, 0x5D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x5B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40,
- 0x1F, 0x5D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x5F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x59, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xEA, 0x00, 0x02, 0x03, 0x40, 0x03, 0x8E, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x4A, 0x00, 0x96, 0x00, 0x9C, 0x00, 0xA2, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBE,
- 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF4, 0x00, 0xFC, 0x01, 0x06,
- 0x01, 0x10, 0x01, 0x1A, 0x01, 0x24, 0x01, 0x2E, 0x01, 0x36, 0x01, 0x3C, 0x01, 0x46, 0x01, 0x4E,
- 0x01, 0x58, 0x01, 0x60, 0x01, 0x6A, 0x01, 0x72, 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8E, 0x01, 0x96,
- 0x01, 0xA0, 0x01, 0xAA, 0x01, 0xB4, 0x01, 0xBE, 0x01, 0xC8, 0x01, 0xD0, 0x01, 0xD6, 0x01, 0xDC,
- 0x01, 0xE2, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFE, 0x02, 0x06, 0x02, 0x10, 0x02, 0x18, 0x02, 0x22,
- 0x02, 0x2A, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x46, 0x02, 0x50, 0x02, 0x5A, 0x02, 0x64, 0x02, 0x6E,
- 0x02, 0x76, 0x02, 0x7C, 0x02, 0x86, 0x02, 0x90, 0x02, 0x9A, 0x02, 0xA4, 0x02, 0xAE, 0x02, 0xB6,
- 0x02, 0xC0, 0x02, 0xCA, 0x02, 0xD4, 0x02, 0xDE, 0x02, 0xE8, 0x02, 0xF0, 0x02, 0xFA, 0x03, 0x04,
- 0x03, 0x0E, 0x03, 0x18, 0x03, 0x22, 0x03, 0x2A, 0x1F, 0xFA, 0x00, 0x02, 0x03, 0x00, 0x03, 0x8F,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6A,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6E, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45, 0x1F, 0x68, 0x00, 0x02, 0x03, 0x13, 0x1F, 0xAB,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00,
- 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x6D, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x6B, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6D,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45,
- 0x1F, 0x6F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41,
- 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x45, 0x1F, 0x69, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xFA, 0x00, 0x02, 0x03, 0x40, 0x03, 0x8F,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6A,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6E, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45, 0x1F, 0x68, 0x00, 0x02, 0x03, 0x43, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41,
- 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x14, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x45, 0x03, 0x43, 0x1F, 0xFC, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xB4, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0xC4, 0x00, 0x02, 0x03, 0x45, 0x00, 0x57, 0x00, 0xB0, 0x00, 0xB8, 0x00, 0xBE, 0x00, 0xC6,
- 0x00, 0xCC, 0x00, 0xD2, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF4, 0x00, 0xFC, 0x01, 0x06,
- 0x01, 0x0E, 0x01, 0x18, 0x01, 0x20, 0x01, 0x2A, 0x01, 0x32, 0x01, 0x3C, 0x01, 0x46, 0x01, 0x50,
- 0x01, 0x5A, 0x01, 0x64, 0x01, 0x6C, 0x01, 0x72, 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8E, 0x01, 0x96,
- 0x01, 0xA0, 0x01, 0xA8, 0x01, 0xB2, 0x01, 0xBA, 0x01, 0xC4, 0x01, 0xCC, 0x01, 0xD6, 0x01, 0xE0,
- 0x01, 0xEA, 0x01, 0xF4, 0x01, 0xFE, 0x02, 0x06, 0x02, 0x0C, 0x02, 0x14, 0x02, 0x1A, 0x02, 0x22,
- 0x02, 0x28, 0x02, 0x30, 0x02, 0x36, 0x02, 0x40, 0x02, 0x48, 0x02, 0x52, 0x02, 0x5A, 0x02, 0x64,
- 0x02, 0x6C, 0x02, 0x76, 0x02, 0x7E, 0x02, 0x88, 0x02, 0x90, 0x02, 0x9A, 0x02, 0xA4, 0x02, 0xAE,
- 0x02, 0xB8, 0x02, 0xC2, 0x02, 0xCA, 0x02, 0xD0, 0x02, 0xD8, 0x02, 0xE0, 0x02, 0xEA, 0x02, 0xF4,
- 0x02, 0xFE, 0x03, 0x08, 0x03, 0x12, 0x03, 0x1A, 0x03, 0x24, 0x03, 0x2E, 0x03, 0x38, 0x03, 0x42,
- 0x03, 0x4C, 0x03, 0x54, 0x03, 0x5C, 0x03, 0x64, 0x03, 0x6C, 0x03, 0x76, 0x03, 0x80, 0x03, 0x8A,
- 0x03, 0x94, 0x03, 0x9E, 0x03, 0xA6, 0x1F, 0xB2, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x70,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0xB4, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x03, 0xAC, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0xB1, 0x00, 0x02, 0x03, 0x04, 0x1F, 0xB0, 0x00, 0x02, 0x03, 0x06, 0x1F, 0x82,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x02, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00,
- 0x1F, 0x84, 0x00, 0x04, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x04, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x02, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x04,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x04, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45,
- 0x1F, 0x06, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41,
- 0x1F, 0x86, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x80, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x45, 0x1F, 0x00, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x83, 0x00, 0x04, 0x03, 0x14, 0x03, 0x00,
- 0x03, 0x45, 0x1F, 0x03, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x85, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x01, 0x03, 0x45, 0x1F, 0x05, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x03, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x85,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x05, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41,
- 0x1F, 0x87, 0x00, 0x04, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x07, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x42, 0x1F, 0x83, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x85, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40,
- 0x1F, 0x85, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x87, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x42, 0x1F, 0x81, 0x00, 0x03, 0x03, 0x14, 0x03, 0x45, 0x1F, 0x01, 0x00, 0x02,
- 0x03, 0x14, 0x1F, 0xB2, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x70, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0xB4, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x03, 0xAC, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xB7,
- 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0xB6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x82, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x02, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x84,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x04, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01,
- 0x1F, 0x82, 0x00, 0x04, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x02, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x40, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x04, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x04, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x06,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00,
- 0x1F, 0x84, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x86,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x80, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45,
- 0x1F, 0x00, 0x00, 0x02, 0x03, 0x43, 0x1F, 0xB2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xB4,
- 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00,
- 0x1F, 0x84, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x86,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x80, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13,
- 0x1F, 0x83, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x85, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x14, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x85,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x87, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x42, 0x1F, 0x81, 0x00, 0x03, 0x03, 0x45, 0x03, 0x14, 0x1F, 0xB2, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0xB4, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xB7, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x84, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0x84, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0x80, 0x00, 0x03, 0x03, 0x45, 0x03, 0x43, 0x1F, 0xB3, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x13, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86,
- 0x00, 0x8C, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAC, 0x1F, 0x72, 0x00, 0x02, 0x03, 0x00,
- 0x03, 0xAD, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x12, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x14,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x12, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x14,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x10, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x13, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0x15, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x13, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0x15, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x11, 0x00, 0x02,
- 0x03, 0x14, 0x1F, 0x72, 0x00, 0x02, 0x03, 0x40, 0x03, 0xAD, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x12,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x14, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x12,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x14, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x10,
- 0x00, 0x02, 0x03, 0x43, 0x00, 0x55, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xC8,
- 0x00, 0xD2, 0x00, 0xDA, 0x00, 0xE4, 0x00, 0xEC, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x08, 0x01, 0x10,
- 0x01, 0x1A, 0x01, 0x22, 0x01, 0x2C, 0x01, 0x36, 0x01, 0x40, 0x01, 0x4A, 0x01, 0x54, 0x01, 0x5C,
- 0x01, 0x62, 0x01, 0x6C, 0x01, 0x74, 0x01, 0x7E, 0x01, 0x86, 0x01, 0x90, 0x01, 0x98, 0x01, 0xA2,
- 0x01, 0xAA, 0x01, 0xB4, 0x01, 0xBC, 0x01, 0xC6, 0x01, 0xD0, 0x01, 0xDA, 0x01, 0xE4, 0x01, 0xEE,
- 0x01, 0xF6, 0x01, 0xFC, 0x02, 0x04, 0x02, 0x0A, 0x02, 0x12, 0x02, 0x18, 0x02, 0x20, 0x02, 0x26,
- 0x02, 0x30, 0x02, 0x38, 0x02, 0x42, 0x02, 0x4A, 0x02, 0x54, 0x02, 0x5C, 0x02, 0x66, 0x02, 0x6E,
- 0x02, 0x78, 0x02, 0x80, 0x02, 0x8A, 0x02, 0x94, 0x02, 0x9E, 0x02, 0xA8, 0x02, 0xB2, 0x02, 0xBA,
- 0x02, 0xC0, 0x02, 0xC8, 0x02, 0xD0, 0x02, 0xDA, 0x02, 0xE4, 0x02, 0xEE, 0x02, 0xF8, 0x03, 0x02,
- 0x03, 0x0A, 0x03, 0x14, 0x03, 0x1E, 0x03, 0x28, 0x03, 0x32, 0x03, 0x3C, 0x03, 0x44, 0x03, 0x4C,
- 0x03, 0x54, 0x03, 0x5C, 0x03, 0x66, 0x03, 0x70, 0x03, 0x7A, 0x03, 0x84, 0x03, 0x8E, 0x03, 0x96,
- 0x1F, 0xC2, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x74, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xC4,
- 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x03, 0xAE, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x22, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x94,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x24, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01,
- 0x1F, 0x92, 0x00, 0x04, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x22, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x40, 0x1F, 0x94, 0x00, 0x04, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x24, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x04, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x26,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00,
- 0x1F, 0x94, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x96,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45,
- 0x1F, 0x20, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x93, 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45,
- 0x1F, 0x23, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x95, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x25, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x93, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x40, 0x03, 0x45, 0x1F, 0x23, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x95, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x25, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x97,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x27, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x93, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x95, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0x93, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x95,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x97, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0x91, 0x00, 0x03, 0x03, 0x14, 0x03, 0x45, 0x1F, 0x21, 0x00, 0x02, 0x03, 0x14,
- 0x1F, 0xC2, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x74, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xC4,
- 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x03, 0xAE, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xC7, 0x00, 0x03,
- 0x03, 0x42, 0x03, 0x45, 0x1F, 0xC6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x22, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x24, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x92,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x22, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0x94, 0x00, 0x04, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x24, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x41, 0x1F, 0x96, 0x00, 0x04, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x26, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x94,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0x94, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45, 0x1F, 0x20,
- 0x00, 0x02, 0x03, 0x43, 0x1F, 0xC2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xC4, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x94,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x40, 0x1F, 0x94, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13, 0x1F, 0x93,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x95, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x01, 0x1F, 0x93, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x95, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x97, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x91, 0x00, 0x03, 0x03, 0x45, 0x03, 0x14, 0x1F, 0xC2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40,
- 0x1F, 0xC4, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xC7, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0x92, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x94,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x42, 0x1F, 0x90, 0x00, 0x03, 0x03, 0x45, 0x03, 0x43, 0x1F, 0xC3, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x20, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A,
- 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x88, 0x00, 0x90, 0x00, 0x98, 0x00, 0xA0, 0x00, 0xA8,
- 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBE, 0x00, 0xC6, 0x00, 0xCE, 0x00, 0xD6, 0x00, 0xDE, 0x00, 0xE4,
- 0x00, 0xEA, 0x00, 0xF0, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x06, 0x01, 0x0E, 0x01, 0x16, 0x01, 0x1E,
- 0x01, 0x24, 0x1F, 0x76, 0x00, 0x02, 0x03, 0x00, 0x03, 0xAF, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xD1,
- 0x00, 0x02, 0x03, 0x04, 0x1F, 0xD0, 0x00, 0x02, 0x03, 0x06, 0x1F, 0xD2, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x00, 0x03, 0x90, 0x00, 0x03, 0x03, 0x08, 0x03, 0x01, 0x1F, 0xD2, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x40, 0x03, 0x90, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41, 0x1F, 0xD7, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x42, 0x03, 0xCA, 0x00, 0x02, 0x03, 0x08, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00,
- 0x1F, 0x34, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40,
- 0x1F, 0x34, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x36, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42,
- 0x1F, 0x30, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x33, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x35,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x33, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x35,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x37, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0x31,
- 0x00, 0x02, 0x03, 0x14, 0x1F, 0x76, 0x00, 0x02, 0x03, 0x40, 0x03, 0xAF, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0xD6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x34,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x34,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x36, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x30,
- 0x00, 0x02, 0x03, 0x43, 0x03, 0x90, 0x00, 0x02, 0x03, 0x44, 0x00, 0x13, 0x00, 0x28, 0x00, 0x2E,
- 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A,
- 0x00, 0x72, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4,
- 0x00, 0xAC, 0x1F, 0x78, 0x00, 0x02, 0x03, 0x00, 0x03, 0xCC, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x42,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x44, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x42,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x44, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x40,
- 0x00, 0x02, 0x03, 0x13, 0x1F, 0x43, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x45, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x01, 0x1F, 0x43, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x45, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x41, 0x1F, 0x41, 0x00, 0x02, 0x03, 0x14, 0x1F, 0x78, 0x00, 0x02, 0x03, 0x40,
- 0x03, 0xCC, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x42, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x44,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x42, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x44,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x40, 0x00, 0x02, 0x03, 0x43, 0x00, 0x03, 0x00, 0x08,
- 0x00, 0x0E, 0x00, 0x14, 0x1F, 0xE4, 0x00, 0x02, 0x03, 0x13, 0x1F, 0xE5, 0x00, 0x02, 0x03, 0x14,
- 0x1F, 0xE4, 0x00, 0x02, 0x03, 0x43, 0x00, 0x20, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54,
- 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x88, 0x00, 0x90,
- 0x00, 0x98, 0x00, 0xA0, 0x00, 0xA8, 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBE, 0x00, 0xC6, 0x00, 0xCE,
- 0x00, 0xD6, 0x00, 0xDE, 0x00, 0xE4, 0x00, 0xEA, 0x00, 0xF0, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x06,
- 0x01, 0x0E, 0x01, 0x16, 0x01, 0x1E, 0x01, 0x24, 0x1F, 0x7A, 0x00, 0x02, 0x03, 0x00, 0x03, 0xCD,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0xE1, 0x00, 0x02, 0x03, 0x04, 0x1F, 0xE0, 0x00, 0x02, 0x03, 0x06,
- 0x1F, 0xE2, 0x00, 0x03, 0x03, 0x08, 0x03, 0x00, 0x03, 0xB0, 0x00, 0x03, 0x03, 0x08, 0x03, 0x01,
- 0x1F, 0xE2, 0x00, 0x03, 0x03, 0x08, 0x03, 0x40, 0x03, 0xB0, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41,
- 0x1F, 0xE7, 0x00, 0x03, 0x03, 0x08, 0x03, 0x42, 0x03, 0xCB, 0x00, 0x02, 0x03, 0x08, 0x1F, 0x52,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x54, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x52,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x54, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x56,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x50, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x53, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0x55, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x53, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0x55, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x57, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x42, 0x1F, 0x51, 0x00, 0x02, 0x03, 0x14, 0x1F, 0x7A, 0x00, 0x02, 0x03, 0x40,
- 0x03, 0xCD, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xE6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x52, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x00, 0x1F, 0x54, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x52, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x40, 0x1F, 0x54, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x56, 0x00, 0x03,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0x50, 0x00, 0x02, 0x03, 0x43, 0x03, 0xB0, 0x00, 0x02, 0x03, 0x44,
- 0x00, 0x55, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xD2, 0x00, 0xDA,
- 0x00, 0xE4, 0x00, 0xEC, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x08, 0x01, 0x10, 0x01, 0x1A, 0x01, 0x22,
- 0x01, 0x2C, 0x01, 0x36, 0x01, 0x40, 0x01, 0x4A, 0x01, 0x54, 0x01, 0x5C, 0x01, 0x62, 0x01, 0x6C,
- 0x01, 0x74, 0x01, 0x7E, 0x01, 0x86, 0x01, 0x90, 0x01, 0x98, 0x01, 0xA2, 0x01, 0xAA, 0x01, 0xB4,
- 0x01, 0xBC, 0x01, 0xC6, 0x01, 0xD0, 0x01, 0xDA, 0x01, 0xE4, 0x01, 0xEE, 0x01, 0xF6, 0x01, 0xFC,
- 0x02, 0x04, 0x02, 0x0A, 0x02, 0x12, 0x02, 0x18, 0x02, 0x20, 0x02, 0x26, 0x02, 0x30, 0x02, 0x38,
- 0x02, 0x42, 0x02, 0x4A, 0x02, 0x54, 0x02, 0x5C, 0x02, 0x66, 0x02, 0x6E, 0x02, 0x78, 0x02, 0x80,
- 0x02, 0x8A, 0x02, 0x94, 0x02, 0x9E, 0x02, 0xA8, 0x02, 0xB2, 0x02, 0xBA, 0x02, 0xC0, 0x02, 0xC8,
- 0x02, 0xD0, 0x02, 0xDA, 0x02, 0xE4, 0x02, 0xEE, 0x02, 0xF8, 0x03, 0x02, 0x03, 0x0A, 0x03, 0x14,
- 0x03, 0x1E, 0x03, 0x28, 0x03, 0x32, 0x03, 0x3C, 0x03, 0x44, 0x03, 0x4C, 0x03, 0x54, 0x03, 0x5C,
- 0x03, 0x66, 0x03, 0x70, 0x03, 0x7A, 0x03, 0x84, 0x03, 0x8E, 0x03, 0x96, 0x1F, 0xF2, 0x00, 0x03,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x7C, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xF4, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x45, 0x03, 0xCE, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x13, 0x03, 0x00,
- 0x03, 0x45, 0x1F, 0x62, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x01, 0x03, 0x45, 0x1F, 0x64, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x62, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xA4,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x64, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41,
- 0x1F, 0xA6, 0x00, 0x04, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x66, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x42, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40,
- 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45, 0x1F, 0x60, 0x00, 0x02,
- 0x03, 0x13, 0x1F, 0xA3, 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x63, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x65,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0xA3, 0x00, 0x04, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45,
- 0x1F, 0x63, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x14, 0x03, 0x41,
- 0x03, 0x45, 0x1F, 0x65, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x42, 0x03, 0x45, 0x1F, 0x67, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA3, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01,
- 0x1F, 0xA3, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA1,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x45, 0x1F, 0x61, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xF2, 0x00, 0x03,
- 0x03, 0x40, 0x03, 0x45, 0x1F, 0x7C, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xF4, 0x00, 0x03, 0x03, 0x41,
- 0x03, 0x45, 0x03, 0xCE, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xF7, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45,
- 0x1F, 0xF6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45,
- 0x1F, 0x62, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x43, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x64, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x40, 0x03, 0x45, 0x1F, 0x62, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x64, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xA6,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x66, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42,
- 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xA4,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45, 0x1F, 0x60, 0x00, 0x02, 0x03, 0x43,
- 0x1F, 0xF2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xF4, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01,
- 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xA4,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13, 0x1F, 0xA3, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x1F, 0xA3,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0xA5, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA1, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x14, 0x1F, 0xF2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xF4, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x41, 0x1F, 0xF7, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA2, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01,
- 0x1F, 0xA2, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x1F, 0xA0,
- 0x00, 0x03, 0x03, 0x45, 0x03, 0x43, 0x1F, 0xF3, 0x00, 0x02, 0x03, 0x45, 0x00, 0x05, 0x00, 0x0C,
- 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xD2, 0x00, 0x02, 0x03, 0x00, 0x03, 0x90,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0xD2, 0x00, 0x02, 0x03, 0x40, 0x03, 0x90, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0xD7, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1F, 0xE2, 0x00, 0x02, 0x03, 0x00, 0x03, 0xB0, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xE2,
- 0x00, 0x02, 0x03, 0x40, 0x03, 0xB0, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xE7, 0x00, 0x02, 0x03, 0x42,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0xF4, 0x00, 0x02, 0x03, 0x45, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E,
- 0x00, 0x14, 0x03, 0xD3, 0x00, 0x02, 0x03, 0x01, 0x03, 0xD4, 0x00, 0x02, 0x03, 0x08, 0x03, 0xD3,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78,
- 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x02,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0x84, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x04, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x02, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0x84, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x04, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x86,
- 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x06, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x82, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x00, 0x1F, 0x84, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x42, 0x1F, 0x80, 0x00, 0x02, 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A,
- 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62,
- 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x83, 0x00, 0x03,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x03, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x85, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x05, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45,
- 0x1F, 0x03, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x85, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x05,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x87, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x07, 0x00, 0x02,
- 0x03, 0x42, 0x1F, 0x83, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x85, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0x83, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x85, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x41, 0x1F, 0x87, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x81, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0x82, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x83,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x84, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0x85, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x86, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x87, 0x00, 0x02, 0x03, 0x45, 0x00, 0x10, 0x00, 0x22,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A,
- 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x8A,
- 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x03,
- 0x03, 0x01, 0x03, 0x45, 0x1F, 0x0C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x0A, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45,
- 0x1F, 0x0C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x0E,
- 0x00, 0x02, 0x03, 0x42, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80,
- 0x00, 0x88, 0x00, 0x90, 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x0B, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x0D, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x0B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x8D,
- 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x0D, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x03,
- 0x03, 0x42, 0x03, 0x45, 0x1F, 0x0F, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0x89, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x8A, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x8B, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0x8C, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x8D, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0x8E, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x8F,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x1F, 0x12,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0x14, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x12, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0x14, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x1F, 0x13, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x15, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x13, 0x00, 0x02,
- 0x03, 0x40, 0x1F, 0x15, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16,
- 0x00, 0x1C, 0x1F, 0x1A, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x1C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x1A,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0x1C, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10,
- 0x00, 0x16, 0x00, 0x1C, 0x1F, 0x1B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x1D, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x1B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x1D, 0x00, 0x02, 0x03, 0x41, 0x00, 0x10, 0x00, 0x22,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A,
- 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x92,
- 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x22, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x03,
- 0x03, 0x01, 0x03, 0x45, 0x1F, 0x24, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x03, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x22, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45,
- 0x1F, 0x24, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x26,
- 0x00, 0x02, 0x03, 0x42, 0x1F, 0x92, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x41, 0x1F, 0x96, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80,
- 0x00, 0x88, 0x00, 0x90, 0x1F, 0x93, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x23, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0x95, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x25, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x93, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x23, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x95,
- 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x25, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x97, 0x00, 0x03,
- 0x03, 0x42, 0x03, 0x45, 0x1F, 0x27, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x93, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0x95, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x93, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0x95, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x97, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0x91, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x92, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x93, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0x94, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x95, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0x96, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x97,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78,
- 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x9A, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x2A,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x2A, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x2C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x9E,
- 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x2E, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x9A, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x00, 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x03,
- 0x03, 0x45, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x02, 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A,
- 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62,
- 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0x9B, 0x00, 0x03,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x2B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x2D, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45,
- 0x1F, 0x2B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x2D,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x9F, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x2F, 0x00, 0x02,
- 0x03, 0x42, 0x1F, 0x9B, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x41, 0x1F, 0x9F, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0x99, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0x9A, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x9B,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x9C, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0x9D, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x9E, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0x9F, 0x00, 0x02, 0x03, 0x45, 0x00, 0x05, 0x00, 0x0C,
- 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x32, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x34,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0x32, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x34, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0x36, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1F, 0x33, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x35, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x33,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0x35, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x37, 0x00, 0x02, 0x03, 0x42,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x3A, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0x3C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x3A, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x3C,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x3E, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x3B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x3D, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0x3B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x3D, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x3F,
- 0x00, 0x02, 0x03, 0x42, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x1F, 0x42,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0x44, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x42, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0x44, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x1F, 0x43, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x45, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x43, 0x00, 0x02,
- 0x03, 0x40, 0x1F, 0x45, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16,
- 0x00, 0x1C, 0x1F, 0x4A, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x4C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x4A,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0x4C, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10,
- 0x00, 0x16, 0x00, 0x1C, 0x1F, 0x4B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x4D, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x4B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x4D, 0x00, 0x02, 0x03, 0x41, 0x00, 0x05, 0x00, 0x0C,
- 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x52, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x54,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0x52, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x54, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0x56, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1F, 0x53, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x55, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x53,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0x55, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x57, 0x00, 0x02, 0x03, 0x42,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x5B, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0x5D, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x5B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x5D,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x5F, 0x00, 0x02, 0x03, 0x42, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A,
- 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62,
- 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0xA2, 0x00, 0x03,
- 0x03, 0x00, 0x03, 0x45, 0x1F, 0x62, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x45, 0x1F, 0x64, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45,
- 0x1F, 0x62, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x64,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x66, 0x00, 0x02,
- 0x03, 0x42, 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88,
- 0x00, 0x90, 0x1F, 0xA3, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x63, 0x00, 0x02, 0x03, 0x00,
- 0x1F, 0xA5, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x65, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xA3,
- 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x63, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xA5, 0x00, 0x03,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x65, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x03, 0x03, 0x42,
- 0x03, 0x45, 0x1F, 0x67, 0x00, 0x02, 0x03, 0x42, 0x1F, 0xA3, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00,
- 0x1F, 0xA5, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0xA3, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40,
- 0x1F, 0xA5, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0xA1, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xA2, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0xA3, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xA4,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xA5, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0xA6, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xA7, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80,
- 0x00, 0x88, 0x00, 0x90, 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xAC,
- 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x03,
- 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6E, 0x00, 0x02, 0x03, 0x42, 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x42, 0x1F, 0xA8, 0x00, 0x02, 0x03, 0x45, 0x00, 0x10, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x30,
- 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x68,
- 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x1F, 0xAB, 0x00, 0x03, 0x03, 0x00,
- 0x03, 0x45, 0x1F, 0x6B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x6D, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x03, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x6B,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6D, 0x00, 0x02,
- 0x03, 0x41, 0x1F, 0xAF, 0x00, 0x03, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6F, 0x00, 0x02, 0x03, 0x42,
- 0x1F, 0xAB, 0x00, 0x03, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x45, 0x03, 0x01,
- 0x1F, 0xAB, 0x00, 0x03, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x45, 0x03, 0x41,
- 0x1F, 0xAF, 0x00, 0x03, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0xAA, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xAB, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xAC, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0xAD, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xAE, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x04, 0x1F, 0xAF, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xB2,
- 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xB4, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0xC2, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xC4, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xF2, 0x00, 0x02, 0x03, 0x45, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0xF4, 0x00, 0x02, 0x03, 0x45, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1F, 0x82, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x84, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x82,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0x84, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x02, 0x03, 0x42,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x83, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0x85, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x85,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0x87, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x8A, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x8E,
- 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x1F, 0x8B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x02,
- 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05,
- 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x92, 0x00, 0x02, 0x03, 0x00,
- 0x1F, 0x94, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x92, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x02,
- 0x03, 0x41, 0x1F, 0x96, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18,
- 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x93, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x95, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x93, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x95, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x97, 0x00, 0x02,
- 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x9A,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0x9C, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x02, 0x03, 0x40,
- 0x1F, 0x9C, 0x00, 0x02, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C,
- 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0x9B, 0x00, 0x02, 0x03, 0x00, 0x1F, 0x9D,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x02, 0x03, 0x40, 0x1F, 0x9D, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0x9F, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1F, 0xA2, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xA2,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x02, 0x03, 0x42,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xA3, 0x00, 0x02,
- 0x03, 0x00, 0x1F, 0xA5, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xA3, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xA5,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0xA7, 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xAA, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xAE,
- 0x00, 0x02, 0x03, 0x42, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x1F, 0xAB, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x02,
- 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xAF, 0x00, 0x02, 0x03, 0x42, 0x00, 0x17,
- 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64,
- 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E,
- 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB2, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xCA, 0x00, 0xD2, 0x1F, 0xB2,
- 0x00, 0x02, 0x03, 0x00, 0x1F, 0xB4, 0x00, 0x02, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x00, 0x1F, 0x84, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x40, 0x1F, 0x84, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x42, 0x1F, 0x80, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x83, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00,
- 0x1F, 0x85, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x83, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40,
- 0x1F, 0x85, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x87, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42,
- 0x1F, 0x81, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xB2, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xB4, 0x00, 0x02,
- 0x03, 0x41, 0x1F, 0xB7, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00,
- 0x1F, 0x84, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x82, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0x84, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x86, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42,
- 0x1F, 0x80, 0x00, 0x02, 0x03, 0x43, 0x00, 0x01, 0x00, 0x04, 0x1F, 0xB7, 0x00, 0x02, 0x03, 0x45,
- 0x00, 0x12, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x54,
- 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92,
- 0x00, 0x9A, 0x00, 0xA2, 0x00, 0xAA, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x8C,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x8C,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x88,
- 0x00, 0x02, 0x03, 0x13, 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x8D, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x01, 0x1F, 0x8B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x8D, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x41, 0x1F, 0x8F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0x89, 0x00, 0x02,
- 0x03, 0x14, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x8C, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x01, 0x1F, 0x8A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x8C, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x41, 0x1F, 0x8E, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x88, 0x00, 0x02, 0x03, 0x43,
- 0x00, 0x20, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A,
- 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x88, 0x00, 0x90, 0x00, 0x98, 0x00, 0xA0, 0x00, 0xA8,
- 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBE, 0x00, 0xC6, 0x00, 0xCE, 0x00, 0xD6, 0x00, 0xDE, 0x00, 0xE4,
- 0x00, 0xEA, 0x00, 0xF0, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x06, 0x01, 0x0E, 0x01, 0x16, 0x01, 0x1E,
- 0x01, 0x24, 0x1F, 0x76, 0x00, 0x02, 0x03, 0x00, 0x03, 0xAF, 0x00, 0x02, 0x03, 0x01, 0x1F, 0xD1,
- 0x00, 0x02, 0x03, 0x04, 0x1F, 0xD0, 0x00, 0x02, 0x03, 0x06, 0x1F, 0xD2, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x00, 0x03, 0x90, 0x00, 0x03, 0x03, 0x08, 0x03, 0x01, 0x1F, 0xD2, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x40, 0x03, 0x90, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41, 0x1F, 0xD7, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x42, 0x03, 0xCA, 0x00, 0x02, 0x03, 0x08, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00,
- 0x1F, 0x34, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40,
- 0x1F, 0x34, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x36, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42,
- 0x1F, 0x30, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x33, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x35,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x33, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x35,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x37, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0x31,
- 0x00, 0x02, 0x03, 0x14, 0x1F, 0x76, 0x00, 0x02, 0x03, 0x40, 0x03, 0xAF, 0x00, 0x02, 0x03, 0x41,
- 0x1F, 0xD6, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x34,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x32, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x34,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x36, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x30,
- 0x00, 0x02, 0x03, 0x43, 0x03, 0x90, 0x00, 0x02, 0x03, 0x44, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xCD, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xCE, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0xCD, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xCE, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xCF,
- 0x00, 0x02, 0x03, 0x42, 0x00, 0x17, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x8A,
- 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB2, 0x00, 0xBA, 0x00, 0xC2,
- 0x00, 0xCA, 0x00, 0xD2, 0x1F, 0xC2, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xC4, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0x92, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01,
- 0x1F, 0x92, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41,
- 0x1F, 0x96, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x93,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0x95, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x93,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0x95, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x97,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0x91, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xC2, 0x00, 0x02,
- 0x03, 0x40, 0x1F, 0xC4, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xC7, 0x00, 0x02, 0x03, 0x42, 0x1F, 0x92,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0x94, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x92,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0x94, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x96,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0x90, 0x00, 0x02, 0x03, 0x43, 0x00, 0x01, 0x00, 0x04,
- 0x1F, 0xC7, 0x00, 0x02, 0x03, 0x45, 0x00, 0x12, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x3E,
- 0x00, 0x46, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7C,
- 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x9A, 0x00, 0xA2, 0x00, 0xAA, 0x1F, 0x9A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x00, 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x40, 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x03,
- 0x03, 0x13, 0x03, 0x42, 0x1F, 0x98, 0x00, 0x02, 0x03, 0x13, 0x1F, 0x9B, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x00, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0x9B, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x40, 0x1F, 0x9D, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0x9F, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x42, 0x1F, 0x99, 0x00, 0x02, 0x03, 0x14, 0x1F, 0x9A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00,
- 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0x9A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0x9C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0x9E, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42,
- 0x1F, 0x98, 0x00, 0x02, 0x03, 0x43, 0x00, 0x17, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x44,
- 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82,
- 0x00, 0x8A, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB2, 0x00, 0xBA,
- 0x00, 0xC2, 0x00, 0xCA, 0x00, 0xD2, 0x1F, 0xF2, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xF4, 0x00, 0x02,
- 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x01, 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x13,
- 0x03, 0x41, 0x1F, 0xA6, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x02, 0x03, 0x13,
- 0x1F, 0xA3, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00, 0x1F, 0xA5, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01,
- 0x1F, 0xA3, 0x00, 0x03, 0x03, 0x14, 0x03, 0x40, 0x1F, 0xA5, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41,
- 0x1F, 0xA7, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA1, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xF2,
- 0x00, 0x02, 0x03, 0x40, 0x1F, 0xF4, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xF7, 0x00, 0x02, 0x03, 0x42,
- 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01,
- 0x1F, 0xA2, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0xA4, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41,
- 0x1F, 0xA6, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0xA0, 0x00, 0x02, 0x03, 0x43, 0x00, 0x01,
- 0x00, 0x04, 0x1F, 0xF7, 0x00, 0x02, 0x03, 0x45, 0x00, 0x12, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x36,
- 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74,
- 0x00, 0x7C, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x9A, 0x00, 0xA2, 0x00, 0xAA, 0x1F, 0xAA,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0xAA,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xAE,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0xA8, 0x00, 0x02, 0x03, 0x13, 0x1F, 0xAB, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x14, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0xAF, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x03, 0x03, 0x43,
- 0x03, 0x42, 0x1F, 0xA8, 0x00, 0x02, 0x03, 0x43, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18,
- 0x00, 0x1E, 0x00, 0x24, 0x1F, 0xDD, 0x00, 0x02, 0x03, 0x00, 0x1F, 0xDE, 0x00, 0x02, 0x03, 0x01,
- 0x1F, 0xDD, 0x00, 0x02, 0x03, 0x40, 0x1F, 0xDE, 0x00, 0x02, 0x03, 0x41, 0x1F, 0xDF, 0x00, 0x02,
- 0x03, 0x42, 0x00, 0x4A, 0x00, 0x96, 0x00, 0x9C, 0x00, 0xA2, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBE,
- 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF4, 0x00, 0xFC, 0x01, 0x06,
- 0x01, 0x10, 0x01, 0x1A, 0x01, 0x24, 0x01, 0x2E, 0x01, 0x36, 0x01, 0x3C, 0x01, 0x46, 0x01, 0x4E,
- 0x01, 0x58, 0x01, 0x60, 0x01, 0x6A, 0x01, 0x72, 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8E, 0x01, 0x96,
- 0x01, 0xA0, 0x01, 0xAA, 0x01, 0xB4, 0x01, 0xBE, 0x01, 0xC8, 0x01, 0xD0, 0x01, 0xD6, 0x01, 0xDC,
- 0x01, 0xE2, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFE, 0x02, 0x06, 0x02, 0x10, 0x02, 0x18, 0x02, 0x22,
- 0x02, 0x2A, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x46, 0x02, 0x50, 0x02, 0x5A, 0x02, 0x64, 0x02, 0x6E,
- 0x02, 0x76, 0x02, 0x7C, 0x02, 0x86, 0x02, 0x90, 0x02, 0x9A, 0x02, 0xA4, 0x02, 0xAE, 0x02, 0xB6,
- 0x02, 0xC0, 0x02, 0xCA, 0x02, 0xD4, 0x02, 0xDE, 0x02, 0xE8, 0x02, 0xF0, 0x02, 0xFA, 0x03, 0x04,
- 0x03, 0x0E, 0x03, 0x18, 0x03, 0x22, 0x03, 0x2A, 0x1F, 0xFA, 0x00, 0x02, 0x03, 0x00, 0x03, 0x8F,
- 0x00, 0x02, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6A,
- 0x00, 0x03, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x03, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6E, 0x00, 0x03, 0x03, 0x13, 0x03, 0x42, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x13, 0x03, 0x45, 0x1F, 0x68, 0x00, 0x02, 0x03, 0x13, 0x1F, 0xAB,
- 0x00, 0x04, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6B, 0x00, 0x03, 0x03, 0x14, 0x03, 0x00,
- 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x1F, 0x6D, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x1F, 0x6B, 0x00, 0x03,
- 0x03, 0x14, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6D,
- 0x00, 0x03, 0x03, 0x14, 0x03, 0x41, 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45,
- 0x1F, 0x6F, 0x00, 0x03, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41,
- 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x03, 0x03, 0x14,
- 0x03, 0x45, 0x1F, 0x69, 0x00, 0x02, 0x03, 0x14, 0x1F, 0xFA, 0x00, 0x02, 0x03, 0x40, 0x03, 0x8F,
- 0x00, 0x02, 0x03, 0x41, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x1F, 0x6A,
- 0x00, 0x03, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45,
- 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x40,
- 0x03, 0x45, 0x1F, 0x6A, 0x00, 0x03, 0x03, 0x43, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43,
- 0x03, 0x41, 0x03, 0x45, 0x1F, 0x6C, 0x00, 0x03, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x1F, 0x6E, 0x00, 0x03, 0x03, 0x43, 0x03, 0x42, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x43, 0x03, 0x45, 0x1F, 0x68, 0x00, 0x02, 0x03, 0x43, 0x1F, 0xAA,
- 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42,
- 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x45, 0x03, 0x13, 0x1F, 0xAB, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x00, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x1F, 0xAB, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x1F, 0xAD, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41,
- 0x1F, 0xAF, 0x00, 0x04, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x1F, 0xA9, 0x00, 0x03, 0x03, 0x45,
- 0x03, 0x14, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x1F, 0xAC, 0x00, 0x04,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x1F, 0xAA, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40,
- 0x1F, 0xAC, 0x00, 0x04, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x1F, 0xAE, 0x00, 0x04, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x42, 0x1F, 0xA8, 0x00, 0x03, 0x03, 0x45, 0x03, 0x43, 0x1F, 0xFC, 0x00, 0x02,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x75, 0x00, 0xA8, 0x03, 0x91, 0x03, 0x95, 0x03, 0x97, 0x03, 0x99,
- 0x03, 0x9F, 0x03, 0xA1, 0x03, 0xA5, 0x03, 0xA9, 0x03, 0xAC, 0x03, 0xAE, 0x03, 0xB1, 0x03, 0xB5,
- 0x03, 0xB7, 0x03, 0xB9, 0x03, 0xBF, 0x03, 0xC1, 0x03, 0xC5, 0x03, 0xC9, 0x03, 0xCA, 0x03, 0xCB,
- 0x03, 0xCE, 0x03, 0xD2, 0x1F, 0x00, 0x1F, 0x01, 0x1F, 0x02, 0x1F, 0x03, 0x1F, 0x04, 0x1F, 0x05,
- 0x1F, 0x06, 0x1F, 0x07, 0x1F, 0x08, 0x1F, 0x09, 0x1F, 0x0A, 0x1F, 0x0B, 0x1F, 0x0C, 0x1F, 0x0D,
- 0x1F, 0x0E, 0x1F, 0x0F, 0x1F, 0x10, 0x1F, 0x11, 0x1F, 0x18, 0x1F, 0x19, 0x1F, 0x20, 0x1F, 0x21,
- 0x1F, 0x22, 0x1F, 0x23, 0x1F, 0x24, 0x1F, 0x25, 0x1F, 0x26, 0x1F, 0x27, 0x1F, 0x28, 0x1F, 0x29,
- 0x1F, 0x2A, 0x1F, 0x2B, 0x1F, 0x2C, 0x1F, 0x2D, 0x1F, 0x2E, 0x1F, 0x2F, 0x1F, 0x30, 0x1F, 0x31,
- 0x1F, 0x38, 0x1F, 0x39, 0x1F, 0x40, 0x1F, 0x41, 0x1F, 0x48, 0x1F, 0x49, 0x1F, 0x50, 0x1F, 0x51,
- 0x1F, 0x59, 0x1F, 0x60, 0x1F, 0x61, 0x1F, 0x62, 0x1F, 0x63, 0x1F, 0x64, 0x1F, 0x65, 0x1F, 0x66,
- 0x1F, 0x67, 0x1F, 0x68, 0x1F, 0x69, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C, 0x1F, 0x6D, 0x1F, 0x6E,
- 0x1F, 0x6F, 0x1F, 0x70, 0x1F, 0x71, 0x1F, 0x74, 0x1F, 0x75, 0x1F, 0x7C, 0x1F, 0x7D, 0x1F, 0x80,
- 0x1F, 0x81, 0x1F, 0x88, 0x1F, 0x89, 0x1F, 0x90, 0x1F, 0x91, 0x1F, 0x98, 0x1F, 0x99, 0x1F, 0xA0,
- 0x1F, 0xA1, 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xB3, 0x1F, 0xB6, 0x1F, 0xBC, 0x1F, 0xBE, 0x1F, 0xBF,
- 0x1F, 0xC3, 0x1F, 0xC6, 0x1F, 0xCC, 0x1F, 0xF3, 0x1F, 0xF6, 0x1F, 0xFC, 0x1F, 0xFE, 0x21, 0x26,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x4C, 0x0A, 0x10, 0x12, 0x6E, 0x18, 0x84, 0x1E, 0x68,
- 0x22, 0x7A, 0x26, 0x68, 0x29, 0x12, 0x2B, 0x5C, 0x2D, 0x24, 0x2F, 0x04, 0x30, 0xB4, 0x32, 0x62,
- 0x33, 0xCA, 0x35, 0x32, 0x36, 0x9A, 0x37, 0x76, 0x38, 0x52, 0x39, 0x2E, 0x39, 0xFC, 0x3A, 0xCA,
- 0x3B, 0x98, 0x3C, 0x4A, 0x3C, 0xFC, 0x3D, 0x22, 0x3D, 0x48, 0x3D, 0x6E, 0x3D, 0x94, 0x3D, 0xBA,
- 0x3D, 0xE0, 0x3E, 0x06, 0x3E, 0x2C, 0x3E, 0x52, 0x3E, 0x78, 0x3E, 0x9E, 0x00, 0x01, 0x07, 0xCE,
- 0x00, 0xF9, 0x01, 0xF8, 0x01, 0xFE, 0x02, 0x04, 0x02, 0x0A, 0x02, 0x10, 0x02, 0x16, 0x02, 0x1C,
- 0x02, 0x22, 0x02, 0x28, 0x02, 0x2E, 0x02, 0x34, 0x02, 0x3A, 0x02, 0x40, 0x02, 0x46, 0x02, 0x4C,
- 0x02, 0x52, 0x02, 0x58, 0x02, 0x5E, 0x02, 0x64, 0x02, 0x6A, 0x02, 0x70, 0x02, 0x76, 0x02, 0x7C,
- 0x02, 0x82, 0x02, 0x88, 0x02, 0x8E, 0x02, 0x94, 0x02, 0x9A, 0x02, 0xA0, 0x02, 0xA6, 0x02, 0xAC,
- 0x02, 0xB2, 0x02, 0xB8, 0x02, 0xBE, 0x02, 0xC4, 0x02, 0xCA, 0x02, 0xD0, 0x02, 0xD6, 0x02, 0xDC,
- 0x02, 0xE2, 0x02, 0xE8, 0x02, 0xEE, 0x02, 0xF4, 0x02, 0xFA, 0x03, 0x00, 0x03, 0x06, 0x03, 0x0C,
- 0x03, 0x12, 0x03, 0x18, 0x03, 0x1E, 0x03, 0x24, 0x03, 0x2A, 0x03, 0x30, 0x03, 0x36, 0x03, 0x3C,
- 0x03, 0x42, 0x03, 0x48, 0x03, 0x4E, 0x03, 0x54, 0x03, 0x5A, 0x03, 0x60, 0x03, 0x66, 0x03, 0x6C,
- 0x03, 0x72, 0x03, 0x78, 0x03, 0x7E, 0x03, 0x84, 0x03, 0x8A, 0x03, 0x90, 0x03, 0x96, 0x03, 0x9C,
- 0x03, 0xA2, 0x03, 0xA8, 0x03, 0xAE, 0x03, 0xB4, 0x03, 0xBA, 0x03, 0xC0, 0x03, 0xC6, 0x03, 0xCC,
- 0x03, 0xD2, 0x03, 0xD8, 0x03, 0xDE, 0x03, 0xE4, 0x03, 0xEA, 0x03, 0xF0, 0x03, 0xF6, 0x03, 0xFC,
- 0x04, 0x02, 0x04, 0x08, 0x04, 0x0E, 0x04, 0x14, 0x04, 0x1A, 0x04, 0x20, 0x04, 0x26, 0x04, 0x2C,
- 0x04, 0x32, 0x04, 0x38, 0x04, 0x3E, 0x04, 0x44, 0x04, 0x4A, 0x04, 0x50, 0x04, 0x56, 0x04, 0x5C,
- 0x04, 0x62, 0x04, 0x68, 0x04, 0x6E, 0x04, 0x74, 0x04, 0x7A, 0x04, 0x80, 0x04, 0x86, 0x04, 0x8C,
- 0x04, 0x92, 0x04, 0x98, 0x04, 0x9E, 0x04, 0xA4, 0x04, 0xAA, 0x04, 0xB0, 0x04, 0xB6, 0x04, 0xBC,
- 0x04, 0xC2, 0x04, 0xC8, 0x04, 0xCE, 0x04, 0xD4, 0x04, 0xDA, 0x04, 0xE0, 0x04, 0xE6, 0x04, 0xEC,
- 0x04, 0xF2, 0x04, 0xF8, 0x04, 0xFE, 0x05, 0x04, 0x05, 0x0A, 0x05, 0x10, 0x05, 0x16, 0x05, 0x1C,
- 0x05, 0x22, 0x05, 0x28, 0x05, 0x2E, 0x05, 0x34, 0x05, 0x3A, 0x05, 0x40, 0x05, 0x46, 0x05, 0x4C,
- 0x05, 0x52, 0x05, 0x58, 0x05, 0x5E, 0x05, 0x64, 0x05, 0x6A, 0x05, 0x70, 0x05, 0x76, 0x05, 0x7C,
- 0x05, 0x82, 0x05, 0x88, 0x05, 0x8E, 0x05, 0x94, 0x05, 0x9A, 0x05, 0xA0, 0x05, 0xA6, 0x05, 0xAC,
- 0x05, 0xB2, 0x05, 0xB8, 0x05, 0xBE, 0x05, 0xC4, 0x05, 0xCA, 0x05, 0xD0, 0x05, 0xD6, 0x05, 0xDC,
- 0x05, 0xE2, 0x05, 0xE8, 0x05, 0xEE, 0x05, 0xF4, 0x05, 0xFA, 0x06, 0x00, 0x06, 0x06, 0x06, 0x0C,
- 0x06, 0x12, 0x06, 0x18, 0x06, 0x1E, 0x06, 0x24, 0x06, 0x2A, 0x06, 0x30, 0x06, 0x36, 0x06, 0x3C,
- 0x06, 0x42, 0x06, 0x48, 0x06, 0x4E, 0x06, 0x54, 0x06, 0x5A, 0x06, 0x60, 0x06, 0x66, 0x06, 0x6C,
- 0x06, 0x72, 0x06, 0x78, 0x06, 0x7E, 0x06, 0x84, 0x06, 0x8A, 0x06, 0x90, 0x06, 0x96, 0x06, 0x9C,
- 0x06, 0xA2, 0x06, 0xA8, 0x06, 0xAE, 0x06, 0xB4, 0x06, 0xBA, 0x06, 0xC0, 0x06, 0xC6, 0x06, 0xCC,
- 0x06, 0xD2, 0x06, 0xD8, 0x06, 0xDE, 0x06, 0xE4, 0x06, 0xEA, 0x06, 0xF0, 0x06, 0xF6, 0x06, 0xFC,
- 0x07, 0x02, 0x07, 0x08, 0x07, 0x0E, 0x07, 0x14, 0x07, 0x1A, 0x07, 0x20, 0x07, 0x26, 0x07, 0x2C,
- 0x07, 0x32, 0x07, 0x38, 0x07, 0x3E, 0x07, 0x44, 0x07, 0x4A, 0x07, 0x50, 0x07, 0x56, 0x07, 0x5C,
- 0x07, 0x62, 0x07, 0x68, 0x07, 0x6E, 0x07, 0x74, 0x07, 0x7A, 0x07, 0x80, 0x07, 0x86, 0x07, 0x8C,
- 0x07, 0x92, 0x07, 0x98, 0x07, 0x9E, 0x07, 0xA4, 0x07, 0xAA, 0x07, 0xB0, 0x07, 0xB6, 0x07, 0xBC,
- 0x07, 0xC2, 0x07, 0xC8, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x01, 0x00, 0x02, 0x03, 0x91, 0x03, 0x01,
- 0x00, 0x02, 0x03, 0x95, 0x03, 0x01, 0x00, 0x02, 0x03, 0x97, 0x03, 0x01, 0x00, 0x02, 0x03, 0x99,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0x9F, 0x03, 0x01, 0x00, 0x02, 0x03, 0xA5, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xA9, 0x03, 0x01, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x44, 0x00, 0x02, 0x03, 0x99, 0x03, 0x08,
- 0x00, 0x02, 0x03, 0xA5, 0x03, 0x08, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x01, 0x00, 0x02, 0x03, 0xB5,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x01, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xC5, 0x03, 0x44, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x08, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x08,
- 0x00, 0x02, 0x03, 0xBF, 0x03, 0x01, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x01, 0x00, 0x02, 0x03, 0xC9,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0xD2, 0x03, 0x01, 0x00, 0x02, 0x03, 0xD2, 0x03, 0x08, 0x00, 0x02,
- 0x03, 0xB1, 0x03, 0x13, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x00, 0x03, 0x00,
- 0x00, 0x02, 0x1F, 0x01, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x00, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x01,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x00, 0x03, 0x42, 0x00, 0x02, 0x1F, 0x01, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0x91, 0x03, 0x13, 0x00, 0x02, 0x03, 0x91, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x08, 0x03, 0x00,
- 0x00, 0x02, 0x1F, 0x09, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x08, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x09,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x08, 0x03, 0x42, 0x00, 0x02, 0x1F, 0x09, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0xB5, 0x03, 0x13, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x10, 0x03, 0x00,
- 0x00, 0x02, 0x1F, 0x11, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x10, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x11,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0x95, 0x03, 0x13, 0x00, 0x02, 0x03, 0x95, 0x03, 0x14, 0x00, 0x02,
- 0x1F, 0x18, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x19, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x18, 0x03, 0x01,
- 0x00, 0x02, 0x1F, 0x19, 0x03, 0x01, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x13, 0x00, 0x02, 0x03, 0xB7,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x20, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x21, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x20, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x21, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x20, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x21, 0x03, 0x42, 0x00, 0x02, 0x03, 0x97, 0x03, 0x13, 0x00, 0x02, 0x03, 0x97,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x28, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x29, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x28, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x29, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x28, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x29, 0x03, 0x42, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x13, 0x00, 0x02, 0x03, 0xB9,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x30, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x31, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x30, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x31, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x30, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x31, 0x03, 0x42, 0x00, 0x02, 0x03, 0x99, 0x03, 0x13, 0x00, 0x02, 0x03, 0x99,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x38, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x39, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x38, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x39, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x38, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x39, 0x03, 0x42, 0x00, 0x02, 0x03, 0xBF, 0x03, 0x13, 0x00, 0x02, 0x03, 0xBF,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x40, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x41, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x40, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x41, 0x03, 0x01, 0x00, 0x02, 0x03, 0x9F, 0x03, 0x13,
- 0x00, 0x02, 0x03, 0x9F, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x48, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x49,
- 0x03, 0x00, 0x00, 0x02, 0x1F, 0x48, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x49, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xC5, 0x03, 0x13, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x50, 0x03, 0x00,
- 0x00, 0x02, 0x1F, 0x51, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x50, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x51,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x50, 0x03, 0x42, 0x00, 0x02, 0x1F, 0x51, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0xA5, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x59, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x59, 0x03, 0x01,
- 0x00, 0x02, 0x1F, 0x59, 0x03, 0x42, 0x00, 0x02, 0x03, 0xC9, 0x03, 0x13, 0x00, 0x02, 0x03, 0xC9,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x60, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x61, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x60, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x61, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x60, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x61, 0x03, 0x42, 0x00, 0x02, 0x03, 0xA9, 0x03, 0x13, 0x00, 0x02, 0x03, 0xA9,
- 0x03, 0x14, 0x00, 0x02, 0x1F, 0x68, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x69, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x68, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x69, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x68, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0x69, 0x03, 0x42, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x00, 0x00, 0x02, 0x03, 0xB1,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x00, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xB7, 0x03, 0x00, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x01, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x00,
- 0x00, 0x02, 0x03, 0xB9, 0x03, 0x01, 0x00, 0x02, 0x03, 0xBF, 0x03, 0x00, 0x00, 0x02, 0x03, 0xBF,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x00, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xC9, 0x03, 0x00, 0x00, 0x02, 0x03, 0xC9, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x00, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x01, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x02, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x03,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x04, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x05, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x06, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x07, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x08, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x09, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x0A, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x0B,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x0C, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x0D, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x0E, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x0F, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x20, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x21, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x22, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x23,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x24, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x25, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x26, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x27, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x28, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x29, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x2A, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x2B,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x2C, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x2D, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x2E, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x2F, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x60, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x61, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x62, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x63,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x64, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x65, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x66, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x67, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x68, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0x69, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x6A, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x6B,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x6C, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x6D, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x6E, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x6F, 0x03, 0x45, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x06,
- 0x00, 0x02, 0x03, 0xB1, 0x03, 0x04, 0x00, 0x02, 0x1F, 0x70, 0x03, 0x45, 0x00, 0x02, 0x03, 0xB1,
- 0x03, 0x45, 0x00, 0x02, 0x03, 0xAC, 0x03, 0x45, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0xB3, 0x03, 0x42, 0x00, 0x02, 0x03, 0x91, 0x03, 0x06, 0x00, 0x02, 0x03, 0x91, 0x03, 0x04,
- 0x00, 0x02, 0x03, 0x91, 0x03, 0x00, 0x00, 0x02, 0x03, 0x91, 0x03, 0x01, 0x00, 0x02, 0x03, 0x91,
- 0x03, 0x45, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x42, 0x00, 0x02, 0x1F, 0x74, 0x03, 0x45, 0x00, 0x02,
- 0x03, 0xB7, 0x03, 0x45, 0x00, 0x02, 0x03, 0xAE, 0x03, 0x45, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x42,
- 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x42, 0x00, 0x02, 0x03, 0x95, 0x03, 0x00, 0x00, 0x02, 0x03, 0x95,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0x97, 0x03, 0x00, 0x00, 0x02, 0x03, 0x97, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0x97, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xBF, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xBF, 0x03, 0x01,
- 0x00, 0x02, 0x1F, 0xBF, 0x03, 0x42, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x06, 0x00, 0x02, 0x03, 0xB9,
- 0x03, 0x04, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x00, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x44, 0x00, 0x02,
- 0x03, 0xB9, 0x03, 0x42, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x42, 0x00, 0x02, 0x03, 0x99, 0x03, 0x06,
- 0x00, 0x02, 0x03, 0x99, 0x03, 0x04, 0x00, 0x02, 0x03, 0x99, 0x03, 0x00, 0x00, 0x02, 0x03, 0x99,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0xFE, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xFE, 0x03, 0x01, 0x00, 0x02,
- 0x1F, 0xFE, 0x03, 0x42, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x06, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x04,
- 0x00, 0x02, 0x03, 0xCB, 0x03, 0x00, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x44, 0x00, 0x02, 0x03, 0xC1,
- 0x03, 0x13, 0x00, 0x02, 0x03, 0xC1, 0x03, 0x14, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0xCB, 0x03, 0x42, 0x00, 0x02, 0x03, 0xA5, 0x03, 0x06, 0x00, 0x02, 0x03, 0xA5, 0x03, 0x04,
- 0x00, 0x02, 0x03, 0xA5, 0x03, 0x00, 0x00, 0x02, 0x03, 0xA5, 0x03, 0x01, 0x00, 0x02, 0x03, 0xA1,
- 0x03, 0x14, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x00, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x01, 0x00, 0x02,
- 0x1F, 0x7C, 0x03, 0x45, 0x00, 0x02, 0x03, 0xC9, 0x03, 0x45, 0x00, 0x02, 0x03, 0xCE, 0x03, 0x45,
- 0x00, 0x02, 0x03, 0xC9, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x42, 0x00, 0x02, 0x03, 0x9F,
- 0x03, 0x00, 0x00, 0x02, 0x03, 0x9F, 0x03, 0x01, 0x00, 0x02, 0x03, 0xA9, 0x03, 0x00, 0x00, 0x02,
- 0x03, 0xA9, 0x03, 0x01, 0x00, 0x02, 0x03, 0xA9, 0x03, 0x45, 0x00, 0x01, 0x00, 0xF9, 0x03, 0x85,
- 0x03, 0x86, 0x03, 0x88, 0x03, 0x89, 0x03, 0x8A, 0x03, 0x8C, 0x03, 0x8E, 0x03, 0x8F, 0x03, 0x90,
- 0x03, 0xAA, 0x03, 0xAB, 0x03, 0xAC, 0x03, 0xAD, 0x03, 0xAE, 0x03, 0xAF, 0x03, 0xB0, 0x03, 0xCA,
- 0x03, 0xCB, 0x03, 0xCC, 0x03, 0xCD, 0x03, 0xCE, 0x03, 0xD3, 0x03, 0xD4, 0x1F, 0x00, 0x1F, 0x01,
- 0x1F, 0x02, 0x1F, 0x03, 0x1F, 0x04, 0x1F, 0x05, 0x1F, 0x06, 0x1F, 0x07, 0x1F, 0x08, 0x1F, 0x09,
- 0x1F, 0x0A, 0x1F, 0x0B, 0x1F, 0x0C, 0x1F, 0x0D, 0x1F, 0x0E, 0x1F, 0x0F, 0x1F, 0x10, 0x1F, 0x11,
- 0x1F, 0x12, 0x1F, 0x13, 0x1F, 0x14, 0x1F, 0x15, 0x1F, 0x18, 0x1F, 0x19, 0x1F, 0x1A, 0x1F, 0x1B,
- 0x1F, 0x1C, 0x1F, 0x1D, 0x1F, 0x20, 0x1F, 0x21, 0x1F, 0x22, 0x1F, 0x23, 0x1F, 0x24, 0x1F, 0x25,
- 0x1F, 0x26, 0x1F, 0x27, 0x1F, 0x28, 0x1F, 0x29, 0x1F, 0x2A, 0x1F, 0x2B, 0x1F, 0x2C, 0x1F, 0x2D,
- 0x1F, 0x2E, 0x1F, 0x2F, 0x1F, 0x30, 0x1F, 0x31, 0x1F, 0x32, 0x1F, 0x33, 0x1F, 0x34, 0x1F, 0x35,
- 0x1F, 0x36, 0x1F, 0x37, 0x1F, 0x38, 0x1F, 0x39, 0x1F, 0x3A, 0x1F, 0x3B, 0x1F, 0x3C, 0x1F, 0x3D,
- 0x1F, 0x3E, 0x1F, 0x3F, 0x1F, 0x40, 0x1F, 0x41, 0x1F, 0x42, 0x1F, 0x43, 0x1F, 0x44, 0x1F, 0x45,
- 0x1F, 0x48, 0x1F, 0x49, 0x1F, 0x4A, 0x1F, 0x4B, 0x1F, 0x4C, 0x1F, 0x4D, 0x1F, 0x50, 0x1F, 0x51,
- 0x1F, 0x52, 0x1F, 0x53, 0x1F, 0x54, 0x1F, 0x55, 0x1F, 0x56, 0x1F, 0x57, 0x1F, 0x59, 0x1F, 0x5B,
- 0x1F, 0x5D, 0x1F, 0x5F, 0x1F, 0x60, 0x1F, 0x61, 0x1F, 0x62, 0x1F, 0x63, 0x1F, 0x64, 0x1F, 0x65,
- 0x1F, 0x66, 0x1F, 0x67, 0x1F, 0x68, 0x1F, 0x69, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C, 0x1F, 0x6D,
- 0x1F, 0x6E, 0x1F, 0x6F, 0x1F, 0x70, 0x1F, 0x71, 0x1F, 0x72, 0x1F, 0x73, 0x1F, 0x74, 0x1F, 0x75,
- 0x1F, 0x76, 0x1F, 0x77, 0x1F, 0x78, 0x1F, 0x79, 0x1F, 0x7A, 0x1F, 0x7B, 0x1F, 0x7C, 0x1F, 0x7D,
- 0x1F, 0x80, 0x1F, 0x81, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87,
- 0x1F, 0x88, 0x1F, 0x89, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F,
- 0x1F, 0x90, 0x1F, 0x91, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97,
- 0x1F, 0x98, 0x1F, 0x99, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F,
- 0x1F, 0xA0, 0x1F, 0xA1, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7,
- 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x1F, 0xAF,
- 0x1F, 0xB0, 0x1F, 0xB1, 0x1F, 0xB2, 0x1F, 0xB3, 0x1F, 0xB4, 0x1F, 0xB6, 0x1F, 0xB7, 0x1F, 0xB8,
- 0x1F, 0xB9, 0x1F, 0xBA, 0x1F, 0xBB, 0x1F, 0xBC, 0x1F, 0xC1, 0x1F, 0xC2, 0x1F, 0xC3, 0x1F, 0xC4,
- 0x1F, 0xC6, 0x1F, 0xC7, 0x1F, 0xC8, 0x1F, 0xC9, 0x1F, 0xCA, 0x1F, 0xCB, 0x1F, 0xCC, 0x1F, 0xCD,
- 0x1F, 0xCE, 0x1F, 0xCF, 0x1F, 0xD0, 0x1F, 0xD1, 0x1F, 0xD2, 0x1F, 0xD3, 0x1F, 0xD6, 0x1F, 0xD7,
- 0x1F, 0xD8, 0x1F, 0xD9, 0x1F, 0xDA, 0x1F, 0xDB, 0x1F, 0xDD, 0x1F, 0xDE, 0x1F, 0xDF, 0x1F, 0xE0,
- 0x1F, 0xE1, 0x1F, 0xE2, 0x1F, 0xE3, 0x1F, 0xE4, 0x1F, 0xE5, 0x1F, 0xE6, 0x1F, 0xE7, 0x1F, 0xE8,
- 0x1F, 0xE9, 0x1F, 0xEA, 0x1F, 0xEB, 0x1F, 0xEC, 0x1F, 0xED, 0x1F, 0xEE, 0x1F, 0xF2, 0x1F, 0xF3,
- 0x1F, 0xF4, 0x1F, 0xF6, 0x1F, 0xF7, 0x1F, 0xF8, 0x1F, 0xF9, 0x1F, 0xFA, 0x1F, 0xFB, 0x1F, 0xFC,
- 0x00, 0x01, 0x06, 0xB8, 0x00, 0xD1, 0x01, 0xA8, 0x01, 0xAE, 0x01, 0xB4, 0x01, 0xBA, 0x01, 0xC0,
- 0x01, 0xC6, 0x01, 0xCC, 0x01, 0xD2, 0x01, 0xD8, 0x01, 0xDE, 0x01, 0xE4, 0x01, 0xEA, 0x01, 0xF0,
- 0x01, 0xF6, 0x01, 0xFC, 0x02, 0x02, 0x02, 0x08, 0x02, 0x0E, 0x02, 0x14, 0x02, 0x1A, 0x02, 0x20,
- 0x02, 0x26, 0x02, 0x2C, 0x02, 0x32, 0x02, 0x38, 0x02, 0x40, 0x02, 0x48, 0x02, 0x4E, 0x02, 0x54,
- 0x02, 0x5A, 0x02, 0x60, 0x02, 0x66, 0x02, 0x6E, 0x02, 0x76, 0x02, 0x7C, 0x02, 0x82, 0x02, 0x88,
- 0x02, 0x8E, 0x02, 0x94, 0x02, 0x9A, 0x02, 0xA0, 0x02, 0xA6, 0x02, 0xAC, 0x02, 0xB2, 0x02, 0xB8,
- 0x02, 0xBE, 0x02, 0xC4, 0x02, 0xCA, 0x02, 0xD0, 0x02, 0xD8, 0x02, 0xE0, 0x02, 0xE6, 0x02, 0xEC,
- 0x02, 0xF2, 0x02, 0xF8, 0x02, 0xFE, 0x03, 0x06, 0x03, 0x0E, 0x03, 0x14, 0x03, 0x1A, 0x03, 0x20,
- 0x03, 0x26, 0x03, 0x2C, 0x03, 0x32, 0x03, 0x3A, 0x03, 0x42, 0x03, 0x48, 0x03, 0x4E, 0x03, 0x54,
- 0x03, 0x5A, 0x03, 0x60, 0x03, 0x68, 0x03, 0x70, 0x03, 0x76, 0x03, 0x7C, 0x03, 0x82, 0x03, 0x88,
- 0x03, 0x8E, 0x03, 0x94, 0x03, 0x9A, 0x03, 0xA0, 0x03, 0xA6, 0x03, 0xAC, 0x03, 0xB2, 0x03, 0xB8,
- 0x03, 0xBE, 0x03, 0xC4, 0x03, 0xCA, 0x03, 0xD2, 0x03, 0xDA, 0x03, 0xE0, 0x03, 0xE6, 0x03, 0xEE,
- 0x03, 0xF4, 0x03, 0xFA, 0x04, 0x00, 0x04, 0x06, 0x04, 0x0C, 0x04, 0x14, 0x04, 0x1C, 0x04, 0x22,
- 0x04, 0x28, 0x04, 0x2E, 0x04, 0x34, 0x04, 0x3A, 0x04, 0x40, 0x04, 0x48, 0x04, 0x50, 0x04, 0x56,
- 0x04, 0x5C, 0x04, 0x62, 0x04, 0x68, 0x04, 0x6E, 0x04, 0x74, 0x04, 0x7A, 0x04, 0x80, 0x04, 0x86,
- 0x04, 0x8C, 0x04, 0x92, 0x04, 0x98, 0x04, 0x9E, 0x04, 0xA4, 0x04, 0xAA, 0x04, 0xB0, 0x04, 0xB6,
- 0x04, 0xBC, 0x04, 0xC2, 0x04, 0xC8, 0x04, 0xCE, 0x04, 0xD4, 0x04, 0xDA, 0x04, 0xE0, 0x04, 0xE6,
- 0x04, 0xEC, 0x04, 0xF2, 0x04, 0xF8, 0x04, 0xFE, 0x05, 0x04, 0x05, 0x0A, 0x05, 0x10, 0x05, 0x16,
- 0x05, 0x1C, 0x05, 0x22, 0x05, 0x28, 0x05, 0x2E, 0x05, 0x34, 0x05, 0x3A, 0x05, 0x40, 0x05, 0x46,
- 0x05, 0x4C, 0x05, 0x52, 0x05, 0x58, 0x05, 0x5E, 0x05, 0x64, 0x05, 0x6A, 0x05, 0x70, 0x05, 0x76,
- 0x05, 0x7C, 0x05, 0x82, 0x05, 0x88, 0x05, 0x8E, 0x05, 0x94, 0x05, 0x9A, 0x05, 0xA0, 0x05, 0xA6,
- 0x05, 0xAC, 0x05, 0xB2, 0x05, 0xB8, 0x05, 0xBE, 0x05, 0xC4, 0x05, 0xCA, 0x05, 0xD0, 0x05, 0xD6,
- 0x05, 0xDC, 0x05, 0xE2, 0x05, 0xE8, 0x05, 0xEE, 0x05, 0xF4, 0x05, 0xFA, 0x06, 0x00, 0x06, 0x06,
- 0x06, 0x0C, 0x06, 0x12, 0x06, 0x18, 0x06, 0x1E, 0x06, 0x24, 0x06, 0x2A, 0x06, 0x30, 0x06, 0x36,
- 0x06, 0x3E, 0x06, 0x44, 0x06, 0x4A, 0x06, 0x50, 0x06, 0x56, 0x06, 0x5C, 0x06, 0x62, 0x06, 0x68,
- 0x06, 0x70, 0x06, 0x76, 0x06, 0x7C, 0x06, 0x82, 0x06, 0x88, 0x06, 0x8E, 0x06, 0x94, 0x06, 0x9A,
- 0x06, 0xA0, 0x06, 0xA6, 0x06, 0xAC, 0x06, 0xB2, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x41, 0x00, 0x02,
- 0x03, 0x91, 0x03, 0x41, 0x00, 0x02, 0x03, 0x95, 0x03, 0x41, 0x00, 0x02, 0x03, 0x97, 0x03, 0x41,
- 0x00, 0x02, 0x03, 0x99, 0x03, 0x41, 0x00, 0x02, 0x03, 0x9F, 0x03, 0x41, 0x00, 0x02, 0x03, 0xA5,
- 0x03, 0x41, 0x00, 0x02, 0x03, 0xA9, 0x03, 0x41, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x01, 0x00, 0x02,
- 0x03, 0xB1, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x41,
- 0x00, 0x02, 0x03, 0xB9, 0x03, 0x41, 0x00, 0x02, 0x03, 0xCB, 0x03, 0x01, 0x00, 0x02, 0x1F, 0xBE,
- 0x03, 0x08, 0x00, 0x02, 0x03, 0xBF, 0x03, 0x41, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x41, 0x00, 0x02,
- 0x03, 0xC9, 0x03, 0x41, 0x00, 0x02, 0x03, 0xD2, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x43,
- 0x00, 0x02, 0x1F, 0x00, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x01, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x00,
- 0x03, 0x41, 0x00, 0x02, 0x1F, 0x01, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x42,
- 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02, 0x03, 0x91, 0x03, 0x43, 0x00, 0x02,
- 0x1F, 0x08, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x09, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x08, 0x03, 0x41,
- 0x00, 0x02, 0x1F, 0x09, 0x03, 0x41, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03,
- 0x03, 0x91, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x10,
- 0x03, 0x40, 0x00, 0x02, 0x1F, 0x11, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x10, 0x03, 0x41, 0x00, 0x02,
- 0x1F, 0x11, 0x03, 0x41, 0x00, 0x02, 0x03, 0x95, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x18, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0x19, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x18, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x19,
- 0x03, 0x41, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x20, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x21, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x20, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x21, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x02, 0x03, 0x97, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x28, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x29,
- 0x03, 0x40, 0x00, 0x02, 0x1F, 0x28, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x29, 0x03, 0x41, 0x00, 0x03,
- 0x03, 0x97, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0x97, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0xB9, 0x03, 0x43, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x30, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0x31, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x30, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x31,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x02, 0x03, 0x99, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x38, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x39, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x38, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x39, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0x99, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0x99, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x02, 0x03, 0xBF, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x40, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x41,
- 0x03, 0x40, 0x00, 0x02, 0x1F, 0x40, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x41, 0x03, 0x41, 0x00, 0x02,
- 0x03, 0x9F, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x48, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x49, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0x48, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x49, 0x03, 0x41, 0x00, 0x02, 0x03, 0xC5,
- 0x03, 0x43, 0x00, 0x02, 0x1F, 0x50, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x51, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x50, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x51, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x13,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02, 0x1F, 0x59, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0x59, 0x03, 0x41, 0x00, 0x03, 0x03, 0xA5, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0xC9, 0x03, 0x43, 0x00, 0x02, 0x1F, 0x60, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x61, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0x60, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x61, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9,
- 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x42, 0x00, 0x02, 0x03, 0xA9,
- 0x03, 0x43, 0x00, 0x02, 0x21, 0x26, 0x03, 0x14, 0x00, 0x02, 0x1F, 0x68, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x69, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x68, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x69, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x02, 0x03, 0xB1, 0x03, 0x40, 0x00, 0x02, 0x03, 0xB1, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB5,
- 0x03, 0x40, 0x00, 0x02, 0x03, 0xB5, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB7, 0x03, 0x40, 0x00, 0x02,
- 0x03, 0xB7, 0x03, 0x41, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x40, 0x00, 0x02, 0x03, 0xB9, 0x03, 0x41,
- 0x00, 0x02, 0x03, 0xBF, 0x03, 0x40, 0x00, 0x02, 0x03, 0xBF, 0x03, 0x41, 0x00, 0x02, 0x03, 0xC5,
- 0x03, 0x40, 0x00, 0x02, 0x03, 0xC5, 0x03, 0x41, 0x00, 0x02, 0x03, 0xC9, 0x03, 0x40, 0x00, 0x02,
- 0x03, 0xC9, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0x80, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x81, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x80,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x81, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x80, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0x81, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xBC, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xBC, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0x88, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x89, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x88,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x89, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x88, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0x89, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0x90, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x91, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x90,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x91, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x90, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0x91, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xCC, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xCC, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0x98, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x99, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x98,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0x99, 0x03, 0x01, 0x00, 0x02, 0x1F, 0x98, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0x99, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0xA0, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xA1, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xA0,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0xA1, 0x03, 0x01, 0x00, 0x02, 0x1F, 0xA0, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0xA1, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xFC, 0x03, 0x13, 0x00, 0x02, 0x1F, 0xFC, 0x03, 0x14,
- 0x00, 0x02, 0x1F, 0xA8, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xA9, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xA8,
- 0x03, 0x01, 0x00, 0x02, 0x1F, 0xA9, 0x03, 0x01, 0x00, 0x02, 0x1F, 0xA8, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0xA9, 0x03, 0x42, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x71, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0xB6, 0x03, 0x45, 0x00, 0x02, 0x03, 0x91, 0x03, 0x40, 0x00, 0x02, 0x03, 0x91,
- 0x03, 0x41, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x00, 0x00, 0x02, 0x1F, 0x75, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0xC6, 0x03, 0x45, 0x00, 0x02, 0x03, 0x95, 0x03, 0x40, 0x00, 0x02, 0x03, 0x95, 0x03, 0x41,
- 0x00, 0x02, 0x03, 0x97, 0x03, 0x40, 0x00, 0x02, 0x03, 0x97, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xBF,
- 0x03, 0x40, 0x00, 0x02, 0x1F, 0xBF, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x06, 0x00, 0x02,
- 0x1F, 0xBE, 0x03, 0x04, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x40, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x01,
- 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08, 0x03, 0x42, 0x00, 0x02,
- 0x03, 0x99, 0x03, 0x40, 0x00, 0x02, 0x03, 0x99, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xFE, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0xFE, 0x03, 0x41, 0x00, 0x02, 0x03, 0xCB, 0x03, 0x40, 0x00, 0x02, 0x03, 0xCB,
- 0x03, 0x01, 0x00, 0x02, 0x03, 0xC1, 0x03, 0x43, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08, 0x03, 0x42,
- 0x00, 0x02, 0x03, 0xA5, 0x03, 0x40, 0x00, 0x02, 0x03, 0xA5, 0x03, 0x41, 0x00, 0x02, 0x00, 0xA8,
- 0x03, 0x40, 0x00, 0x02, 0x00, 0xA8, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x00, 0x00, 0x02,
- 0x1F, 0x7D, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xF6, 0x03, 0x45, 0x00, 0x02, 0x03, 0x9F, 0x03, 0x40,
- 0x00, 0x02, 0x03, 0x9F, 0x03, 0x41, 0x00, 0x02, 0x03, 0xA9, 0x03, 0x40, 0x00, 0x02, 0x03, 0xA9,
- 0x03, 0x41, 0x00, 0x02, 0x21, 0x26, 0x03, 0x45, 0x00, 0x01, 0x00, 0xD1, 0x03, 0x85, 0x03, 0x86,
- 0x03, 0x88, 0x03, 0x89, 0x03, 0x8A, 0x03, 0x8C, 0x03, 0x8E, 0x03, 0x8F, 0x03, 0x90, 0x03, 0xAC,
- 0x03, 0xAD, 0x03, 0xAE, 0x03, 0xAF, 0x03, 0xB0, 0x03, 0xCA, 0x03, 0xCC, 0x03, 0xCD, 0x03, 0xCE,
- 0x03, 0xD3, 0x1F, 0x00, 0x1F, 0x02, 0x1F, 0x03, 0x1F, 0x04, 0x1F, 0x05, 0x1F, 0x06, 0x1F, 0x07,
- 0x1F, 0x08, 0x1F, 0x0A, 0x1F, 0x0B, 0x1F, 0x0C, 0x1F, 0x0D, 0x1F, 0x0E, 0x1F, 0x0F, 0x1F, 0x10,
- 0x1F, 0x12, 0x1F, 0x13, 0x1F, 0x14, 0x1F, 0x15, 0x1F, 0x18, 0x1F, 0x1A, 0x1F, 0x1B, 0x1F, 0x1C,
- 0x1F, 0x1D, 0x1F, 0x20, 0x1F, 0x22, 0x1F, 0x23, 0x1F, 0x24, 0x1F, 0x25, 0x1F, 0x26, 0x1F, 0x27,
- 0x1F, 0x28, 0x1F, 0x2A, 0x1F, 0x2B, 0x1F, 0x2C, 0x1F, 0x2D, 0x1F, 0x2E, 0x1F, 0x2F, 0x1F, 0x30,
- 0x1F, 0x31, 0x1F, 0x32, 0x1F, 0x33, 0x1F, 0x34, 0x1F, 0x35, 0x1F, 0x36, 0x1F, 0x37, 0x1F, 0x38,
- 0x1F, 0x3A, 0x1F, 0x3B, 0x1F, 0x3C, 0x1F, 0x3D, 0x1F, 0x3E, 0x1F, 0x3F, 0x1F, 0x40, 0x1F, 0x42,
- 0x1F, 0x43, 0x1F, 0x44, 0x1F, 0x45, 0x1F, 0x48, 0x1F, 0x4A, 0x1F, 0x4B, 0x1F, 0x4C, 0x1F, 0x4D,
- 0x1F, 0x50, 0x1F, 0x52, 0x1F, 0x53, 0x1F, 0x54, 0x1F, 0x55, 0x1F, 0x56, 0x1F, 0x57, 0x1F, 0x5B,
- 0x1F, 0x5D, 0x1F, 0x5F, 0x1F, 0x60, 0x1F, 0x62, 0x1F, 0x63, 0x1F, 0x64, 0x1F, 0x65, 0x1F, 0x66,
- 0x1F, 0x67, 0x1F, 0x68, 0x1F, 0x69, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C, 0x1F, 0x6D, 0x1F, 0x6E,
- 0x1F, 0x6F, 0x1F, 0x70, 0x1F, 0x71, 0x1F, 0x72, 0x1F, 0x73, 0x1F, 0x74, 0x1F, 0x75, 0x1F, 0x76,
- 0x1F, 0x77, 0x1F, 0x78, 0x1F, 0x79, 0x1F, 0x7A, 0x1F, 0x7B, 0x1F, 0x7C, 0x1F, 0x7D, 0x1F, 0x80,
- 0x1F, 0x81, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87, 0x1F, 0x88,
- 0x1F, 0x89, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90,
- 0x1F, 0x91, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98,
- 0x1F, 0x99, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0,
- 0x1F, 0xA1, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8,
- 0x1F, 0xA9, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2,
- 0x1F, 0xB4, 0x1F, 0xB7, 0x1F, 0xBA, 0x1F, 0xBB, 0x1F, 0xC2, 0x1F, 0xC4, 0x1F, 0xC7, 0x1F, 0xC8,
- 0x1F, 0xC9, 0x1F, 0xCA, 0x1F, 0xCB, 0x1F, 0xCD, 0x1F, 0xCE, 0x1F, 0xD0, 0x1F, 0xD1, 0x1F, 0xD2,
- 0x1F, 0xD3, 0x1F, 0xD6, 0x1F, 0xD7, 0x1F, 0xDA, 0x1F, 0xDB, 0x1F, 0xDD, 0x1F, 0xDE, 0x1F, 0xE2,
- 0x1F, 0xE3, 0x1F, 0xE4, 0x1F, 0xE7, 0x1F, 0xEA, 0x1F, 0xEB, 0x1F, 0xED, 0x1F, 0xEE, 0x1F, 0xF2,
- 0x1F, 0xF4, 0x1F, 0xF7, 0x1F, 0xF8, 0x1F, 0xF9, 0x1F, 0xFA, 0x1F, 0xFB, 0x1F, 0xFC, 0x00, 0x01,
- 0x05, 0x00, 0x00, 0x89, 0x01, 0x18, 0x01, 0x1E, 0x01, 0x24, 0x01, 0x2A, 0x01, 0x30, 0x01, 0x38,
- 0x01, 0x40, 0x01, 0x48, 0x01, 0x50, 0x01, 0x58, 0x01, 0x60, 0x01, 0x68, 0x01, 0x70, 0x01, 0x78,
- 0x01, 0x80, 0x01, 0x88, 0x01, 0x90, 0x01, 0x98, 0x01, 0xA0, 0x01, 0xA8, 0x01, 0xB0, 0x01, 0xB8,
- 0x01, 0xC0, 0x01, 0xC8, 0x01, 0xD0, 0x01, 0xD8, 0x01, 0xE0, 0x01, 0xE8, 0x01, 0xF0, 0x01, 0xF8,
- 0x02, 0x00, 0x02, 0x08, 0x02, 0x10, 0x02, 0x16, 0x02, 0x1E, 0x02, 0x26, 0x02, 0x2E, 0x02, 0x36,
- 0x02, 0x3E, 0x02, 0x46, 0x02, 0x4E, 0x02, 0x56, 0x02, 0x5E, 0x02, 0x66, 0x02, 0x6E, 0x02, 0x76,
- 0x02, 0x7E, 0x02, 0x86, 0x02, 0x8E, 0x02, 0x96, 0x02, 0x9E, 0x02, 0xA6, 0x02, 0xAE, 0x02, 0xB6,
- 0x02, 0xBE, 0x02, 0xC6, 0x02, 0xCE, 0x02, 0xD6, 0x02, 0xDE, 0x02, 0xE6, 0x02, 0xEE, 0x02, 0xF6,
- 0x02, 0xFE, 0x03, 0x06, 0x03, 0x0E, 0x03, 0x14, 0x03, 0x1C, 0x03, 0x24, 0x03, 0x2C, 0x03, 0x34,
- 0x03, 0x3C, 0x03, 0x44, 0x03, 0x4A, 0x03, 0x50, 0x03, 0x56, 0x03, 0x5E, 0x03, 0x64, 0x03, 0x6A,
- 0x03, 0x70, 0x03, 0x76, 0x03, 0x7E, 0x03, 0x86, 0x03, 0x8C, 0x03, 0x94, 0x03, 0x9A, 0x03, 0xA0,
- 0x03, 0xA6, 0x03, 0xAC, 0x03, 0xB4, 0x03, 0xBC, 0x03, 0xC2, 0x03, 0xCA, 0x03, 0xD0, 0x03, 0xD6,
- 0x03, 0xDC, 0x03, 0xE2, 0x03, 0xEA, 0x03, 0xF2, 0x03, 0xF8, 0x04, 0x00, 0x04, 0x06, 0x04, 0x0C,
- 0x04, 0x12, 0x04, 0x18, 0x04, 0x20, 0x04, 0x28, 0x04, 0x2E, 0x04, 0x36, 0x04, 0x3C, 0x04, 0x42,
- 0x04, 0x48, 0x04, 0x4E, 0x04, 0x56, 0x04, 0x5E, 0x04, 0x64, 0x04, 0x6C, 0x04, 0x72, 0x04, 0x78,
- 0x04, 0x7E, 0x04, 0x84, 0x04, 0x8C, 0x04, 0x94, 0x04, 0x9A, 0x04, 0xA0, 0x04, 0xA8, 0x04, 0xAE,
- 0x04, 0xB4, 0x04, 0xBC, 0x04, 0xC4, 0x04, 0xCA, 0x04, 0xD2, 0x04, 0xDA, 0x04, 0xE0, 0x04, 0xE6,
- 0x04, 0xEC, 0x04, 0xF4, 0x04, 0xFA, 0x00, 0x02, 0x21, 0x26, 0x03, 0x01, 0x00, 0x02, 0x03, 0xCA,
- 0x03, 0x41, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x01, 0x00, 0x02, 0x03, 0xCB, 0x03, 0x41, 0x00, 0x03,
- 0x03, 0xB1, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0xB1, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0xB1, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0x91, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0x91, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0x91, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03,
- 0x03, 0xB5, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0xB5, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0x95, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0x95, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0x95, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0x95, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0xB7, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0xB7, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0xB7, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x03, 0x97, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03,
- 0x03, 0x97, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0x97, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0x97, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0x97, 0x03, 0x43, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0xBE, 0x03, 0x13, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB9,
- 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB9,
- 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xBE,
- 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x03, 0x99, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0x99,
- 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0x99, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0x99,
- 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0x99, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x03, 0xBF,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xBF,
- 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0x9F,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0x9F,
- 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC5,
- 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5,
- 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x03, 0xA5, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xA5,
- 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC9,
- 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9,
- 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x42, 0x00, 0x02, 0x21, 0x26,
- 0x03, 0x13, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x14,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x14,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x00, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x01, 0x00, 0x02,
- 0x1F, 0xB3, 0x03, 0x43, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x80,
- 0x03, 0x40, 0x00, 0x02, 0x1F, 0x81, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x80, 0x03, 0x41, 0x00, 0x02,
- 0x1F, 0x81, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x01,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xBC, 0x03, 0x43, 0x00, 0x03, 0x03, 0x91, 0x03, 0x14,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0x88, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x89, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x88, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x89, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x42,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x42, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x43,
- 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x45, 0x00, 0x02, 0x1F, 0x90, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0x91, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x90, 0x03, 0x41, 0x00, 0x02, 0x1F, 0x91, 0x03, 0x41,
- 0x00, 0x03, 0x1F, 0x20, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x42, 0x03, 0x45,
- 0x00, 0x02, 0x1F, 0xCC, 0x03, 0x43, 0x00, 0x03, 0x03, 0x97, 0x03, 0x14, 0x03, 0x45, 0x00, 0x02,
- 0x1F, 0x98, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x99, 0x03, 0x40, 0x00, 0x02, 0x1F, 0x98, 0x03, 0x41,
- 0x00, 0x02, 0x1F, 0x99, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03,
- 0x1F, 0x29, 0x03, 0x42, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x43, 0x00, 0x03, 0x03, 0xC9,
- 0x03, 0x14, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xA0, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xA1, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0xA0, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xA1, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x60,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x42, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xFC,
- 0x03, 0x43, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xA8, 0x03, 0x40,
- 0x00, 0x02, 0x1F, 0xA9, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xA8, 0x03, 0x41, 0x00, 0x02, 0x1F, 0xA9,
- 0x03, 0x41, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x42,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x01, 0x00, 0x03,
- 0x03, 0xB1, 0x03, 0x42, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xC3,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08,
- 0x03, 0x00, 0x00, 0x02, 0x03, 0xCA, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08, 0x03, 0x42,
- 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08, 0x03, 0x00, 0x00, 0x02, 0x03, 0xCB, 0x03, 0x41, 0x00, 0x02,
- 0x1F, 0xF3, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xF3, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x42,
- 0x03, 0x45, 0x00, 0x02, 0x21, 0x26, 0x03, 0x00, 0x00, 0x02, 0x21, 0x26, 0x03, 0x01, 0x00, 0x01,
- 0x00, 0x89, 0x03, 0x8F, 0x03, 0x90, 0x03, 0xAF, 0x03, 0xB0, 0x1F, 0x02, 0x1F, 0x03, 0x1F, 0x04,
- 0x1F, 0x05, 0x1F, 0x06, 0x1F, 0x0A, 0x1F, 0x0B, 0x1F, 0x0C, 0x1F, 0x0D, 0x1F, 0x0E, 0x1F, 0x12,
- 0x1F, 0x13, 0x1F, 0x14, 0x1F, 0x15, 0x1F, 0x1A, 0x1F, 0x1B, 0x1F, 0x1C, 0x1F, 0x1D, 0x1F, 0x22,
- 0x1F, 0x23, 0x1F, 0x24, 0x1F, 0x25, 0x1F, 0x26, 0x1F, 0x2A, 0x1F, 0x2B, 0x1F, 0x2C, 0x1F, 0x2D,
- 0x1F, 0x2E, 0x1F, 0x30, 0x1F, 0x32, 0x1F, 0x33, 0x1F, 0x34, 0x1F, 0x35, 0x1F, 0x36, 0x1F, 0x37,
- 0x1F, 0x3A, 0x1F, 0x3B, 0x1F, 0x3C, 0x1F, 0x3D, 0x1F, 0x3E, 0x1F, 0x42, 0x1F, 0x43, 0x1F, 0x44,
- 0x1F, 0x45, 0x1F, 0x4A, 0x1F, 0x4B, 0x1F, 0x4C, 0x1F, 0x4D, 0x1F, 0x52, 0x1F, 0x53, 0x1F, 0x54,
- 0x1F, 0x55, 0x1F, 0x56, 0x1F, 0x5B, 0x1F, 0x5D, 0x1F, 0x62, 0x1F, 0x63, 0x1F, 0x64, 0x1F, 0x65,
- 0x1F, 0x66, 0x1F, 0x68, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C, 0x1F, 0x6D, 0x1F, 0x6E, 0x1F, 0x6F,
- 0x1F, 0x76, 0x1F, 0x77, 0x1F, 0x80, 0x1F, 0x81, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85,
- 0x1F, 0x86, 0x1F, 0x87, 0x1F, 0x88, 0x1F, 0x89, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D,
- 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90, 0x1F, 0x91, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98, 0x1F, 0x99, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D,
- 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0, 0x1F, 0xA1, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5,
- 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2, 0x1F, 0xB4, 0x1F, 0xB7, 0x1F, 0xC2, 0x1F, 0xC4, 0x1F, 0xC7,
- 0x1F, 0xD2, 0x1F, 0xD3, 0x1F, 0xD7, 0x1F, 0xE2, 0x1F, 0xE3, 0x1F, 0xF2, 0x1F, 0xF4, 0x1F, 0xF7,
- 0x1F, 0xFA, 0x1F, 0xFB, 0x00, 0x01, 0x04, 0xE2, 0x00, 0x7F, 0x01, 0x04, 0x01, 0x0A, 0x01, 0x10,
- 0x01, 0x16, 0x01, 0x1E, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x36, 0x01, 0x3E, 0x01, 0x46, 0x01, 0x4E,
- 0x01, 0x56, 0x01, 0x5E, 0x01, 0x66, 0x01, 0x6E, 0x01, 0x76, 0x01, 0x7E, 0x01, 0x86, 0x01, 0x8E,
- 0x01, 0x96, 0x01, 0x9E, 0x01, 0xA6, 0x01, 0xAE, 0x01, 0xB6, 0x01, 0xBE, 0x01, 0xC6, 0x01, 0xCE,
- 0x01, 0xD6, 0x01, 0xDE, 0x01, 0xE4, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFC, 0x02, 0x04, 0x02, 0x0C,
- 0x02, 0x14, 0x02, 0x1C, 0x02, 0x24, 0x02, 0x2C, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x44, 0x02, 0x4C,
- 0x02, 0x54, 0x02, 0x5C, 0x02, 0x64, 0x02, 0x6C, 0x02, 0x74, 0x02, 0x7C, 0x02, 0x84, 0x02, 0x8C,
- 0x02, 0x94, 0x02, 0x9C, 0x02, 0xA4, 0x02, 0xAC, 0x02, 0xB4, 0x02, 0xBC, 0x02, 0xC2, 0x02, 0xCA,
- 0x02, 0xD2, 0x02, 0xDA, 0x02, 0xE2, 0x02, 0xEA, 0x02, 0xF0, 0x02, 0xF6, 0x02, 0xFE, 0x03, 0x06,
- 0x03, 0x0E, 0x03, 0x16, 0x03, 0x1E, 0x03, 0x26, 0x03, 0x2E, 0x03, 0x36, 0x03, 0x3E, 0x03, 0x46,
- 0x03, 0x4E, 0x03, 0x56, 0x03, 0x5E, 0x03, 0x66, 0x03, 0x6E, 0x03, 0x76, 0x03, 0x7E, 0x03, 0x86,
- 0x03, 0x8E, 0x03, 0x96, 0x03, 0x9E, 0x03, 0xA6, 0x03, 0xAE, 0x03, 0xB6, 0x03, 0xBE, 0x03, 0xC6,
- 0x03, 0xCE, 0x03, 0xD6, 0x03, 0xDE, 0x03, 0xE6, 0x03, 0xEE, 0x03, 0xF6, 0x03, 0xFE, 0x04, 0x06,
- 0x04, 0x0E, 0x04, 0x16, 0x04, 0x1E, 0x04, 0x26, 0x04, 0x2E, 0x04, 0x36, 0x04, 0x3E, 0x04, 0x46,
- 0x04, 0x4E, 0x04, 0x56, 0x04, 0x5E, 0x04, 0x66, 0x04, 0x6E, 0x04, 0x76, 0x04, 0x7E, 0x04, 0x84,
- 0x04, 0x8C, 0x04, 0x94, 0x04, 0x9A, 0x04, 0xA2, 0x04, 0xAA, 0x04, 0xB0, 0x04, 0xB8, 0x04, 0xC0,
- 0x04, 0xC8, 0x04, 0xCE, 0x04, 0xD6, 0x04, 0xDC, 0x00, 0x02, 0x21, 0x26, 0x03, 0x41, 0x00, 0x02,
- 0x1F, 0xBE, 0x03, 0x44, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0x91, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0x91, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0x95, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0x95, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0x95, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0x95, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0x97, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0x97, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0x97, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0x97, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x43, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x13, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0xB9, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x13, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xB9, 0x03, 0x14, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x13, 0x03, 0x42,
- 0x00, 0x03, 0x03, 0x99, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0x99, 0x03, 0x14, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0x99, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0x99, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xBF, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x14, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0xBF, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0x9F, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x14, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0x9F, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xC5, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x14, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0xC5, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xA5, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x03, 0xA5, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x40,
- 0x00, 0x03, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x41,
- 0x00, 0x02, 0x21, 0x26, 0x03, 0x43, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03,
- 0x03, 0xA9, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03,
- 0x03, 0xA9, 0x03, 0x14, 0x03, 0x41, 0x00, 0x03, 0x21, 0x26, 0x03, 0x13, 0x03, 0x42, 0x00, 0x02,
- 0x1F, 0xBE, 0x03, 0x40, 0x00, 0x02, 0x1F, 0xBE, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0x91, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0x91, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0x97, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0x97, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x13,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x01, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x02, 0x1F, 0xB3, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x42,
- 0x00, 0x03, 0x03, 0xB7, 0x03, 0x00, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xC3, 0x03, 0x41, 0x00, 0x03,
- 0x03, 0xB7, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08, 0x03, 0x40, 0x00, 0x02,
- 0x1F, 0xBE, 0x03, 0x44, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC5,
- 0x03, 0x08, 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x00, 0x03, 0x45, 0x00, 0x02, 0x1F, 0xF3,
- 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x42, 0x00, 0x02, 0x21, 0x26, 0x03, 0x40,
- 0x00, 0x02, 0x21, 0x26, 0x03, 0x41, 0x00, 0x01, 0x00, 0x7F, 0x03, 0x8F, 0x03, 0x90, 0x03, 0xAF,
- 0x03, 0xB0, 0x1F, 0x02, 0x1F, 0x03, 0x1F, 0x04, 0x1F, 0x05, 0x1F, 0x0A, 0x1F, 0x0B, 0x1F, 0x0C,
- 0x1F, 0x0D, 0x1F, 0x12, 0x1F, 0x13, 0x1F, 0x14, 0x1F, 0x15, 0x1F, 0x1A, 0x1F, 0x1B, 0x1F, 0x1C,
- 0x1F, 0x1D, 0x1F, 0x22, 0x1F, 0x23, 0x1F, 0x24, 0x1F, 0x25, 0x1F, 0x2A, 0x1F, 0x2B, 0x1F, 0x2C,
- 0x1F, 0x2D, 0x1F, 0x30, 0x1F, 0x32, 0x1F, 0x33, 0x1F, 0x34, 0x1F, 0x35, 0x1F, 0x36, 0x1F, 0x3A,
- 0x1F, 0x3B, 0x1F, 0x3C, 0x1F, 0x3D, 0x1F, 0x42, 0x1F, 0x43, 0x1F, 0x44, 0x1F, 0x45, 0x1F, 0x4A,
- 0x1F, 0x4B, 0x1F, 0x4C, 0x1F, 0x4D, 0x1F, 0x52, 0x1F, 0x53, 0x1F, 0x54, 0x1F, 0x55, 0x1F, 0x5B,
- 0x1F, 0x5D, 0x1F, 0x62, 0x1F, 0x63, 0x1F, 0x64, 0x1F, 0x65, 0x1F, 0x68, 0x1F, 0x6A, 0x1F, 0x6B,
- 0x1F, 0x6C, 0x1F, 0x6D, 0x1F, 0x6E, 0x1F, 0x76, 0x1F, 0x77, 0x1F, 0x80, 0x1F, 0x81, 0x1F, 0x82,
- 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87, 0x1F, 0x88, 0x1F, 0x89, 0x1F, 0x8A,
- 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90, 0x1F, 0x91, 0x1F, 0x92,
- 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98, 0x1F, 0x99, 0x1F, 0x9A,
- 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0, 0x1F, 0xA1, 0x1F, 0xA2,
- 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xAA,
- 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2, 0x1F, 0xB4, 0x1F, 0xB7,
- 0x1F, 0xC2, 0x1F, 0xC4, 0x1F, 0xC7, 0x1F, 0xD2, 0x1F, 0xD3, 0x1F, 0xE2, 0x1F, 0xE3, 0x1F, 0xF2,
- 0x1F, 0xF4, 0x1F, 0xF7, 0x1F, 0xFA, 0x1F, 0xFB, 0x00, 0x01, 0x03, 0x62, 0x00, 0x56, 0x00, 0xB2,
- 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xCA, 0x00, 0xD2, 0x00, 0xDA, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF2,
- 0x00, 0xFA, 0x01, 0x02, 0x01, 0x0A, 0x01, 0x12, 0x01, 0x1A, 0x01, 0x22, 0x01, 0x2A, 0x01, 0x32,
- 0x01, 0x3A, 0x01, 0x42, 0x01, 0x4A, 0x01, 0x52, 0x01, 0x5A, 0x01, 0x62, 0x01, 0x6A, 0x01, 0x72,
- 0x01, 0x7A, 0x01, 0x82, 0x01, 0x8A, 0x01, 0x92, 0x01, 0x9A, 0x01, 0xA2, 0x01, 0xAA, 0x01, 0xB2,
- 0x01, 0xBA, 0x01, 0xC2, 0x01, 0xCA, 0x01, 0xD2, 0x01, 0xDA, 0x01, 0xE2, 0x01, 0xEA, 0x01, 0xF2,
- 0x01, 0xFA, 0x02, 0x02, 0x02, 0x0A, 0x02, 0x12, 0x02, 0x1A, 0x02, 0x22, 0x02, 0x2A, 0x02, 0x32,
- 0x02, 0x3A, 0x02, 0x42, 0x02, 0x4A, 0x02, 0x52, 0x02, 0x5A, 0x02, 0x62, 0x02, 0x6A, 0x02, 0x72,
- 0x02, 0x7A, 0x02, 0x82, 0x02, 0x8A, 0x02, 0x92, 0x02, 0x9A, 0x02, 0xA2, 0x02, 0xAA, 0x02, 0xB2,
- 0x02, 0xBA, 0x02, 0xC2, 0x02, 0xCA, 0x02, 0xD2, 0x02, 0xDA, 0x02, 0xE2, 0x02, 0xEA, 0x02, 0xF2,
- 0x02, 0xFA, 0x03, 0x02, 0x03, 0x0A, 0x03, 0x12, 0x03, 0x1A, 0x03, 0x22, 0x03, 0x2A, 0x03, 0x32,
- 0x03, 0x3A, 0x03, 0x42, 0x03, 0x4A, 0x03, 0x52, 0x03, 0x5A, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0x91, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0x91, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0x95, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0x95, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0x97, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0x97, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x14, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x43,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0x99, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x03, 0x99, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x00, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14,
- 0x03, 0x00, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14,
- 0x03, 0x01, 0x00, 0x03, 0x21, 0x26, 0x03, 0x43, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x43,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0x91, 0x03, 0x43, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x13,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x43,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0x97, 0x03, 0x43, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x13,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x43,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x45, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x41, 0x03, 0x45, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x14,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x01, 0x03, 0x45, 0x00, 0x01, 0x00, 0x56, 0x03, 0x90,
- 0x03, 0xB0, 0x1F, 0x02, 0x1F, 0x04, 0x1F, 0x0A, 0x1F, 0x0C, 0x1F, 0x12, 0x1F, 0x14, 0x1F, 0x1A,
- 0x1F, 0x1C, 0x1F, 0x22, 0x1F, 0x24, 0x1F, 0x2A, 0x1F, 0x2C, 0x1F, 0x32, 0x1F, 0x33, 0x1F, 0x34,
- 0x1F, 0x35, 0x1F, 0x36, 0x1F, 0x3A, 0x1F, 0x3C, 0x1F, 0x42, 0x1F, 0x44, 0x1F, 0x4A, 0x1F, 0x4C,
- 0x1F, 0x52, 0x1F, 0x54, 0x1F, 0x62, 0x1F, 0x64, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C, 0x1F, 0x6D,
- 0x1F, 0x6E, 0x1F, 0x80, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87,
- 0x1F, 0x88, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90,
- 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98, 0x1F, 0x9A,
- 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0, 0x1F, 0xA2, 0x1F, 0xA3,
- 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xAA, 0x1F, 0xAB,
- 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2, 0x1F, 0xB4, 0x1F, 0xC2, 0x1F, 0xC4,
- 0x1F, 0xD2, 0x1F, 0xD3, 0x1F, 0xE3, 0x1F, 0xF2, 0x1F, 0xF4, 0x00, 0x01, 0x03, 0x46, 0x00, 0x52,
- 0x00, 0xAA, 0x00, 0xB2, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xCA, 0x00, 0xD2, 0x00, 0xDA, 0x00, 0xE2,
- 0x00, 0xEA, 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x02, 0x01, 0x0A, 0x01, 0x12, 0x01, 0x1A, 0x01, 0x22,
- 0x01, 0x2A, 0x01, 0x32, 0x01, 0x3A, 0x01, 0x42, 0x01, 0x4A, 0x01, 0x52, 0x01, 0x5A, 0x01, 0x62,
- 0x01, 0x6A, 0x01, 0x72, 0x01, 0x7A, 0x01, 0x82, 0x01, 0x8A, 0x01, 0x92, 0x01, 0x9A, 0x01, 0xA2,
- 0x01, 0xAA, 0x01, 0xB2, 0x01, 0xBA, 0x01, 0xC2, 0x01, 0xCA, 0x01, 0xD2, 0x01, 0xDC, 0x01, 0xE4,
- 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFC, 0x02, 0x04, 0x02, 0x0C, 0x02, 0x16, 0x02, 0x1E, 0x02, 0x26,
- 0x02, 0x2E, 0x02, 0x36, 0x02, 0x3E, 0x02, 0x46, 0x02, 0x50, 0x02, 0x58, 0x02, 0x60, 0x02, 0x68,
- 0x02, 0x70, 0x02, 0x78, 0x02, 0x80, 0x02, 0x8A, 0x02, 0x92, 0x02, 0x9A, 0x02, 0xA2, 0x02, 0xAA,
- 0x02, 0xB2, 0x02, 0xBA, 0x02, 0xC4, 0x02, 0xCC, 0x02, 0xD4, 0x02, 0xDC, 0x02, 0xE4, 0x02, 0xEC,
- 0x02, 0xF4, 0x02, 0xFC, 0x03, 0x06, 0x03, 0x0E, 0x03, 0x16, 0x03, 0x1E, 0x03, 0x26, 0x03, 0x2E,
- 0x03, 0x36, 0x03, 0x3E, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0x91,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0x91, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB5,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB5, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0x95,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0x95, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB7,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0x97,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0x97, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB9,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB9,
- 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x14, 0x03, 0x41, 0x00, 0x03, 0x03, 0x99,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0x99, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xBF,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xBF, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0x9F,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0x9F, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC5,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC5, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x03, 0xA9,
- 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x03, 0xA9,
- 0x03, 0x43, 0x03, 0x41, 0x00, 0x03, 0x21, 0x26, 0x03, 0x14, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB1,
- 0x03, 0x45, 0x03, 0x13, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x01,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0x01,
- 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0xB1,
- 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x03, 0x91, 0x03, 0x45, 0x03, 0x13, 0x00, 0x03,
- 0x1F, 0x08, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03,
- 0x1F, 0x08, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0x09, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03,
- 0x1F, 0xBC, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45,
- 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x13, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x45, 0x03, 0x00,
- 0x00, 0x03, 0x1F, 0x21, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x45, 0x03, 0x01,
- 0x00, 0x03, 0x1F, 0x21, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x43, 0x03, 0x42,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x03, 0x97, 0x03, 0x45,
- 0x03, 0x13, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x45,
- 0x03, 0x00, 0x00, 0x03, 0x1F, 0x28, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x45,
- 0x03, 0x01, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x13, 0x00, 0x03, 0x1F, 0x60,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x60,
- 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xF3,
- 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03,
- 0x03, 0xA9, 0x03, 0x45, 0x03, 0x13, 0x00, 0x03, 0x21, 0x26, 0x03, 0x45, 0x03, 0x14, 0x00, 0x03,
- 0x1F, 0x68, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03,
- 0x1F, 0x68, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0x69, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03,
- 0x1F, 0xFC, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45,
- 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08, 0x03, 0x40, 0x00, 0x03, 0x03, 0xB9, 0x03, 0x08, 0x03, 0x41,
- 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x00, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x52, 0x03, 0x90, 0x1F, 0x02, 0x1F, 0x04, 0x1F, 0x0A, 0x1F, 0x0C, 0x1F, 0x12,
- 0x1F, 0x14, 0x1F, 0x1A, 0x1F, 0x1C, 0x1F, 0x22, 0x1F, 0x24, 0x1F, 0x2A, 0x1F, 0x2C, 0x1F, 0x32,
- 0x1F, 0x33, 0x1F, 0x34, 0x1F, 0x35, 0x1F, 0x3A, 0x1F, 0x3C, 0x1F, 0x42, 0x1F, 0x44, 0x1F, 0x4A,
- 0x1F, 0x4C, 0x1F, 0x52, 0x1F, 0x54, 0x1F, 0x62, 0x1F, 0x64, 0x1F, 0x6A, 0x1F, 0x6B, 0x1F, 0x6C,
- 0x1F, 0x6D, 0x1F, 0x80, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87,
- 0x1F, 0x88, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90,
- 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98, 0x1F, 0x9A,
- 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0, 0x1F, 0xA2, 0x1F, 0xA3,
- 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xA9, 0x1F, 0xAA, 0x1F, 0xAB,
- 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2, 0x1F, 0xB4, 0x1F, 0xC2, 0x1F, 0xC4,
- 0x1F, 0xD2, 0x1F, 0xD3, 0x1F, 0xF2, 0x1F, 0xF4, 0x00, 0x01, 0x02, 0x3A, 0x00, 0x36, 0x00, 0x72,
- 0x00, 0x7A, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x9A, 0x00, 0xA2, 0x00, 0xAA, 0x00, 0xB2,
- 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xCC, 0x00, 0xD6, 0x00, 0xDE, 0x00, 0xE6, 0x00, 0xEE, 0x00, 0xF6,
- 0x00, 0xFE, 0x01, 0x08, 0x01, 0x12, 0x01, 0x1A, 0x01, 0x22, 0x01, 0x2A, 0x01, 0x32, 0x01, 0x3A,
- 0x01, 0x44, 0x01, 0x4E, 0x01, 0x56, 0x01, 0x5E, 0x01, 0x66, 0x01, 0x6E, 0x01, 0x76, 0x01, 0x80,
- 0x01, 0x8A, 0x01, 0x92, 0x01, 0x9A, 0x01, 0xA2, 0x01, 0xAA, 0x01, 0xB2, 0x01, 0xBC, 0x01, 0xC6,
- 0x01, 0xCE, 0x01, 0xD6, 0x01, 0xDE, 0x01, 0xE6, 0x01, 0xEE, 0x01, 0xF8, 0x02, 0x02, 0x02, 0x0A,
- 0x02, 0x12, 0x02, 0x1A, 0x02, 0x22, 0x02, 0x2A, 0x02, 0x32, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08,
- 0x03, 0x01, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x13,
- 0x03, 0x01, 0x00, 0x03, 0x21, 0x26, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x21, 0x26, 0x03, 0x13,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x00, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x03, 0x1F, 0x01, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03,
- 0x03, 0x91, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03,
- 0x1F, 0x09, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x08, 0x03, 0x45, 0x03, 0x41, 0x00, 0x03,
- 0x1F, 0x09, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45,
- 0x03, 0x43, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x03, 0x1F, 0x20, 0x03, 0x45, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x21, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0x97, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03,
- 0x1F, 0x28, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03,
- 0x1F, 0x28, 0x03, 0x45, 0x03, 0x41, 0x00, 0x03, 0x1F, 0x29, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04,
- 0x03, 0x97, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x60, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x03, 0x1F, 0x61, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03,
- 0x03, 0xA9, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03,
- 0x1F, 0x69, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x1F, 0x68, 0x03, 0x45, 0x03, 0x41, 0x00, 0x03,
- 0x1F, 0x69, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x42, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08,
- 0x03, 0x01, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x40, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45,
- 0x03, 0x01, 0x00, 0x01, 0x00, 0x36, 0x03, 0x90, 0x1F, 0x32, 0x1F, 0x34, 0x1F, 0x6A, 0x1F, 0x6C,
- 0x1F, 0x80, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87, 0x1F, 0x88,
- 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x8F, 0x1F, 0x90, 0x1F, 0x92,
- 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x98, 0x1F, 0x9A, 0x1F, 0x9B,
- 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA0, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4,
- 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB2, 0x1F, 0xB4, 0x1F, 0xC2, 0x1F, 0xC4, 0x1F, 0xD3, 0x1F, 0xF2,
- 0x1F, 0xF4, 0x00, 0x01, 0x01, 0xEA, 0x00, 0x2E, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A,
- 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x9A, 0x00, 0xA2, 0x00, 0xAA, 0x00, 0xB4, 0x00, 0xBE,
- 0x00, 0xC6, 0x00, 0xCE, 0x00, 0xD6, 0x00, 0xDE, 0x00, 0xE8, 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x02,
- 0x01, 0x0A, 0x01, 0x12, 0x01, 0x1C, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x36, 0x01, 0x3E, 0x01, 0x46,
- 0x01, 0x50, 0x01, 0x5A, 0x01, 0x62, 0x01, 0x6A, 0x01, 0x72, 0x01, 0x7A, 0x01, 0x84, 0x01, 0x8E,
- 0x01, 0x96, 0x01, 0x9E, 0x01, 0xA6, 0x01, 0xAE, 0x01, 0xB6, 0x01, 0xC0, 0x01, 0xCA, 0x01, 0xD2,
- 0x01, 0xDA, 0x01, 0xE2, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBE,
- 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x21, 0x26,
- 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x21, 0x26, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xB3,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xB3,
- 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0xB1,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x14, 0x03, 0x00,
- 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x14, 0x03, 0x01,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45,
- 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xC3,
- 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xC3,
- 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x13, 0x03, 0x00,
- 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x13, 0x03, 0x01,
- 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xF3,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xF3,
- 0x03, 0x13, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x03, 0x21, 0x26, 0x03, 0x13, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x13, 0x03, 0x00,
- 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x14, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x13, 0x03, 0x01,
- 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x42, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42, 0x00, 0x03, 0x03, 0xB1,
- 0x03, 0x45, 0x03, 0x41, 0x00, 0x03, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBE,
- 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x41, 0x00, 0x01, 0x00, 0x2E,
- 0x03, 0x90, 0x1F, 0x32, 0x1F, 0x34, 0x1F, 0x6A, 0x1F, 0x6C, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84,
- 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x87, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E,
- 0x1F, 0x8F, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x97, 0x1F, 0x9A,
- 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0x9F, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4,
- 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA7, 0x1F, 0xA8, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x1F, 0xB4, 0x1F, 0xC4, 0x1F, 0xD3, 0x1F, 0xF4, 0x00, 0x01, 0x01, 0x7C,
- 0x00, 0x24, 0x00, 0x4E, 0x00, 0x56, 0x00, 0x5E, 0x00, 0x66, 0x00, 0x6E, 0x00, 0x76, 0x00, 0x7E,
- 0x00, 0x86, 0x00, 0x8E, 0x00, 0x98, 0x00, 0xA0, 0x00, 0xA8, 0x00, 0xB0, 0x00, 0xB8, 0x00, 0xC2,
- 0x00, 0xCA, 0x00, 0xD2, 0x00, 0xDA, 0x00, 0xE2, 0x00, 0xEC, 0x00, 0xF4, 0x00, 0xFC, 0x01, 0x04,
- 0x01, 0x0C, 0x01, 0x16, 0x01, 0x1E, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x36, 0x01, 0x40, 0x01, 0x48,
- 0x01, 0x50, 0x01, 0x58, 0x01, 0x60, 0x01, 0x68, 0x01, 0x72, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x03, 0x21, 0x26, 0x03, 0x43, 0x03, 0x01, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x13,
- 0x03, 0x40, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x13,
- 0x03, 0x41, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xBC,
- 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xBC,
- 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03,
- 0x1F, 0xC3, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03,
- 0x1F, 0xC3, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x13, 0x03, 0x40,
- 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x13, 0x03, 0x41,
- 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x42,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x14,
- 0x03, 0x40, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x00, 0x03, 0x21, 0x26,
- 0x03, 0x43, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x13, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xFC,
- 0x03, 0x14, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x13, 0x03, 0x41, 0x00, 0x03, 0x1F, 0xFC,
- 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x42, 0x03, 0x45, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x14, 0x03, 0x42, 0x03, 0x45, 0x00, 0x01, 0x00, 0x24, 0x1F, 0x32, 0x1F, 0x34,
- 0x1F, 0x6A, 0x1F, 0x6C, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x8A,
- 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x96, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0xA2, 0x1F, 0xA3,
- 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA8, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x00, 0x01, 0x01, 0x94, 0x00, 0x24, 0x00, 0x4E, 0x00, 0x56, 0x00, 0x5E,
- 0x00, 0x66, 0x00, 0x6E, 0x00, 0x76, 0x00, 0x80, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA4,
- 0x00, 0xAE, 0x00, 0xB6, 0x00, 0xC0, 0x00, 0xCA, 0x00, 0xD2, 0x00, 0xDC, 0x00, 0xE4, 0x00, 0xEE,
- 0x00, 0xF8, 0x01, 0x00, 0x01, 0x0A, 0x01, 0x12, 0x01, 0x1C, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x38,
- 0x01, 0x40, 0x01, 0x4A, 0x01, 0x54, 0x01, 0x5C, 0x01, 0x64, 0x01, 0x6E, 0x01, 0x76, 0x01, 0x80,
- 0x01, 0x8A, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x1F, 0xBE, 0x03, 0x43,
- 0x03, 0x41, 0x00, 0x03, 0x21, 0x26, 0x03, 0x43, 0x03, 0x40, 0x00, 0x03, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x41, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14,
- 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xB1,
- 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42,
- 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14,
- 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03,
- 0x1F, 0xC3, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45,
- 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xCC,
- 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03,
- 0x1F, 0xCC, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x43,
- 0x03, 0x00, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xF3,
- 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x00, 0x03, 0x21, 0x26, 0x03, 0x45, 0x03, 0x13,
- 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14,
- 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x42, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x14, 0x03, 0x45, 0x03, 0x42, 0x00, 0x01, 0x00, 0x24, 0x1F, 0x32, 0x1F, 0x34,
- 0x1F, 0x6A, 0x1F, 0x6C, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x8A,
- 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x96, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0xA2, 0x1F, 0xA3,
- 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA8, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x00, 0x01, 0x01, 0x6C, 0x00, 0x20, 0x00, 0x46, 0x00, 0x4E, 0x00, 0x58,
- 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7C, 0x00, 0x86, 0x00, 0x8E, 0x00, 0x98, 0x00, 0xA2,
- 0x00, 0xAA, 0x00, 0xB4, 0x00, 0xBC, 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEA,
- 0x00, 0xF4, 0x00, 0xFE, 0x01, 0x06, 0x01, 0x10, 0x01, 0x18, 0x01, 0x22, 0x01, 0x2C, 0x01, 0x34,
- 0x01, 0x3C, 0x01, 0x46, 0x01, 0x4E, 0x01, 0x58, 0x01, 0x62, 0x00, 0x03, 0x1F, 0xB3, 0x03, 0x43,
- 0x03, 0x40, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xB3,
- 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x43, 0x03, 0x40,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xBC, 0x03, 0x43,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xC3, 0x03, 0x43, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x42, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xCC, 0x03, 0x43, 0x03, 0x41, 0x00, 0x04,
- 0x03, 0x97, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x42, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xF3, 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9,
- 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42,
- 0x00, 0x03, 0x21, 0x26, 0x03, 0x45, 0x03, 0x43, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x43, 0x03, 0x40,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x40, 0x03, 0x45, 0x00, 0x03, 0x1F, 0xFC, 0x03, 0x43,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x42, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x14, 0x03, 0x42,
- 0x00, 0x01, 0x00, 0x20, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86, 0x1F, 0x8A,
- 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x96, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0xA2, 0x1F, 0xA3,
- 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xA8, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x1F, 0xAF, 0x00, 0x01, 0x01, 0x6E, 0x00, 0x1E, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56,
- 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6,
- 0x00, 0xB0, 0x00, 0xBA, 0x00, 0xC4, 0x00, 0xCE, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEC, 0x00, 0xF6,
- 0x01, 0x00, 0x01, 0x0A, 0x01, 0x14, 0x01, 0x1E, 0x01, 0x28, 0x01, 0x32, 0x01, 0x3C, 0x01, 0x46,
- 0x01, 0x50, 0x01, 0x5A, 0x01, 0x64, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13,
- 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x00,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13,
- 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x00, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0xA9, 0x03, 0x14, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x42, 0x00, 0x01, 0x00, 0x1E, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x86,
- 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x8E, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94,
- 0x1F, 0x95, 0x1F, 0x96, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0x9E, 0x1F, 0xA2,
- 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xA6, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x00, 0x01, 0x01, 0x32, 0x00, 0x19, 0x00, 0x38, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56,
- 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6,
- 0x00, 0xB0, 0x00, 0xBA, 0x00, 0xC4, 0x00, 0xCE, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEC, 0x00, 0xF6,
- 0x01, 0x00, 0x01, 0x0A, 0x01, 0x14, 0x01, 0x1E, 0x01, 0x28, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0x97, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9,
- 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x01, 0x00, 0x19, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85,
- 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5,
- 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x00, 0x01, 0x01, 0x32, 0x00, 0x19,
- 0x00, 0x38, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56, 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E,
- 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6, 0x00, 0xB0, 0x00, 0xBA, 0x00, 0xC4, 0x00, 0xCE,
- 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEC, 0x00, 0xF6, 0x01, 0x00, 0x01, 0x0A, 0x01, 0x14, 0x01, 0x1E,
- 0x01, 0x28, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB1,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01,
- 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04,
- 0x03, 0x91, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB7,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04,
- 0x03, 0x97, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xC9,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01,
- 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04,
- 0x03, 0xA9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x01, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x45, 0x03, 0x42, 0x00, 0x01, 0x00, 0x19,
- 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85, 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D,
- 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95, 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D,
- 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x00, 0x01, 0x01, 0x32, 0x00, 0x19, 0x00, 0x38, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56,
- 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6,
- 0x00, 0xB0, 0x00, 0xBA, 0x00, 0xC4, 0x00, 0xCE, 0x00, 0xD8, 0x00, 0xE2, 0x00, 0xEC, 0x00, 0xF6,
- 0x01, 0x00, 0x01, 0x0A, 0x01, 0x14, 0x01, 0x1E, 0x01, 0x28, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04, 0x03, 0x91, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04, 0x03, 0x97, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x13,
- 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x14,
- 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x42, 0x03, 0x45, 0x00, 0x01, 0x00, 0x19, 0x1F, 0x82, 0x1F, 0x83, 0x1F, 0x84, 0x1F, 0x85,
- 0x1F, 0x8A, 0x1F, 0x8B, 0x1F, 0x8C, 0x1F, 0x8D, 0x1F, 0x92, 0x1F, 0x93, 0x1F, 0x94, 0x1F, 0x95,
- 0x1F, 0x9A, 0x1F, 0x9B, 0x1F, 0x9C, 0x1F, 0x9D, 0x1F, 0xA2, 0x1F, 0xA3, 0x1F, 0xA4, 0x1F, 0xA5,
- 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x00, 0x01, 0x00, 0xBA, 0x00, 0x0F,
- 0x00, 0x24, 0x00, 0x2E, 0x00, 0x38, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56, 0x00, 0x60, 0x00, 0x6A,
- 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6, 0x00, 0xB0, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43,
- 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x14, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x01, 0x03, 0x45,
- 0x00, 0x04, 0x21, 0x26, 0x03, 0x14, 0x03, 0x01, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x42, 0x00, 0x01, 0x00, 0x0F, 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C,
- 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A, 0x1F, 0x9C, 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAB,
- 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x00, 0x01, 0x00, 0xBA, 0x00, 0x0F, 0x00, 0x24, 0x00, 0x2E,
- 0x00, 0x38, 0x00, 0x42, 0x00, 0x4C, 0x00, 0x56, 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E,
- 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6, 0x00, 0xB0, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0x91, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x41,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xB7,
- 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45,
- 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43,
- 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04,
- 0x03, 0xA9, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26, 0x03, 0x14, 0x03, 0x40,
- 0x03, 0x45, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x14, 0x03, 0x41, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x13, 0x03, 0x42,
- 0x00, 0x01, 0x00, 0x0F, 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94,
- 0x1F, 0x9A, 0x1F, 0x9C, 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD,
- 0x1F, 0xAE, 0x00, 0x01, 0x00, 0xBA, 0x00, 0x0F, 0x00, 0x24, 0x00, 0x2E, 0x00, 0x38, 0x00, 0x42,
- 0x00, 0x4C, 0x00, 0x56, 0x00, 0x60, 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92,
- 0x00, 0x9C, 0x00, 0xA6, 0x00, 0xB0, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x21, 0x26, 0x03, 0x14, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04,
- 0x03, 0xA9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x04, 0x21, 0x26, 0x03, 0x14, 0x03, 0x45,
- 0x03, 0x01, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x43, 0x03, 0x42, 0x00, 0x01, 0x00, 0x0F,
- 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A, 0x1F, 0x9C,
- 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x1F, 0xAE, 0x00, 0x01,
- 0x00, 0xAE, 0x00, 0x0E, 0x00, 0x22, 0x00, 0x2C, 0x00, 0x36, 0x00, 0x40, 0x00, 0x4A, 0x00, 0x54,
- 0x00, 0x5E, 0x00, 0x68, 0x00, 0x72, 0x00, 0x7C, 0x00, 0x86, 0x00, 0x90, 0x00, 0x9A, 0x00, 0xA4,
- 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0x91, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0x91, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0x97, 0x03, 0x43, 0x03, 0x45, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x14, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x43, 0x03, 0x45,
- 0x03, 0x41, 0x00, 0x04, 0x21, 0x26, 0x03, 0x14, 0x03, 0x45, 0x03, 0x41, 0x00, 0x01, 0x00, 0x0E,
- 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A, 0x1F, 0x9C,
- 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x00, 0x01, 0x00, 0xAE,
- 0x00, 0x0E, 0x00, 0x22, 0x00, 0x2C, 0x00, 0x36, 0x00, 0x40, 0x00, 0x4A, 0x00, 0x54, 0x00, 0x5E,
- 0x00, 0x68, 0x00, 0x72, 0x00, 0x7C, 0x00, 0x86, 0x00, 0x90, 0x00, 0x9A, 0x00, 0xA4, 0x00, 0x04,
- 0x03, 0xB1, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x00, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x00, 0x04,
- 0x03, 0xC9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x45, 0x03, 0x14, 0x03, 0x00, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01,
- 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x14, 0x03, 0x01, 0x00, 0x01, 0x00, 0x0E, 0x1F, 0x82,
- 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A, 0x1F, 0x9C, 0x1F, 0xA2,
- 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x0E,
- 0x00, 0x22, 0x00, 0x2C, 0x00, 0x36, 0x00, 0x40, 0x00, 0x4A, 0x00, 0x54, 0x00, 0x5E, 0x00, 0x68,
- 0x00, 0x72, 0x00, 0x7C, 0x00, 0x86, 0x00, 0x90, 0x00, 0x9A, 0x00, 0xA4, 0x00, 0x04, 0x03, 0xB1,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45,
- 0x03, 0x13, 0x03, 0x41, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x13,
- 0x03, 0x40, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45,
- 0x03, 0x14, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x45, 0x03, 0x14, 0x03, 0x41, 0x00, 0x01, 0x00, 0x0E, 0x1F, 0x82, 0x1F, 0x84,
- 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A, 0x1F, 0x9C, 0x1F, 0xA2, 0x1F, 0xA4,
- 0x1F, 0xAA, 0x1F, 0xAB, 0x1F, 0xAC, 0x1F, 0xAD, 0x00, 0x01, 0x00, 0x96, 0x00, 0x0C, 0x00, 0x1E,
- 0x00, 0x28, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x46, 0x00, 0x50, 0x00, 0x5A, 0x00, 0x64, 0x00, 0x6E,
- 0x00, 0x78, 0x00, 0x82, 0x00, 0x8C, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04,
- 0x03, 0xB7, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x01, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0x97,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00,
- 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x01,
- 0x00, 0x0C, 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94, 0x1F, 0x9A,
- 0x1F, 0x9C, 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x96, 0x00, 0x0C,
- 0x00, 0x1E, 0x00, 0x28, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x46, 0x00, 0x50, 0x00, 0x5A, 0x00, 0x64,
- 0x00, 0x6E, 0x00, 0x78, 0x00, 0x82, 0x00, 0x8C, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x40, 0x00, 0x04, 0x03, 0xB1, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0x91,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04, 0x03, 0x91, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41,
- 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04, 0x03, 0xB7, 0x03, 0x45,
- 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0x97, 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04,
- 0x03, 0x97, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x40, 0x00, 0x04, 0x03, 0xC9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x00, 0x04, 0x03, 0xA9,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x40, 0x00, 0x04, 0x03, 0xA9, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x0C, 0x1F, 0x82, 0x1F, 0x84, 0x1F, 0x8A, 0x1F, 0x8C, 0x1F, 0x92, 0x1F, 0x94,
- 0x1F, 0x9A, 0x1F, 0x9C, 0x1F, 0xA2, 0x1F, 0xA4, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E,
- 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x00, 0x03, 0x45,
- 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x01, 0x03, 0x45, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA,
- 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x13, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x41, 0x03, 0x45,
- 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A,
- 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x13, 0x03, 0x45, 0x03, 0x01, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01,
- 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x45,
- 0x03, 0x40, 0x00, 0x04, 0x21, 0x26, 0x03, 0x13, 0x03, 0x45, 0x03, 0x41, 0x00, 0x01, 0x00, 0x02,
- 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x43, 0x03, 0x00, 0x03, 0x45, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43, 0x03, 0x01,
- 0x03, 0x45, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02,
- 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43, 0x03, 0x40, 0x03, 0x45, 0x00, 0x04,
- 0x21, 0x26, 0x03, 0x43, 0x03, 0x41, 0x03, 0x45, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC,
- 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x00, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43, 0x03, 0x45, 0x03, 0x01, 0x00, 0x01,
- 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14,
- 0x00, 0x04, 0x21, 0x26, 0x03, 0x43, 0x03, 0x45, 0x03, 0x40, 0x00, 0x04, 0x21, 0x26, 0x03, 0x43,
- 0x03, 0x45, 0x03, 0x41, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E,
- 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x13, 0x03, 0x00,
- 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x13, 0x03, 0x01, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA,
- 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x45, 0x03, 0x13, 0x03, 0x40, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x13, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A,
- 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x43, 0x03, 0x00, 0x00, 0x04, 0x21, 0x26,
- 0x03, 0x45, 0x03, 0x43, 0x03, 0x01, 0x00, 0x01, 0x00, 0x02, 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x01,
- 0x00, 0x1E, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x43,
- 0x03, 0x40, 0x00, 0x04, 0x21, 0x26, 0x03, 0x45, 0x03, 0x43, 0x03, 0x41, 0x00, 0x01, 0x00, 0x02,
- 0x1F, 0xAA, 0x1F, 0xAC, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x4E,
- 0x00, 0x06, 0x00, 0x12, 0x00, 0x1C, 0x00, 0x26, 0x00, 0x30, 0x00, 0x3A, 0x00, 0x44, 0x00, 0x01,
- 0x00, 0x04, 0x0A, 0x59, 0x00, 0x02, 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x0A, 0x5A, 0x00, 0x02,
- 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x0A, 0x5B, 0x00, 0x02, 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x04,
- 0x0A, 0x5E, 0x00, 0x02, 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x0A, 0x33, 0x00, 0x02, 0x0A, 0x3C,
- 0x00, 0x01, 0x00, 0x04, 0x0A, 0x36, 0x00, 0x02, 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x06, 0x0A, 0x16,
- 0x0A, 0x17, 0x0A, 0x1C, 0x0A, 0x2B, 0x0A, 0x32, 0x0A, 0x38, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x36, 0x00, 0x06, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x02, 0x0A, 0x32, 0x0A, 0x3C, 0x00, 0x02, 0x0A, 0x38, 0x0A, 0x3C,
- 0x00, 0x02, 0x0A, 0x16, 0x0A, 0x3C, 0x00, 0x02, 0x0A, 0x17, 0x0A, 0x3C, 0x00, 0x02, 0x0A, 0x1C,
- 0x0A, 0x3C, 0x00, 0x02, 0x0A, 0x2B, 0x0A, 0x3C, 0x00, 0x01, 0x00, 0x06, 0x0A, 0x33, 0x0A, 0x36,
- 0x0A, 0x59, 0x0A, 0x5A, 0x0A, 0x5B, 0x0A, 0x5E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08,
- 0x00, 0x01, 0x01, 0xB6, 0x00, 0x1A, 0x00, 0x3A, 0x00, 0x54, 0x00, 0x66, 0x00, 0x70, 0x00, 0x7A,
- 0x00, 0x84, 0x00, 0x96, 0x00, 0xA0, 0x00, 0xAA, 0x00, 0xBC, 0x00, 0xC6, 0x00, 0xD8, 0x00, 0xE2,
- 0x00, 0xEC, 0x00, 0xF6, 0x01, 0x00, 0x01, 0x0A, 0x01, 0x1C, 0x01, 0x26, 0x01, 0x30, 0x01, 0x3A,
- 0x01, 0x7C, 0x01, 0x86, 0x01, 0x90, 0x01, 0x9A, 0x01, 0xA4, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E,
- 0x00, 0x14, 0xFB, 0x2E, 0x00, 0x02, 0x05, 0xB7, 0xFB, 0x2F, 0x00, 0x02, 0x05, 0xB8, 0xFB, 0x30,
- 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0xFB, 0x31, 0x00, 0x02, 0x05, 0xBC,
- 0xFB, 0x4C, 0x00, 0x02, 0x05, 0xBF, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x32, 0x00, 0x02, 0x05, 0xBC,
- 0x00, 0x01, 0x00, 0x04, 0xFB, 0x33, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x34,
- 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0xFB, 0x4B, 0x00, 0x02, 0x05, 0xB9,
- 0xFB, 0x35, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x36, 0x00, 0x02, 0x05, 0xBC,
- 0x00, 0x01, 0x00, 0x04, 0xFB, 0x38, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0xFB, 0x1D, 0x00, 0x02, 0x05, 0xB4, 0xFB, 0x39, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04,
- 0xFB, 0x3A, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0xFB, 0x3B, 0x00, 0x02,
- 0x05, 0xBC, 0xFB, 0x4D, 0x00, 0x02, 0x05, 0xBF, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x3C, 0x00, 0x02,
- 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x3E, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04,
- 0xFB, 0x40, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x41, 0x00, 0x02, 0x05, 0xBC,
- 0x00, 0x01, 0x00, 0x04, 0xFB, 0x43, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0xFB, 0x44, 0x00, 0x02, 0x05, 0xBC, 0xFB, 0x4E, 0x00, 0x02, 0x05, 0xBF, 0x00, 0x01, 0x00, 0x04,
- 0xFB, 0x46, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x47, 0x00, 0x02, 0x05, 0xBC,
- 0x00, 0x01, 0x00, 0x04, 0xFB, 0x48, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x07, 0x00, 0x10, 0x00, 0x18,
- 0x00, 0x20, 0x00, 0x26, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3C, 0xFB, 0x2C, 0x00, 0x03, 0x05, 0xBC,
- 0x05, 0xC1, 0xFB, 0x2D, 0x00, 0x03, 0x05, 0xBC, 0x05, 0xC2, 0xFB, 0x49, 0x00, 0x02, 0x05, 0xBC,
- 0xFB, 0x2C, 0x00, 0x03, 0x05, 0xC1, 0x05, 0xBC, 0xFB, 0x2A, 0x00, 0x02, 0x05, 0xC1, 0xFB, 0x2D,
- 0x00, 0x03, 0x05, 0xC2, 0x05, 0xBC, 0xFB, 0x2B, 0x00, 0x02, 0x05, 0xC2, 0x00, 0x01, 0x00, 0x04,
- 0xFB, 0x4A, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x1F, 0x00, 0x02, 0x05, 0xB7,
- 0x00, 0x01, 0x00, 0x04, 0xFB, 0x2C, 0x00, 0x02, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x04, 0xFB, 0x2D,
- 0x00, 0x02, 0x05, 0xBC, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0xFB, 0x2C, 0x00, 0x02, 0x05, 0xC1,
- 0xFB, 0x2D, 0x00, 0x02, 0x05, 0xC2, 0x00, 0x01, 0x00, 0x1A, 0x05, 0xD0, 0x05, 0xD1, 0x05, 0xD2,
- 0x05, 0xD3, 0x05, 0xD4, 0x05, 0xD5, 0x05, 0xD6, 0x05, 0xD8, 0x05, 0xD9, 0x05, 0xDA, 0x05, 0xDB,
- 0x05, 0xDC, 0x05, 0xDE, 0x05, 0xE0, 0x05, 0xE1, 0x05, 0xE3, 0x05, 0xE4, 0x05, 0xE6, 0x05, 0xE7,
- 0x05, 0xE8, 0x05, 0xE9, 0x05, 0xEA, 0x05, 0xF2, 0xFB, 0x2A, 0xFB, 0x2B, 0xFB, 0x49, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x0E, 0x01, 0x6C, 0x01, 0x8A, 0x01, 0xAC, 0x00, 0x01, 0x01, 0x16,
- 0x00, 0x22, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E,
- 0x00, 0x74, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E,
- 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBC, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xCE,
- 0x00, 0xD4, 0x00, 0xDA, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEC, 0x00, 0xF2, 0x00, 0xF8, 0x00, 0xFE,
- 0x01, 0x04, 0x01, 0x0A, 0x01, 0x10, 0x00, 0x02, 0x05, 0xD9, 0x05, 0xB4, 0x00, 0x02, 0x05, 0xF2,
- 0x05, 0xB7, 0x00, 0x02, 0x05, 0xE9, 0x05, 0xC1, 0x00, 0x02, 0x05, 0xE9, 0x05, 0xC2, 0x00, 0x02,
- 0xFB, 0x2A, 0x05, 0xBC, 0x00, 0x02, 0xFB, 0x2B, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD0, 0x05, 0xB7,
- 0x00, 0x02, 0x05, 0xD0, 0x05, 0xB8, 0x00, 0x02, 0x05, 0xD0, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD1,
- 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD2, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD3, 0x05, 0xBC, 0x00, 0x02,
- 0x05, 0xD4, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD5, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD6, 0x05, 0xBC,
- 0x00, 0x02, 0x05, 0xD8, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD9, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xDA,
- 0x05, 0xBC, 0x00, 0x02, 0x05, 0xDB, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xDC, 0x05, 0xBC, 0x00, 0x02,
- 0x05, 0xDE, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE0, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE1, 0x05, 0xBC,
- 0x00, 0x02, 0x05, 0xE3, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE4, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE6,
- 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE7, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xE8, 0x05, 0xBC, 0x00, 0x02,
- 0x05, 0xE9, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xEA, 0x05, 0xBC, 0x00, 0x02, 0x05, 0xD5, 0x05, 0xB9,
- 0x00, 0x02, 0x05, 0xD1, 0x05, 0xBF, 0x00, 0x02, 0x05, 0xDB, 0x05, 0xBF, 0x00, 0x02, 0x05, 0xE4,
- 0x05, 0xBF, 0x00, 0x01, 0x00, 0x22, 0xFB, 0x1D, 0xFB, 0x1F, 0xFB, 0x2A, 0xFB, 0x2B, 0xFB, 0x2C,
- 0xFB, 0x2D, 0xFB, 0x2E, 0xFB, 0x2F, 0xFB, 0x30, 0xFB, 0x31, 0xFB, 0x32, 0xFB, 0x33, 0xFB, 0x34,
- 0xFB, 0x35, 0xFB, 0x36, 0xFB, 0x38, 0xFB, 0x39, 0xFB, 0x3A, 0xFB, 0x3B, 0xFB, 0x3C, 0xFB, 0x3E,
- 0xFB, 0x40, 0xFB, 0x41, 0xFB, 0x43, 0xFB, 0x44, 0xFB, 0x46, 0xFB, 0x47, 0xFB, 0x48, 0xFB, 0x49,
- 0xFB, 0x4A, 0xFB, 0x4B, 0xFB, 0x4C, 0xFB, 0x4D, 0xFB, 0x4E, 0x00, 0x01, 0x00, 0x16, 0x00, 0x02,
- 0x00, 0x0A, 0x00, 0x10, 0x00, 0x02, 0xFB, 0x49, 0x05, 0xC1, 0x00, 0x02, 0xFB, 0x49, 0x05, 0xC2,
- 0x00, 0x01, 0x00, 0x02, 0xFB, 0x2C, 0xFB, 0x2D, 0x00, 0x01, 0x00, 0x1A, 0x00, 0x02, 0x00, 0x0A,
- 0x00, 0x12, 0x00, 0x03, 0x05, 0xE9, 0x05, 0xBC, 0x05, 0xC1, 0x00, 0x03, 0x05, 0xE9, 0x05, 0xBC,
- 0x05, 0xC2, 0x00, 0x01, 0x00, 0x02, 0xFB, 0x2C, 0xFB, 0x2D, 0x00, 0x01, 0x00, 0x1A, 0x00, 0x02,
- 0x00, 0x0A, 0x00, 0x12, 0x00, 0x03, 0x05, 0xE9, 0x05, 0xC1, 0x05, 0xBC, 0x00, 0x03, 0x05, 0xE9,
- 0x05, 0xC2, 0x05, 0xBC, 0x00, 0x01, 0x00, 0x02, 0xFB, 0x2C, 0xFB, 0x2D, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x01, 0x36, 0x00, 0x16, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x46,
- 0x00, 0x50, 0x00, 0x5A, 0x00, 0x64, 0x00, 0x6E, 0x00, 0x78, 0x00, 0x82, 0x00, 0x8C, 0x00, 0x96,
- 0x00, 0xA0, 0x00, 0xAA, 0x00, 0xB4, 0x00, 0xBE, 0x00, 0xC8, 0x00, 0xD2, 0x00, 0xE4, 0x00, 0xF6,
- 0x01, 0x08, 0x01, 0x1A, 0x01, 0x2C, 0x00, 0x01, 0x00, 0x04, 0x30, 0x94, 0x00, 0x02, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0x4C, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x4E,
- 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x50, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01,
- 0x00, 0x04, 0x30, 0x52, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x54, 0x00, 0x02,
- 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x56, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04,
- 0x30, 0x58, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x5A, 0x00, 0x02, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0x5C, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x5E,
- 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x60, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01,
- 0x00, 0x04, 0x30, 0x62, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x65, 0x00, 0x02,
- 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0x67, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04,
- 0x30, 0x69, 0x00, 0x02, 0x30, 0x99, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0x70, 0x00, 0x02,
- 0x30, 0x99, 0x30, 0x71, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0x73,
- 0x00, 0x02, 0x30, 0x99, 0x30, 0x74, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x30, 0x76, 0x00, 0x02, 0x30, 0x99, 0x30, 0x77, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06,
- 0x00, 0x0C, 0x30, 0x79, 0x00, 0x02, 0x30, 0x99, 0x30, 0x7A, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02,
- 0x00, 0x06, 0x00, 0x0C, 0x30, 0x7C, 0x00, 0x02, 0x30, 0x99, 0x30, 0x7D, 0x00, 0x02, 0x30, 0x9A,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0x9E, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x16, 0x30, 0x46,
- 0x30, 0x4B, 0x30, 0x4D, 0x30, 0x4F, 0x30, 0x51, 0x30, 0x53, 0x30, 0x55, 0x30, 0x57, 0x30, 0x59,
- 0x30, 0x5B, 0x30, 0x5D, 0x30, 0x5F, 0x30, 0x61, 0x30, 0x64, 0x30, 0x66, 0x30, 0x68, 0x30, 0x6F,
- 0x30, 0x72, 0x30, 0x75, 0x30, 0x78, 0x30, 0x7B, 0x30, 0x9D, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0xDE, 0x00, 0x1B, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E,
- 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00, 0x66, 0x00, 0x6C, 0x00, 0x72, 0x00, 0x78, 0x00, 0x7E,
- 0x00, 0x84, 0x00, 0x8A, 0x00, 0x90, 0x00, 0x96, 0x00, 0x9C, 0x00, 0xA2, 0x00, 0xA8, 0x00, 0xAE,
- 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC0, 0x00, 0xC6, 0x00, 0xCC, 0x00, 0xD2, 0x00, 0xD8, 0x00, 0x02,
- 0x30, 0x4B, 0x30, 0x99, 0x00, 0x02, 0x30, 0x4D, 0x30, 0x99, 0x00, 0x02, 0x30, 0x4F, 0x30, 0x99,
- 0x00, 0x02, 0x30, 0x51, 0x30, 0x99, 0x00, 0x02, 0x30, 0x53, 0x30, 0x99, 0x00, 0x02, 0x30, 0x55,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0x57, 0x30, 0x99, 0x00, 0x02, 0x30, 0x59, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0x5B, 0x30, 0x99, 0x00, 0x02, 0x30, 0x5D, 0x30, 0x99, 0x00, 0x02, 0x30, 0x5F, 0x30, 0x99,
- 0x00, 0x02, 0x30, 0x61, 0x30, 0x99, 0x00, 0x02, 0x30, 0x64, 0x30, 0x99, 0x00, 0x02, 0x30, 0x66,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0x68, 0x30, 0x99, 0x00, 0x02, 0x30, 0x6F, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0x6F, 0x30, 0x9A, 0x00, 0x02, 0x30, 0x72, 0x30, 0x99, 0x00, 0x02, 0x30, 0x72, 0x30, 0x9A,
- 0x00, 0x02, 0x30, 0x75, 0x30, 0x99, 0x00, 0x02, 0x30, 0x75, 0x30, 0x9A, 0x00, 0x02, 0x30, 0x78,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0x78, 0x30, 0x9A, 0x00, 0x02, 0x30, 0x7B, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0x7B, 0x30, 0x9A, 0x00, 0x02, 0x30, 0x46, 0x30, 0x99, 0x00, 0x02, 0x30, 0x9D, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x1B, 0x30, 0x4C, 0x30, 0x4E, 0x30, 0x50, 0x30, 0x52, 0x30, 0x54, 0x30, 0x56,
- 0x30, 0x58, 0x30, 0x5A, 0x30, 0x5C, 0x30, 0x5E, 0x30, 0x60, 0x30, 0x62, 0x30, 0x65, 0x30, 0x67,
- 0x30, 0x69, 0x30, 0x70, 0x30, 0x71, 0x30, 0x73, 0x30, 0x74, 0x30, 0x76, 0x30, 0x77, 0x30, 0x79,
- 0x30, 0x7A, 0x30, 0x7C, 0x30, 0x7D, 0x30, 0x94, 0x30, 0x9E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x44, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x16, 0x00, 0x3A, 0x00, 0x01,
- 0x00, 0x04, 0x0C, 0xC0, 0x00, 0x02, 0x0C, 0xD5, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x12, 0x00, 0x18,
- 0x00, 0x1E, 0x0C, 0xCB, 0x00, 0x03, 0x0C, 0xC2, 0x0C, 0xD5, 0x0C, 0xCA, 0x00, 0x02, 0x0C, 0xC2,
- 0x0C, 0xC7, 0x00, 0x02, 0x0C, 0xD5, 0x0C, 0xC8, 0x00, 0x02, 0x0C, 0xD6, 0x00, 0x01, 0x00, 0x04,
- 0x0C, 0xCB, 0x00, 0x02, 0x0C, 0xD5, 0x00, 0x01, 0x00, 0x03, 0x0C, 0xBF, 0x0C, 0xC6, 0x0C, 0xCA,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x46, 0x00, 0x01, 0x00, 0x2E, 0x00, 0x05,
- 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x02, 0x0C, 0xBF, 0x0C, 0xD5,
- 0x00, 0x02, 0x0C, 0xC6, 0x0C, 0xD5, 0x00, 0x02, 0x0C, 0xC6, 0x0C, 0xD6, 0x00, 0x02, 0x0C, 0xC6,
- 0x0C, 0xC2, 0x00, 0x02, 0x0C, 0xCA, 0x0C, 0xD5, 0x00, 0x01, 0x00, 0x05, 0x0C, 0xC0, 0x0C, 0xC7,
- 0x0C, 0xC8, 0x0C, 0xCA, 0x0C, 0xCB, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03,
- 0x0C, 0xC6, 0x0C, 0xC2, 0x0C, 0xD5, 0x00, 0x01, 0x00, 0x01, 0x0C, 0xCB, 0x00, 0x04, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x01, 0x66, 0x00, 0x1A, 0x00, 0x3A, 0x00, 0x44, 0x00, 0x4E,
- 0x00, 0x58, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x76, 0x00, 0x80, 0x00, 0x8A, 0x00, 0x94, 0x00, 0x9E,
- 0x00, 0xA8, 0x00, 0xB2, 0x00, 0xBC, 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xDA, 0x00, 0xEC, 0x00, 0xFE,
- 0x01, 0x10, 0x01, 0x22, 0x01, 0x34, 0x01, 0x3E, 0x01, 0x48, 0x01, 0x52, 0x01, 0x5C, 0x00, 0x01,
- 0x00, 0x04, 0x30, 0xF4, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xAC, 0x00, 0x02,
- 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xAE, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04,
- 0x30, 0xB0, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xB2, 0x00, 0x02, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0xB4, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xB6,
- 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xB8, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01,
- 0x00, 0x04, 0x30, 0xBA, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xBC, 0x00, 0x02,
- 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xBE, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04,
- 0x30, 0xC0, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xC2, 0x00, 0x02, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0xC5, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xC7,
- 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xC9, 0x00, 0x02, 0x30, 0x99, 0x00, 0x02,
- 0x00, 0x06, 0x00, 0x0C, 0x30, 0xD0, 0x00, 0x02, 0x30, 0x99, 0x30, 0xD1, 0x00, 0x02, 0x30, 0x9A,
- 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0xD3, 0x00, 0x02, 0x30, 0x99, 0x30, 0xD4, 0x00, 0x02,
- 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0xD6, 0x00, 0x02, 0x30, 0x99, 0x30, 0xD7,
- 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0xD9, 0x00, 0x02, 0x30, 0x99,
- 0x30, 0xDA, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x30, 0xDC, 0x00, 0x02,
- 0x30, 0x99, 0x30, 0xDD, 0x00, 0x02, 0x30, 0x9A, 0x00, 0x01, 0x00, 0x04, 0x30, 0xF7, 0x00, 0x02,
- 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xF8, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04,
- 0x30, 0xF9, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x04, 0x30, 0xFA, 0x00, 0x02, 0x30, 0x99,
- 0x00, 0x01, 0x00, 0x04, 0x30, 0xFE, 0x00, 0x02, 0x30, 0x99, 0x00, 0x01, 0x00, 0x1A, 0x30, 0xA6,
- 0x30, 0xAB, 0x30, 0xAD, 0x30, 0xAF, 0x30, 0xB1, 0x30, 0xB3, 0x30, 0xB5, 0x30, 0xB7, 0x30, 0xB9,
- 0x30, 0xBB, 0x30, 0xBD, 0x30, 0xBF, 0x30, 0xC1, 0x30, 0xC4, 0x30, 0xC6, 0x30, 0xC8, 0x30, 0xCF,
- 0x30, 0xD2, 0x30, 0xD5, 0x30, 0xD8, 0x30, 0xDB, 0x30, 0xEF, 0x30, 0xF0, 0x30, 0xF1, 0x30, 0xF2,
- 0x30, 0xFD, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x1F,
- 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E,
- 0x00, 0x74, 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E,
- 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBC, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xCE,
- 0x00, 0xD4, 0x00, 0xDA, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEC, 0x00, 0xF2, 0x00, 0xF8, 0x00, 0x02,
- 0x30, 0xAB, 0x30, 0x99, 0x00, 0x02, 0x30, 0xAD, 0x30, 0x99, 0x00, 0x02, 0x30, 0xAF, 0x30, 0x99,
- 0x00, 0x02, 0x30, 0xB1, 0x30, 0x99, 0x00, 0x02, 0x30, 0xB3, 0x30, 0x99, 0x00, 0x02, 0x30, 0xB5,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0xB7, 0x30, 0x99, 0x00, 0x02, 0x30, 0xB9, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0xBB, 0x30, 0x99, 0x00, 0x02, 0x30, 0xBD, 0x30, 0x99, 0x00, 0x02, 0x30, 0xBF, 0x30, 0x99,
- 0x00, 0x02, 0x30, 0xC1, 0x30, 0x99, 0x00, 0x02, 0x30, 0xC4, 0x30, 0x99, 0x00, 0x02, 0x30, 0xC6,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0xC8, 0x30, 0x99, 0x00, 0x02, 0x30, 0xCF, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0xCF, 0x30, 0x9A, 0x00, 0x02, 0x30, 0xD2, 0x30, 0x99, 0x00, 0x02, 0x30, 0xD2, 0x30, 0x9A,
- 0x00, 0x02, 0x30, 0xD5, 0x30, 0x99, 0x00, 0x02, 0x30, 0xD5, 0x30, 0x9A, 0x00, 0x02, 0x30, 0xD8,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0xD8, 0x30, 0x9A, 0x00, 0x02, 0x30, 0xDB, 0x30, 0x99, 0x00, 0x02,
- 0x30, 0xDB, 0x30, 0x9A, 0x00, 0x02, 0x30, 0xA6, 0x30, 0x99, 0x00, 0x02, 0x30, 0xEF, 0x30, 0x99,
- 0x00, 0x02, 0x30, 0xF0, 0x30, 0x99, 0x00, 0x02, 0x30, 0xF1, 0x30, 0x99, 0x00, 0x02, 0x30, 0xF2,
- 0x30, 0x99, 0x00, 0x02, 0x30, 0xFD, 0x30, 0x99, 0x00, 0x01, 0x00, 0x1F, 0x30, 0xAC, 0x30, 0xAE,
- 0x30, 0xB0, 0x30, 0xB2, 0x30, 0xB4, 0x30, 0xB6, 0x30, 0xB8, 0x30, 0xBA, 0x30, 0xBC, 0x30, 0xBE,
- 0x30, 0xC0, 0x30, 0xC2, 0x30, 0xC5, 0x30, 0xC7, 0x30, 0xC9, 0x30, 0xD0, 0x30, 0xD1, 0x30, 0xD3,
- 0x30, 0xD4, 0x30, 0xD6, 0x30, 0xD7, 0x30, 0xD9, 0x30, 0xDA, 0x30, 0xDC, 0x30, 0xDD, 0x30, 0xF4,
- 0x30, 0xF7, 0x30, 0xF8, 0x30, 0xF9, 0x30, 0xFA, 0x30, 0xFE, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x1E, 0x9A, 0x00, 0x89, 0x01, 0x18, 0x02, 0x72, 0x02, 0x8C, 0x02, 0xE6,
- 0x03, 0x18, 0x04, 0x3E, 0x04, 0x48, 0x04, 0x8A, 0x04, 0xC4, 0x05, 0x6A, 0x05, 0x74, 0x05, 0xA6,
- 0x05, 0xF4, 0x06, 0x16, 0x06, 0x70, 0x08, 0x56, 0x08, 0x70, 0x08, 0xCE, 0x09, 0x42, 0x09, 0x7C,
- 0x0B, 0x14, 0x0B, 0x26, 0x0B, 0x68, 0x0B, 0x7A, 0x0B, 0xD4, 0x0C, 0x0E, 0x0D, 0x68, 0x0D, 0x82,
- 0x0D, 0xDC, 0x0E, 0x0E, 0x0F, 0x34, 0x0F, 0x3E, 0x0F, 0x80, 0x0F, 0xC2, 0x10, 0x60, 0x10, 0x72,
- 0x10, 0xA4, 0x10, 0xF2, 0x11, 0x14, 0x11, 0x6E, 0x13, 0x54, 0x13, 0x6E, 0x13, 0xCC, 0x14, 0x40,
- 0x14, 0x82, 0x16, 0x1A, 0x16, 0x2C, 0x16, 0x76, 0x16, 0x88, 0x16, 0xEA, 0x17, 0x24, 0x17, 0x5E,
- 0x17, 0x68, 0x17, 0x7A, 0x17, 0x94, 0x17, 0xA6, 0x17, 0xE0, 0x17, 0xF2, 0x17, 0xFC, 0x18, 0x06,
- 0x18, 0x40, 0x18, 0x6A, 0x18, 0x74, 0x18, 0x86, 0x18, 0x90, 0x18, 0x9A, 0x18, 0xCC, 0x19, 0x06,
- 0x19, 0x10, 0x19, 0x22, 0x19, 0x3C, 0x19, 0x4E, 0x19, 0x88, 0x19, 0x9A, 0x19, 0xA4, 0x19, 0xAE,
- 0x19, 0xE8, 0x1A, 0x12, 0x1A, 0x1C, 0x1A, 0x2E, 0x1A, 0x38, 0x1A, 0x42, 0x1A, 0x74, 0x1A, 0xAE,
- 0x1A, 0xE8, 0x1A, 0xF2, 0x1A, 0xFC, 0x1B, 0x1E, 0x1B, 0x40, 0x1B, 0x4A, 0x1B, 0x54, 0x1B, 0x7E,
- 0x1B, 0xA8, 0x1B, 0xB2, 0x1B, 0xBC, 0x1B, 0xC6, 0x1B, 0xD0, 0x1B, 0xEA, 0x1C, 0x04, 0x1C, 0x0E,
- 0x1C, 0x18, 0x1C, 0x22, 0x1C, 0x5C, 0x1C, 0x96, 0x1C, 0xD0, 0x1D, 0x0A, 0x1D, 0x14, 0x1D, 0x1E,
- 0x1D, 0x28, 0x1D, 0x32, 0x1D, 0x3C, 0x1D, 0x46, 0x1D, 0x50, 0x1D, 0x5A, 0x1D, 0x64, 0x1D, 0x6E,
- 0x1D, 0x78, 0x1D, 0x82, 0x1D, 0x8C, 0x1D, 0x96, 0x1D, 0xA0, 0x1D, 0xAA, 0x1D, 0xB4, 0x1D, 0xBE,
- 0x1D, 0xD0, 0x1D, 0xE2, 0x1D, 0xEC, 0x1D, 0xF6, 0x1E, 0x08, 0x1E, 0x1A, 0x1E, 0x24, 0x1E, 0x2E,
- 0x1E, 0x38, 0x1E, 0x42, 0x1E, 0x4C, 0x1E, 0x56, 0x1E, 0x88, 0x00, 0x26, 0x00, 0x4E, 0x00, 0x54,
- 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92,
- 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBC, 0x00, 0xC4, 0x00, 0xCC,
- 0x00, 0xD4, 0x00, 0xDC, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF0, 0x00, 0xF8, 0x00, 0xFE, 0x01, 0x04,
- 0x01, 0x0C, 0x01, 0x14, 0x01, 0x1A, 0x01, 0x20, 0x01, 0x26, 0x01, 0x2C, 0x01, 0x34, 0x01, 0x3C,
- 0x01, 0x42, 0x01, 0x48, 0x01, 0x4E, 0x01, 0x54, 0x00, 0xC0, 0x00, 0x02, 0x03, 0x00, 0x00, 0xC1,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0xA6, 0x00, 0x03, 0x03, 0x02, 0x03, 0x00, 0x1E, 0xA4, 0x00, 0x03,
- 0x03, 0x02, 0x03, 0x01, 0x1E, 0xAA, 0x00, 0x03, 0x03, 0x02, 0x03, 0x03, 0x1E, 0xA8, 0x00, 0x03,
- 0x03, 0x02, 0x03, 0x09, 0x1E, 0xAC, 0x00, 0x03, 0x03, 0x02, 0x03, 0x23, 0x1E, 0xA6, 0x00, 0x03,
- 0x03, 0x02, 0x03, 0x40, 0x1E, 0xA4, 0x00, 0x03, 0x03, 0x02, 0x03, 0x41, 0x00, 0xC2, 0x00, 0x02,
- 0x03, 0x02, 0x00, 0xC3, 0x00, 0x02, 0x03, 0x03, 0x01, 0x00, 0x00, 0x02, 0x03, 0x04, 0x1E, 0xB0,
- 0x00, 0x03, 0x03, 0x06, 0x03, 0x00, 0x1E, 0xAE, 0x00, 0x03, 0x03, 0x06, 0x03, 0x01, 0x1E, 0xB4,
- 0x00, 0x03, 0x03, 0x06, 0x03, 0x03, 0x1E, 0xB2, 0x00, 0x03, 0x03, 0x06, 0x03, 0x09, 0x1E, 0xB6,
- 0x00, 0x03, 0x03, 0x06, 0x03, 0x23, 0x1E, 0xB0, 0x00, 0x03, 0x03, 0x06, 0x03, 0x40, 0x1E, 0xAE,
- 0x00, 0x03, 0x03, 0x06, 0x03, 0x41, 0x01, 0x02, 0x00, 0x02, 0x03, 0x06, 0x01, 0xE0, 0x00, 0x03,
- 0x03, 0x07, 0x03, 0x04, 0x02, 0x26, 0x00, 0x02, 0x03, 0x07, 0x01, 0xDE, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x04, 0x00, 0xC4, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xA2, 0x00, 0x02, 0x03, 0x09, 0x01, 0xFA,
- 0x00, 0x03, 0x03, 0x0A, 0x03, 0x01, 0x01, 0xFA, 0x00, 0x03, 0x03, 0x0A, 0x03, 0x41, 0x00, 0xC5,
- 0x00, 0x02, 0x03, 0x0A, 0x01, 0xCD, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x00, 0x00, 0x02, 0x03, 0x0F,
- 0x02, 0x02, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xAC, 0x00, 0x03, 0x03, 0x23, 0x03, 0x02, 0x1E, 0xB6,
- 0x00, 0x03, 0x03, 0x23, 0x03, 0x06, 0x1E, 0xA0, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x00, 0x00, 0x02,
- 0x03, 0x25, 0x01, 0x04, 0x00, 0x02, 0x03, 0x28, 0x00, 0xC0, 0x00, 0x02, 0x03, 0x40, 0x00, 0xC1,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x1E, 0x02, 0x00, 0x02,
- 0x03, 0x07, 0x1E, 0x04, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x06, 0x00, 0x02, 0x03, 0x31, 0x00, 0x0A,
- 0x00, 0x16, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4C, 0x00, 0x54, 0x1E, 0x08, 0x00, 0x03, 0x03, 0x01, 0x03, 0x27, 0x01, 0x06, 0x00, 0x02,
- 0x03, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x02, 0x01, 0x0A, 0x00, 0x02, 0x03, 0x07, 0x01, 0x0C,
- 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x08, 0x00, 0x03, 0x03, 0x27, 0x03, 0x01, 0x1E, 0x08, 0x00, 0x03,
- 0x03, 0x27, 0x03, 0x41, 0x00, 0xC7, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x08, 0x00, 0x03, 0x03, 0x41,
- 0x03, 0x27, 0x01, 0x06, 0x00, 0x02, 0x03, 0x41, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A,
- 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x1E, 0x0A, 0x00, 0x02, 0x03, 0x07, 0x01, 0x0E, 0x00, 0x02,
- 0x03, 0x0C, 0x1E, 0x0C, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x10, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x12,
- 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x0E, 0x00, 0x02, 0x03, 0x31, 0x00, 0x21, 0x00, 0x44, 0x00, 0x4A,
- 0x00, 0x50, 0x00, 0x58, 0x00, 0x60, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88,
- 0x00, 0x8E, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAC, 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC2,
- 0x00, 0xC8, 0x00, 0xCE, 0x00, 0xD4, 0x00, 0xDA, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEC, 0x00, 0xF4,
- 0x00, 0xFA, 0x01, 0x02, 0x01, 0x08, 0x01, 0x0E, 0x01, 0x14, 0x01, 0x1A, 0x01, 0x20, 0x00, 0xC8,
- 0x00, 0x02, 0x03, 0x00, 0x00, 0xC9, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xC0, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x00, 0x1E, 0xBE, 0x00, 0x03, 0x03, 0x02, 0x03, 0x01, 0x1E, 0xC4, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x03, 0x1E, 0xC2, 0x00, 0x03, 0x03, 0x02, 0x03, 0x09, 0x1E, 0xC6, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x23, 0x1E, 0xC0, 0x00, 0x03, 0x03, 0x02, 0x03, 0x40, 0x1E, 0xBE, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x41, 0x00, 0xCA, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xBC, 0x00, 0x02, 0x03, 0x03, 0x1E, 0x14,
- 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x1E, 0x16, 0x00, 0x03, 0x03, 0x04, 0x03, 0x01, 0x1E, 0x14,
- 0x00, 0x03, 0x03, 0x04, 0x03, 0x40, 0x1E, 0x16, 0x00, 0x03, 0x03, 0x04, 0x03, 0x41, 0x01, 0x12,
- 0x00, 0x02, 0x03, 0x04, 0x1E, 0x1C, 0x00, 0x03, 0x03, 0x06, 0x03, 0x27, 0x01, 0x14, 0x00, 0x02,
- 0x03, 0x06, 0x01, 0x16, 0x00, 0x02, 0x03, 0x07, 0x00, 0xCB, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xBA,
- 0x00, 0x02, 0x03, 0x09, 0x01, 0x1A, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x04, 0x00, 0x02, 0x03, 0x0F,
- 0x02, 0x06, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xC6, 0x00, 0x03, 0x03, 0x23, 0x03, 0x02, 0x1E, 0xB8,
- 0x00, 0x02, 0x03, 0x23, 0x1E, 0x1C, 0x00, 0x03, 0x03, 0x27, 0x03, 0x06, 0x02, 0x28, 0x00, 0x02,
- 0x03, 0x27, 0x01, 0x18, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x18, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x1A,
- 0x00, 0x02, 0x03, 0x30, 0x00, 0xC8, 0x00, 0x02, 0x03, 0x40, 0x00, 0xC9, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x04, 0x1E, 0x1E, 0x00, 0x02, 0x03, 0x07, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18,
- 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x01, 0xF4, 0x00, 0x02,
- 0x03, 0x01, 0x01, 0x1C, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x20, 0x00, 0x02, 0x03, 0x04, 0x01, 0x1E,
- 0x00, 0x02, 0x03, 0x06, 0x01, 0x20, 0x00, 0x02, 0x03, 0x07, 0x01, 0xE6, 0x00, 0x02, 0x03, 0x0C,
- 0x01, 0x22, 0x00, 0x02, 0x03, 0x27, 0x01, 0xF4, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10,
- 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x01, 0x24, 0x00, 0x02,
- 0x03, 0x02, 0x1E, 0x22, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x26, 0x00, 0x02, 0x03, 0x08, 0x02, 0x1E,
- 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x24, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x28, 0x00, 0x02, 0x03, 0x27,
- 0x1E, 0x2A, 0x00, 0x02, 0x03, 0x2E, 0x00, 0x14, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C,
- 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x70,
- 0x00, 0x76, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x88, 0x00, 0x8E, 0x00, 0x94, 0x00, 0x9A, 0x00, 0xA0,
- 0x00, 0xCC, 0x00, 0x02, 0x03, 0x00, 0x00, 0xCD, 0x00, 0x02, 0x03, 0x01, 0x00, 0xCE, 0x00, 0x02,
- 0x03, 0x02, 0x01, 0x28, 0x00, 0x02, 0x03, 0x03, 0x01, 0x2A, 0x00, 0x02, 0x03, 0x04, 0x01, 0x2C,
- 0x00, 0x02, 0x03, 0x06, 0x01, 0x30, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x2E, 0x00, 0x03, 0x03, 0x08,
- 0x03, 0x01, 0x1E, 0x2E, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41, 0x00, 0xCF, 0x00, 0x02, 0x03, 0x08,
- 0x1E, 0xC8, 0x00, 0x02, 0x03, 0x09, 0x01, 0xCF, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x08, 0x00, 0x02,
- 0x03, 0x0F, 0x02, 0x0A, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xCA, 0x00, 0x02, 0x03, 0x23, 0x01, 0x2E,
- 0x00, 0x02, 0x03, 0x28, 0x1E, 0x2C, 0x00, 0x02, 0x03, 0x30, 0x00, 0xCC, 0x00, 0x02, 0x03, 0x40,
- 0x00, 0xCD, 0x00, 0x02, 0x03, 0x41, 0x1E, 0x2E, 0x00, 0x02, 0x03, 0x44, 0x00, 0x01, 0x00, 0x04,
- 0x01, 0x34, 0x00, 0x02, 0x03, 0x02, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20,
- 0x00, 0x26, 0x00, 0x2C, 0x1E, 0x30, 0x00, 0x02, 0x03, 0x01, 0x01, 0xE8, 0x00, 0x02, 0x03, 0x0C,
- 0x1E, 0x32, 0x00, 0x02, 0x03, 0x23, 0x01, 0x36, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x34, 0x00, 0x02,
- 0x03, 0x31, 0x1E, 0x30, 0x00, 0x02, 0x03, 0x41, 0x00, 0x09, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x22,
- 0x00, 0x28, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x01, 0x39, 0x00, 0x02,
- 0x03, 0x01, 0x1E, 0x38, 0x00, 0x03, 0x03, 0x04, 0x03, 0x23, 0x01, 0x3D, 0x00, 0x02, 0x03, 0x0C,
- 0x1E, 0x38, 0x00, 0x03, 0x03, 0x23, 0x03, 0x04, 0x1E, 0x36, 0x00, 0x02, 0x03, 0x23, 0x01, 0x3B,
- 0x00, 0x02, 0x03, 0x27, 0x1E, 0x3C, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x3A, 0x00, 0x02, 0x03, 0x31,
- 0x01, 0x39, 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x1E, 0x3E, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x40, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x42, 0x00, 0x02,
- 0x03, 0x23, 0x1E, 0x3E, 0x00, 0x02, 0x03, 0x41, 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24,
- 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54,
- 0x01, 0xF8, 0x00, 0x02, 0x03, 0x00, 0x01, 0x43, 0x00, 0x02, 0x03, 0x01, 0x00, 0xD1, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0x44, 0x00, 0x02, 0x03, 0x07, 0x01, 0x47, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x46,
- 0x00, 0x02, 0x03, 0x23, 0x01, 0x45, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x4A, 0x00, 0x02, 0x03, 0x2D,
- 0x1E, 0x48, 0x00, 0x02, 0x03, 0x31, 0x01, 0xF8, 0x00, 0x02, 0x03, 0x40, 0x01, 0x43, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x34, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x78, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8E,
- 0x00, 0x96, 0x00, 0x9E, 0x00, 0xA6, 0x00, 0xAE, 0x00, 0xB6, 0x00, 0xBE, 0x00, 0xC4, 0x00, 0xCC,
- 0x00, 0xD4, 0x00, 0xDC, 0x00, 0xE4, 0x00, 0xEC, 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x02, 0x01, 0x0A,
- 0x01, 0x12, 0x01, 0x1A, 0x01, 0x20, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x34, 0x01, 0x3C, 0x01, 0x42,
- 0x01, 0x4A, 0x01, 0x50, 0x01, 0x56, 0x01, 0x5C, 0x01, 0x62, 0x01, 0x68, 0x01, 0x70, 0x01, 0x78,
- 0x01, 0x80, 0x01, 0x88, 0x01, 0x90, 0x01, 0x98, 0x01, 0xA0, 0x01, 0xA6, 0x01, 0xAE, 0x01, 0xB6,
- 0x01, 0xBC, 0x01, 0xC4, 0x01, 0xCA, 0x01, 0xD2, 0x01, 0xD8, 0x01, 0xE0, 0x1E, 0xDC, 0x00, 0x03,
- 0x03, 0x00, 0x03, 0x1B, 0x00, 0xD2, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xDA, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x1B, 0x00, 0xD3, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xD2, 0x00, 0x03, 0x03, 0x02, 0x03, 0x00,
- 0x1E, 0xD0, 0x00, 0x03, 0x03, 0x02, 0x03, 0x01, 0x1E, 0xD6, 0x00, 0x03, 0x03, 0x02, 0x03, 0x03,
- 0x1E, 0xD4, 0x00, 0x03, 0x03, 0x02, 0x03, 0x09, 0x1E, 0xD8, 0x00, 0x03, 0x03, 0x02, 0x03, 0x23,
- 0x1E, 0xD2, 0x00, 0x03, 0x03, 0x02, 0x03, 0x40, 0x1E, 0xD0, 0x00, 0x03, 0x03, 0x02, 0x03, 0x41,
- 0x00, 0xD4, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x4C, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x02, 0x2C,
- 0x00, 0x03, 0x03, 0x03, 0x03, 0x04, 0x1E, 0x4E, 0x00, 0x03, 0x03, 0x03, 0x03, 0x08, 0x1E, 0xE0,
- 0x00, 0x03, 0x03, 0x03, 0x03, 0x1B, 0x1E, 0x4C, 0x00, 0x03, 0x03, 0x03, 0x03, 0x41, 0x00, 0xD5,
- 0x00, 0x02, 0x03, 0x03, 0x1E, 0x50, 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x1E, 0x52, 0x00, 0x03,
- 0x03, 0x04, 0x03, 0x01, 0x01, 0xEC, 0x00, 0x03, 0x03, 0x04, 0x03, 0x28, 0x1E, 0x50, 0x00, 0x03,
- 0x03, 0x04, 0x03, 0x40, 0x1E, 0x52, 0x00, 0x03, 0x03, 0x04, 0x03, 0x41, 0x01, 0x4C, 0x00, 0x02,
- 0x03, 0x04, 0x01, 0x4E, 0x00, 0x02, 0x03, 0x06, 0x02, 0x30, 0x00, 0x03, 0x03, 0x07, 0x03, 0x04,
- 0x02, 0x2E, 0x00, 0x02, 0x03, 0x07, 0x02, 0x2A, 0x00, 0x03, 0x03, 0x08, 0x03, 0x04, 0x00, 0xD6,
- 0x00, 0x02, 0x03, 0x08, 0x1E, 0xDE, 0x00, 0x03, 0x03, 0x09, 0x03, 0x1B, 0x1E, 0xCE, 0x00, 0x02,
- 0x03, 0x09, 0x01, 0x50, 0x00, 0x02, 0x03, 0x0B, 0x01, 0xD1, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x0C,
- 0x00, 0x02, 0x03, 0x0F, 0x02, 0x0E, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xDC, 0x00, 0x03, 0x03, 0x1B,
- 0x03, 0x00, 0x1E, 0xDA, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x01, 0x1E, 0xE0, 0x00, 0x03, 0x03, 0x1B,
- 0x03, 0x03, 0x1E, 0xDE, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x09, 0x1E, 0xE2, 0x00, 0x03, 0x03, 0x1B,
- 0x03, 0x23, 0x1E, 0xDC, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x40, 0x1E, 0xDA, 0x00, 0x03, 0x03, 0x1B,
- 0x03, 0x41, 0x01, 0xA0, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0xD8, 0x00, 0x03, 0x03, 0x23, 0x03, 0x02,
- 0x1E, 0xE2, 0x00, 0x03, 0x03, 0x23, 0x03, 0x1B, 0x1E, 0xCC, 0x00, 0x02, 0x03, 0x23, 0x01, 0xEC,
- 0x00, 0x03, 0x03, 0x28, 0x03, 0x04, 0x01, 0xEA, 0x00, 0x02, 0x03, 0x28, 0x1E, 0xDC, 0x00, 0x03,
- 0x03, 0x40, 0x03, 0x1B, 0x00, 0xD2, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xDA, 0x00, 0x03, 0x03, 0x41,
- 0x03, 0x1B, 0x00, 0xD3, 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14,
- 0x1E, 0x54, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x56, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x54, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38,
- 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x01, 0x54, 0x00, 0x02, 0x03, 0x01,
- 0x1E, 0x5C, 0x00, 0x03, 0x03, 0x04, 0x03, 0x23, 0x1E, 0x58, 0x00, 0x02, 0x03, 0x07, 0x01, 0x58,
- 0x00, 0x02, 0x03, 0x0C, 0x02, 0x10, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x12, 0x00, 0x02, 0x03, 0x11,
- 0x1E, 0x5C, 0x00, 0x03, 0x03, 0x23, 0x03, 0x04, 0x1E, 0x5A, 0x00, 0x02, 0x03, 0x23, 0x01, 0x56,
- 0x00, 0x02, 0x03, 0x27, 0x1E, 0x5E, 0x00, 0x02, 0x03, 0x31, 0x01, 0x54, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x0D, 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46,
- 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00, 0x66, 0x00, 0x6E, 0x1E, 0x64, 0x00, 0x03,
- 0x03, 0x01, 0x03, 0x07, 0x01, 0x5A, 0x00, 0x02, 0x03, 0x01, 0x01, 0x5C, 0x00, 0x02, 0x03, 0x02,
- 0x1E, 0x68, 0x00, 0x03, 0x03, 0x07, 0x03, 0x23, 0x1E, 0x60, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x66,
- 0x00, 0x03, 0x03, 0x0C, 0x03, 0x07, 0x01, 0x60, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x68, 0x00, 0x03,
- 0x03, 0x23, 0x03, 0x07, 0x1E, 0x62, 0x00, 0x02, 0x03, 0x23, 0x02, 0x18, 0x00, 0x02, 0x03, 0x26,
- 0x01, 0x5E, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x64, 0x00, 0x03, 0x03, 0x41, 0x03, 0x07, 0x01, 0x5A,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28,
- 0x00, 0x2E, 0x00, 0x34, 0x1E, 0x6A, 0x00, 0x02, 0x03, 0x07, 0x01, 0x64, 0x00, 0x02, 0x03, 0x0C,
- 0x1E, 0x6C, 0x00, 0x02, 0x03, 0x23, 0x02, 0x1A, 0x00, 0x02, 0x03, 0x26, 0x01, 0x62, 0x00, 0x02,
- 0x03, 0x27, 0x1E, 0x70, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x6E, 0x00, 0x02, 0x03, 0x31, 0x00, 0x2D,
- 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x78, 0x00, 0x7E, 0x00, 0x86, 0x00, 0x8E,
- 0x00, 0x96, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0, 0x00, 0xB8, 0x00, 0xC0, 0x00, 0xC8,
- 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEE, 0x00, 0xF4, 0x00, 0xFA, 0x01, 0x00,
- 0x01, 0x06, 0x01, 0x0C, 0x01, 0x12, 0x01, 0x1A, 0x01, 0x22, 0x01, 0x2A, 0x01, 0x32, 0x01, 0x3A,
- 0x01, 0x42, 0x01, 0x4A, 0x01, 0x50, 0x01, 0x58, 0x01, 0x5E, 0x01, 0x64, 0x01, 0x6A, 0x01, 0x70,
- 0x01, 0x76, 0x01, 0x7E, 0x01, 0x84, 0x01, 0x8C, 0x01, 0x92, 0x1E, 0xEA, 0x00, 0x03, 0x03, 0x00,
- 0x03, 0x1B, 0x00, 0xD9, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xE8, 0x00, 0x03, 0x03, 0x01, 0x03, 0x1B,
- 0x00, 0xDA, 0x00, 0x02, 0x03, 0x01, 0x00, 0xDB, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x78, 0x00, 0x03,
- 0x03, 0x03, 0x03, 0x01, 0x1E, 0xEE, 0x00, 0x03, 0x03, 0x03, 0x03, 0x1B, 0x1E, 0x78, 0x00, 0x03,
- 0x03, 0x03, 0x03, 0x41, 0x01, 0x68, 0x00, 0x02, 0x03, 0x03, 0x1E, 0x7A, 0x00, 0x03, 0x03, 0x04,
- 0x03, 0x08, 0x01, 0x6A, 0x00, 0x02, 0x03, 0x04, 0x01, 0x6C, 0x00, 0x02, 0x03, 0x06, 0x01, 0xDB,
- 0x00, 0x03, 0x03, 0x08, 0x03, 0x00, 0x01, 0xD7, 0x00, 0x03, 0x03, 0x08, 0x03, 0x01, 0x01, 0xD5,
- 0x00, 0x03, 0x03, 0x08, 0x03, 0x04, 0x01, 0xD9, 0x00, 0x03, 0x03, 0x08, 0x03, 0x0C, 0x01, 0xDB,
- 0x00, 0x03, 0x03, 0x08, 0x03, 0x40, 0x01, 0xD7, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41, 0x00, 0xDC,
- 0x00, 0x02, 0x03, 0x08, 0x1E, 0xEC, 0x00, 0x03, 0x03, 0x09, 0x03, 0x1B, 0x1E, 0xE6, 0x00, 0x02,
- 0x03, 0x09, 0x01, 0x6E, 0x00, 0x02, 0x03, 0x0A, 0x01, 0x70, 0x00, 0x02, 0x03, 0x0B, 0x01, 0xD3,
- 0x00, 0x02, 0x03, 0x0C, 0x02, 0x14, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x16, 0x00, 0x02, 0x03, 0x11,
- 0x1E, 0xEA, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x00, 0x1E, 0xE8, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x01,
- 0x1E, 0xEE, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x03, 0x1E, 0xEC, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x09,
- 0x1E, 0xF0, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x23, 0x1E, 0xEA, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x40,
- 0x1E, 0xE8, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x41, 0x01, 0xAF, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0xF0,
- 0x00, 0x03, 0x03, 0x23, 0x03, 0x1B, 0x1E, 0xE4, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x72, 0x00, 0x02,
- 0x03, 0x24, 0x01, 0x72, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x76, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x74,
- 0x00, 0x02, 0x03, 0x30, 0x1E, 0xEA, 0x00, 0x03, 0x03, 0x40, 0x03, 0x1B, 0x00, 0xD9, 0x00, 0x02,
- 0x03, 0x40, 0x1E, 0xE8, 0x00, 0x03, 0x03, 0x41, 0x03, 0x1B, 0x00, 0xDA, 0x00, 0x02, 0x03, 0x41,
- 0x01, 0xD7, 0x00, 0x02, 0x03, 0x44, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0x7C, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0x7E, 0x00, 0x02, 0x03, 0x23, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x1E, 0x80, 0x00, 0x02, 0x03, 0x00,
- 0x1E, 0x82, 0x00, 0x02, 0x03, 0x01, 0x01, 0x74, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x86, 0x00, 0x02,
- 0x03, 0x07, 0x1E, 0x84, 0x00, 0x02, 0x03, 0x08, 0x1E, 0x88, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x80,
- 0x00, 0x02, 0x03, 0x40, 0x1E, 0x82, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x1E, 0x8A, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x8C, 0x00, 0x02, 0x03, 0x08, 0x00, 0x0B, 0x00, 0x18,
- 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48,
- 0x00, 0x4E, 0x00, 0x54, 0x1E, 0xF2, 0x00, 0x02, 0x03, 0x00, 0x00, 0xDD, 0x00, 0x02, 0x03, 0x01,
- 0x01, 0x76, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xF8, 0x00, 0x02, 0x03, 0x03, 0x02, 0x32, 0x00, 0x02,
- 0x03, 0x04, 0x1E, 0x8E, 0x00, 0x02, 0x03, 0x07, 0x01, 0x78, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xF6,
- 0x00, 0x02, 0x03, 0x09, 0x1E, 0xF4, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xF2, 0x00, 0x02, 0x03, 0x40,
- 0x00, 0xDD, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22,
- 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x01, 0x79, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x90, 0x00, 0x02,
- 0x03, 0x02, 0x01, 0x7B, 0x00, 0x02, 0x03, 0x07, 0x01, 0x7D, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x92,
- 0x00, 0x02, 0x03, 0x23, 0x1E, 0x94, 0x00, 0x02, 0x03, 0x31, 0x01, 0x79, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x26, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x62, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x7A,
- 0x00, 0x82, 0x00, 0x8A, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00, 0xAC, 0x00, 0xB4,
- 0x00, 0xBC, 0x00, 0xC4, 0x00, 0xCC, 0x00, 0xD4, 0x00, 0xDC, 0x00, 0xE2, 0x00, 0xEA, 0x00, 0xF0,
- 0x00, 0xF8, 0x00, 0xFE, 0x01, 0x04, 0x01, 0x0C, 0x01, 0x14, 0x01, 0x1A, 0x01, 0x20, 0x01, 0x26,
- 0x01, 0x2C, 0x01, 0x34, 0x01, 0x3C, 0x01, 0x42, 0x01, 0x48, 0x01, 0x4E, 0x01, 0x54, 0x00, 0xE0,
- 0x00, 0x02, 0x03, 0x00, 0x00, 0xE1, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xA7, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x00, 0x1E, 0xA5, 0x00, 0x03, 0x03, 0x02, 0x03, 0x01, 0x1E, 0xAB, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x03, 0x1E, 0xA9, 0x00, 0x03, 0x03, 0x02, 0x03, 0x09, 0x1E, 0xAD, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x23, 0x1E, 0xA7, 0x00, 0x03, 0x03, 0x02, 0x03, 0x40, 0x1E, 0xA5, 0x00, 0x03, 0x03, 0x02,
- 0x03, 0x41, 0x00, 0xE2, 0x00, 0x02, 0x03, 0x02, 0x00, 0xE3, 0x00, 0x02, 0x03, 0x03, 0x01, 0x01,
- 0x00, 0x02, 0x03, 0x04, 0x1E, 0xB1, 0x00, 0x03, 0x03, 0x06, 0x03, 0x00, 0x1E, 0xAF, 0x00, 0x03,
- 0x03, 0x06, 0x03, 0x01, 0x1E, 0xB5, 0x00, 0x03, 0x03, 0x06, 0x03, 0x03, 0x1E, 0xB3, 0x00, 0x03,
- 0x03, 0x06, 0x03, 0x09, 0x1E, 0xB7, 0x00, 0x03, 0x03, 0x06, 0x03, 0x23, 0x1E, 0xB1, 0x00, 0x03,
- 0x03, 0x06, 0x03, 0x40, 0x1E, 0xAF, 0x00, 0x03, 0x03, 0x06, 0x03, 0x41, 0x01, 0x03, 0x00, 0x02,
- 0x03, 0x06, 0x01, 0xE1, 0x00, 0x03, 0x03, 0x07, 0x03, 0x04, 0x02, 0x27, 0x00, 0x02, 0x03, 0x07,
- 0x01, 0xDF, 0x00, 0x03, 0x03, 0x08, 0x03, 0x04, 0x00, 0xE4, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xA3,
- 0x00, 0x02, 0x03, 0x09, 0x01, 0xFB, 0x00, 0x03, 0x03, 0x0A, 0x03, 0x01, 0x01, 0xFB, 0x00, 0x03,
- 0x03, 0x0A, 0x03, 0x41, 0x00, 0xE5, 0x00, 0x02, 0x03, 0x0A, 0x01, 0xCE, 0x00, 0x02, 0x03, 0x0C,
- 0x02, 0x01, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x03, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xAD, 0x00, 0x03,
- 0x03, 0x23, 0x03, 0x02, 0x1E, 0xB7, 0x00, 0x03, 0x03, 0x23, 0x03, 0x06, 0x1E, 0xA1, 0x00, 0x02,
- 0x03, 0x23, 0x1E, 0x01, 0x00, 0x02, 0x03, 0x25, 0x01, 0x05, 0x00, 0x02, 0x03, 0x28, 0x00, 0xE0,
- 0x00, 0x02, 0x03, 0x40, 0x00, 0xE1, 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E,
- 0x00, 0x14, 0x1E, 0x03, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x05, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x07,
- 0x00, 0x02, 0x03, 0x31, 0x00, 0x0A, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30,
- 0x00, 0x36, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x1E, 0x09, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x27, 0x01, 0x07, 0x00, 0x02, 0x03, 0x01, 0x01, 0x09, 0x00, 0x02, 0x03, 0x02, 0x01, 0x0B,
- 0x00, 0x02, 0x03, 0x07, 0x01, 0x0D, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x09, 0x00, 0x03, 0x03, 0x27,
- 0x03, 0x01, 0x1E, 0x09, 0x00, 0x03, 0x03, 0x27, 0x03, 0x41, 0x00, 0xE7, 0x00, 0x02, 0x03, 0x27,
- 0x1E, 0x09, 0x00, 0x03, 0x03, 0x41, 0x03, 0x27, 0x01, 0x07, 0x00, 0x02, 0x03, 0x41, 0x00, 0x06,
- 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x1E, 0x0B, 0x00, 0x02,
- 0x03, 0x07, 0x01, 0x0F, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x0D, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x11,
- 0x00, 0x02, 0x03, 0x27, 0x1E, 0x13, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x0F, 0x00, 0x02, 0x03, 0x31,
- 0x00, 0x21, 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x58, 0x00, 0x60, 0x00, 0x68, 0x00, 0x70,
- 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x8E, 0x00, 0x94, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAC,
- 0x00, 0xB4, 0x00, 0xBA, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xCE, 0x00, 0xD4, 0x00, 0xDA, 0x00, 0xE0,
- 0x00, 0xE6, 0x00, 0xEC, 0x00, 0xF4, 0x00, 0xFA, 0x01, 0x02, 0x01, 0x08, 0x01, 0x0E, 0x01, 0x14,
- 0x01, 0x1A, 0x01, 0x20, 0x00, 0xE8, 0x00, 0x02, 0x03, 0x00, 0x00, 0xE9, 0x00, 0x02, 0x03, 0x01,
- 0x1E, 0xC1, 0x00, 0x03, 0x03, 0x02, 0x03, 0x00, 0x1E, 0xBF, 0x00, 0x03, 0x03, 0x02, 0x03, 0x01,
- 0x1E, 0xC5, 0x00, 0x03, 0x03, 0x02, 0x03, 0x03, 0x1E, 0xC3, 0x00, 0x03, 0x03, 0x02, 0x03, 0x09,
- 0x1E, 0xC7, 0x00, 0x03, 0x03, 0x02, 0x03, 0x23, 0x1E, 0xC1, 0x00, 0x03, 0x03, 0x02, 0x03, 0x40,
- 0x1E, 0xBF, 0x00, 0x03, 0x03, 0x02, 0x03, 0x41, 0x00, 0xEA, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xBD,
- 0x00, 0x02, 0x03, 0x03, 0x1E, 0x15, 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x1E, 0x17, 0x00, 0x03,
- 0x03, 0x04, 0x03, 0x01, 0x1E, 0x15, 0x00, 0x03, 0x03, 0x04, 0x03, 0x40, 0x1E, 0x17, 0x00, 0x03,
- 0x03, 0x04, 0x03, 0x41, 0x01, 0x13, 0x00, 0x02, 0x03, 0x04, 0x1E, 0x1D, 0x00, 0x03, 0x03, 0x06,
- 0x03, 0x27, 0x01, 0x15, 0x00, 0x02, 0x03, 0x06, 0x01, 0x17, 0x00, 0x02, 0x03, 0x07, 0x00, 0xEB,
- 0x00, 0x02, 0x03, 0x08, 0x1E, 0xBB, 0x00, 0x02, 0x03, 0x09, 0x01, 0x1B, 0x00, 0x02, 0x03, 0x0C,
- 0x02, 0x05, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x07, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xC7, 0x00, 0x03,
- 0x03, 0x23, 0x03, 0x02, 0x1E, 0xB9, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x1D, 0x00, 0x03, 0x03, 0x27,
- 0x03, 0x06, 0x02, 0x29, 0x00, 0x02, 0x03, 0x27, 0x01, 0x19, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x19,
- 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x1B, 0x00, 0x02, 0x03, 0x30, 0x00, 0xE8, 0x00, 0x02, 0x03, 0x40,
- 0x00, 0xE9, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x1F, 0x00, 0x02, 0x03, 0x07,
- 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x36,
- 0x00, 0x3C, 0x01, 0xF5, 0x00, 0x02, 0x03, 0x01, 0x01, 0x1D, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x21,
- 0x00, 0x02, 0x03, 0x04, 0x01, 0x1F, 0x00, 0x02, 0x03, 0x06, 0x01, 0x21, 0x00, 0x02, 0x03, 0x07,
- 0x01, 0xE7, 0x00, 0x02, 0x03, 0x0C, 0x01, 0x23, 0x00, 0x02, 0x03, 0x27, 0x01, 0xF5, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30,
- 0x00, 0x36, 0x00, 0x3C, 0x01, 0x25, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x23, 0x00, 0x02, 0x03, 0x07,
- 0x1E, 0x27, 0x00, 0x02, 0x03, 0x08, 0x02, 0x1F, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x25, 0x00, 0x02,
- 0x03, 0x23, 0x1E, 0x29, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x2B, 0x00, 0x02, 0x03, 0x2E, 0x1E, 0x96,
- 0x00, 0x02, 0x03, 0x31, 0x00, 0x13, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40,
- 0x00, 0x46, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0x00, 0x74,
- 0x00, 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x92, 0x00, 0x98, 0x00, 0xEC, 0x00, 0x02,
- 0x03, 0x00, 0x00, 0xED, 0x00, 0x02, 0x03, 0x01, 0x00, 0xEE, 0x00, 0x02, 0x03, 0x02, 0x01, 0x29,
- 0x00, 0x02, 0x03, 0x03, 0x01, 0x2B, 0x00, 0x02, 0x03, 0x04, 0x01, 0x2D, 0x00, 0x02, 0x03, 0x06,
- 0x1E, 0x2F, 0x00, 0x03, 0x03, 0x08, 0x03, 0x01, 0x1E, 0x2F, 0x00, 0x03, 0x03, 0x08, 0x03, 0x41,
- 0x00, 0xEF, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xC9, 0x00, 0x02, 0x03, 0x09, 0x01, 0xD0, 0x00, 0x02,
- 0x03, 0x0C, 0x02, 0x09, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x0B, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xCB,
- 0x00, 0x02, 0x03, 0x23, 0x01, 0x2F, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x2D, 0x00, 0x02, 0x03, 0x30,
- 0x00, 0xEC, 0x00, 0x02, 0x03, 0x40, 0x00, 0xED, 0x00, 0x02, 0x03, 0x41, 0x1E, 0x2F, 0x00, 0x02,
- 0x03, 0x44, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x01, 0x35, 0x00, 0x02, 0x03, 0x02, 0x01, 0xF0,
- 0x00, 0x02, 0x03, 0x0C, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26,
- 0x00, 0x2C, 0x1E, 0x31, 0x00, 0x02, 0x03, 0x01, 0x01, 0xE9, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x33,
- 0x00, 0x02, 0x03, 0x23, 0x01, 0x37, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x35, 0x00, 0x02, 0x03, 0x31,
- 0x1E, 0x31, 0x00, 0x02, 0x03, 0x41, 0x00, 0x09, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x22, 0x00, 0x28,
- 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x01, 0x3A, 0x00, 0x02, 0x03, 0x01,
- 0x1E, 0x39, 0x00, 0x03, 0x03, 0x04, 0x03, 0x23, 0x01, 0x3E, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x39,
- 0x00, 0x03, 0x03, 0x23, 0x03, 0x04, 0x1E, 0x37, 0x00, 0x02, 0x03, 0x23, 0x01, 0x3C, 0x00, 0x02,
- 0x03, 0x27, 0x1E, 0x3D, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x3B, 0x00, 0x02, 0x03, 0x31, 0x01, 0x3A,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x1E, 0x3F,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0x41, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x43, 0x00, 0x02, 0x03, 0x23,
- 0x1E, 0x3F, 0x00, 0x02, 0x03, 0x41, 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A,
- 0x00, 0x30, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x01, 0xF9,
- 0x00, 0x02, 0x03, 0x00, 0x01, 0x44, 0x00, 0x02, 0x03, 0x01, 0x00, 0xF1, 0x00, 0x02, 0x03, 0x03,
- 0x1E, 0x45, 0x00, 0x02, 0x03, 0x07, 0x01, 0x48, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x47, 0x00, 0x02,
- 0x03, 0x23, 0x01, 0x46, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x4B, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x49,
- 0x00, 0x02, 0x03, 0x31, 0x01, 0xF9, 0x00, 0x02, 0x03, 0x40, 0x01, 0x44, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x34, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x78, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8E, 0x00, 0x96,
- 0x00, 0x9E, 0x00, 0xA6, 0x00, 0xAE, 0x00, 0xB6, 0x00, 0xBE, 0x00, 0xC4, 0x00, 0xCC, 0x00, 0xD4,
- 0x00, 0xDC, 0x00, 0xE4, 0x00, 0xEC, 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x02, 0x01, 0x0A, 0x01, 0x12,
- 0x01, 0x1A, 0x01, 0x20, 0x01, 0x26, 0x01, 0x2E, 0x01, 0x34, 0x01, 0x3C, 0x01, 0x42, 0x01, 0x4A,
- 0x01, 0x50, 0x01, 0x56, 0x01, 0x5C, 0x01, 0x62, 0x01, 0x68, 0x01, 0x70, 0x01, 0x78, 0x01, 0x80,
- 0x01, 0x88, 0x01, 0x90, 0x01, 0x98, 0x01, 0xA0, 0x01, 0xA6, 0x01, 0xAE, 0x01, 0xB6, 0x01, 0xBC,
- 0x01, 0xC4, 0x01, 0xCA, 0x01, 0xD2, 0x01, 0xD8, 0x01, 0xE0, 0x1E, 0xDD, 0x00, 0x03, 0x03, 0x00,
- 0x03, 0x1B, 0x00, 0xF2, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xDB, 0x00, 0x03, 0x03, 0x01, 0x03, 0x1B,
- 0x00, 0xF3, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xD3, 0x00, 0x03, 0x03, 0x02, 0x03, 0x00, 0x1E, 0xD1,
- 0x00, 0x03, 0x03, 0x02, 0x03, 0x01, 0x1E, 0xD7, 0x00, 0x03, 0x03, 0x02, 0x03, 0x03, 0x1E, 0xD5,
- 0x00, 0x03, 0x03, 0x02, 0x03, 0x09, 0x1E, 0xD9, 0x00, 0x03, 0x03, 0x02, 0x03, 0x23, 0x1E, 0xD3,
- 0x00, 0x03, 0x03, 0x02, 0x03, 0x40, 0x1E, 0xD1, 0x00, 0x03, 0x03, 0x02, 0x03, 0x41, 0x00, 0xF4,
- 0x00, 0x02, 0x03, 0x02, 0x1E, 0x4D, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x02, 0x2D, 0x00, 0x03,
- 0x03, 0x03, 0x03, 0x04, 0x1E, 0x4F, 0x00, 0x03, 0x03, 0x03, 0x03, 0x08, 0x1E, 0xE1, 0x00, 0x03,
- 0x03, 0x03, 0x03, 0x1B, 0x1E, 0x4D, 0x00, 0x03, 0x03, 0x03, 0x03, 0x41, 0x00, 0xF5, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0x51, 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x1E, 0x53, 0x00, 0x03, 0x03, 0x04,
- 0x03, 0x01, 0x01, 0xED, 0x00, 0x03, 0x03, 0x04, 0x03, 0x28, 0x1E, 0x51, 0x00, 0x03, 0x03, 0x04,
- 0x03, 0x40, 0x1E, 0x53, 0x00, 0x03, 0x03, 0x04, 0x03, 0x41, 0x01, 0x4D, 0x00, 0x02, 0x03, 0x04,
- 0x01, 0x4F, 0x00, 0x02, 0x03, 0x06, 0x02, 0x31, 0x00, 0x03, 0x03, 0x07, 0x03, 0x04, 0x02, 0x2F,
- 0x00, 0x02, 0x03, 0x07, 0x02, 0x2B, 0x00, 0x03, 0x03, 0x08, 0x03, 0x04, 0x00, 0xF6, 0x00, 0x02,
- 0x03, 0x08, 0x1E, 0xDF, 0x00, 0x03, 0x03, 0x09, 0x03, 0x1B, 0x1E, 0xCF, 0x00, 0x02, 0x03, 0x09,
- 0x01, 0x51, 0x00, 0x02, 0x03, 0x0B, 0x01, 0xD2, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x0D, 0x00, 0x02,
- 0x03, 0x0F, 0x02, 0x0F, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xDD, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x00,
- 0x1E, 0xDB, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x01, 0x1E, 0xE1, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x03,
- 0x1E, 0xDF, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x09, 0x1E, 0xE3, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x23,
- 0x1E, 0xDD, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x40, 0x1E, 0xDB, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x41,
- 0x01, 0xA1, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0xD9, 0x00, 0x03, 0x03, 0x23, 0x03, 0x02, 0x1E, 0xE3,
- 0x00, 0x03, 0x03, 0x23, 0x03, 0x1B, 0x1E, 0xCD, 0x00, 0x02, 0x03, 0x23, 0x01, 0xED, 0x00, 0x03,
- 0x03, 0x28, 0x03, 0x04, 0x01, 0xEB, 0x00, 0x02, 0x03, 0x28, 0x1E, 0xDD, 0x00, 0x03, 0x03, 0x40,
- 0x03, 0x1B, 0x00, 0xF2, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xDB, 0x00, 0x03, 0x03, 0x41, 0x03, 0x1B,
- 0x00, 0xF3, 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x1E, 0x55,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0x57, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x55, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x0B, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x01, 0x55, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x5D,
- 0x00, 0x03, 0x03, 0x04, 0x03, 0x23, 0x1E, 0x59, 0x00, 0x02, 0x03, 0x07, 0x01, 0x59, 0x00, 0x02,
- 0x03, 0x0C, 0x02, 0x11, 0x00, 0x02, 0x03, 0x0F, 0x02, 0x13, 0x00, 0x02, 0x03, 0x11, 0x1E, 0x5D,
- 0x00, 0x03, 0x03, 0x23, 0x03, 0x04, 0x1E, 0x5B, 0x00, 0x02, 0x03, 0x23, 0x01, 0x57, 0x00, 0x02,
- 0x03, 0x27, 0x1E, 0x5F, 0x00, 0x02, 0x03, 0x31, 0x01, 0x55, 0x00, 0x02, 0x03, 0x41, 0x00, 0x0D,
- 0x00, 0x1C, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x46, 0x00, 0x4C,
- 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00, 0x66, 0x00, 0x6E, 0x1E, 0x65, 0x00, 0x03, 0x03, 0x01,
- 0x03, 0x07, 0x01, 0x5B, 0x00, 0x02, 0x03, 0x01, 0x01, 0x5D, 0x00, 0x02, 0x03, 0x02, 0x1E, 0x69,
- 0x00, 0x03, 0x03, 0x07, 0x03, 0x23, 0x1E, 0x61, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x67, 0x00, 0x03,
- 0x03, 0x0C, 0x03, 0x07, 0x01, 0x61, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x69, 0x00, 0x03, 0x03, 0x23,
- 0x03, 0x07, 0x1E, 0x63, 0x00, 0x02, 0x03, 0x23, 0x02, 0x19, 0x00, 0x02, 0x03, 0x26, 0x01, 0x5F,
- 0x00, 0x02, 0x03, 0x27, 0x1E, 0x65, 0x00, 0x03, 0x03, 0x41, 0x03, 0x07, 0x01, 0x5B, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30,
- 0x00, 0x36, 0x00, 0x3C, 0x1E, 0x6B, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x97, 0x00, 0x02, 0x03, 0x08,
- 0x01, 0x65, 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x6D, 0x00, 0x02, 0x03, 0x23, 0x02, 0x1B, 0x00, 0x02,
- 0x03, 0x26, 0x01, 0x63, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x71, 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x6F,
- 0x00, 0x02, 0x03, 0x31, 0x00, 0x2D, 0x00, 0x5C, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x72, 0x00, 0x78,
- 0x00, 0x7E, 0x00, 0x86, 0x00, 0x8E, 0x00, 0x96, 0x00, 0x9C, 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0,
- 0x00, 0xB8, 0x00, 0xC0, 0x00, 0xC8, 0x00, 0xD0, 0x00, 0xD8, 0x00, 0xE0, 0x00, 0xE6, 0x00, 0xEE,
- 0x00, 0xF4, 0x00, 0xFA, 0x01, 0x00, 0x01, 0x06, 0x01, 0x0C, 0x01, 0x12, 0x01, 0x1A, 0x01, 0x22,
- 0x01, 0x2A, 0x01, 0x32, 0x01, 0x3A, 0x01, 0x42, 0x01, 0x4A, 0x01, 0x50, 0x01, 0x58, 0x01, 0x5E,
- 0x01, 0x64, 0x01, 0x6A, 0x01, 0x70, 0x01, 0x76, 0x01, 0x7E, 0x01, 0x84, 0x01, 0x8C, 0x01, 0x92,
- 0x1E, 0xEB, 0x00, 0x03, 0x03, 0x00, 0x03, 0x1B, 0x00, 0xF9, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xE9,
- 0x00, 0x03, 0x03, 0x01, 0x03, 0x1B, 0x00, 0xFA, 0x00, 0x02, 0x03, 0x01, 0x00, 0xFB, 0x00, 0x02,
- 0x03, 0x02, 0x1E, 0x79, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x1E, 0xEF, 0x00, 0x03, 0x03, 0x03,
- 0x03, 0x1B, 0x1E, 0x79, 0x00, 0x03, 0x03, 0x03, 0x03, 0x41, 0x01, 0x69, 0x00, 0x02, 0x03, 0x03,
- 0x1E, 0x7B, 0x00, 0x03, 0x03, 0x04, 0x03, 0x08, 0x01, 0x6B, 0x00, 0x02, 0x03, 0x04, 0x01, 0x6D,
- 0x00, 0x02, 0x03, 0x06, 0x01, 0xDC, 0x00, 0x03, 0x03, 0x08, 0x03, 0x00, 0x01, 0xD8, 0x00, 0x03,
- 0x03, 0x08, 0x03, 0x01, 0x01, 0xD6, 0x00, 0x03, 0x03, 0x08, 0x03, 0x04, 0x01, 0xDA, 0x00, 0x03,
- 0x03, 0x08, 0x03, 0x0C, 0x01, 0xDC, 0x00, 0x03, 0x03, 0x08, 0x03, 0x40, 0x01, 0xD8, 0x00, 0x03,
- 0x03, 0x08, 0x03, 0x41, 0x00, 0xFC, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xED, 0x00, 0x03, 0x03, 0x09,
- 0x03, 0x1B, 0x1E, 0xE7, 0x00, 0x02, 0x03, 0x09, 0x01, 0x6F, 0x00, 0x02, 0x03, 0x0A, 0x01, 0x71,
- 0x00, 0x02, 0x03, 0x0B, 0x01, 0xD4, 0x00, 0x02, 0x03, 0x0C, 0x02, 0x15, 0x00, 0x02, 0x03, 0x0F,
- 0x02, 0x17, 0x00, 0x02, 0x03, 0x11, 0x1E, 0xEB, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x00, 0x1E, 0xE9,
- 0x00, 0x03, 0x03, 0x1B, 0x03, 0x01, 0x1E, 0xEF, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x03, 0x1E, 0xED,
- 0x00, 0x03, 0x03, 0x1B, 0x03, 0x09, 0x1E, 0xF1, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x23, 0x1E, 0xEB,
- 0x00, 0x03, 0x03, 0x1B, 0x03, 0x40, 0x1E, 0xE9, 0x00, 0x03, 0x03, 0x1B, 0x03, 0x41, 0x01, 0xB0,
- 0x00, 0x02, 0x03, 0x1B, 0x1E, 0xF1, 0x00, 0x03, 0x03, 0x23, 0x03, 0x1B, 0x1E, 0xE5, 0x00, 0x02,
- 0x03, 0x23, 0x1E, 0x73, 0x00, 0x02, 0x03, 0x24, 0x01, 0x73, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x77,
- 0x00, 0x02, 0x03, 0x2D, 0x1E, 0x75, 0x00, 0x02, 0x03, 0x30, 0x1E, 0xEB, 0x00, 0x03, 0x03, 0x40,
- 0x03, 0x1B, 0x00, 0xF9, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xE9, 0x00, 0x03, 0x03, 0x41, 0x03, 0x1B,
- 0x00, 0xFA, 0x00, 0x02, 0x03, 0x41, 0x01, 0xD8, 0x00, 0x02, 0x03, 0x44, 0x00, 0x02, 0x00, 0x06,
- 0x00, 0x0C, 0x1E, 0x7D, 0x00, 0x02, 0x03, 0x03, 0x1E, 0x7F, 0x00, 0x02, 0x03, 0x23, 0x00, 0x09,
- 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E,
- 0x00, 0x44, 0x1E, 0x81, 0x00, 0x02, 0x03, 0x00, 0x1E, 0x83, 0x00, 0x02, 0x03, 0x01, 0x01, 0x75,
- 0x00, 0x02, 0x03, 0x02, 0x1E, 0x87, 0x00, 0x02, 0x03, 0x07, 0x1E, 0x85, 0x00, 0x02, 0x03, 0x08,
- 0x1E, 0x98, 0x00, 0x02, 0x03, 0x0A, 0x1E, 0x89, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x81, 0x00, 0x02,
- 0x03, 0x40, 0x1E, 0x83, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0x8B,
- 0x00, 0x02, 0x03, 0x07, 0x1E, 0x8D, 0x00, 0x02, 0x03, 0x08, 0x00, 0x0C, 0x00, 0x1A, 0x00, 0x20,
- 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x44, 0x00, 0x4A, 0x00, 0x50,
- 0x00, 0x56, 0x00, 0x5C, 0x1E, 0xF3, 0x00, 0x02, 0x03, 0x00, 0x00, 0xFD, 0x00, 0x02, 0x03, 0x01,
- 0x01, 0x77, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xF9, 0x00, 0x02, 0x03, 0x03, 0x02, 0x33, 0x00, 0x02,
- 0x03, 0x04, 0x1E, 0x8F, 0x00, 0x02, 0x03, 0x07, 0x00, 0xFF, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xF7,
- 0x00, 0x02, 0x03, 0x09, 0x1E, 0x99, 0x00, 0x02, 0x03, 0x0A, 0x1E, 0xF5, 0x00, 0x02, 0x03, 0x23,
- 0x1E, 0xF3, 0x00, 0x02, 0x03, 0x40, 0x00, 0xFD, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10,
- 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x01, 0x7A, 0x00, 0x02,
- 0x03, 0x01, 0x1E, 0x91, 0x00, 0x02, 0x03, 0x02, 0x01, 0x7C, 0x00, 0x02, 0x03, 0x07, 0x01, 0x7E,
- 0x00, 0x02, 0x03, 0x0C, 0x1E, 0x93, 0x00, 0x02, 0x03, 0x23, 0x1E, 0x95, 0x00, 0x02, 0x03, 0x31,
- 0x01, 0x7A, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22,
- 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xA6, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xA4, 0x00, 0x02,
- 0x03, 0x01, 0x1E, 0xAA, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xA8, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xAC,
- 0x00, 0x02, 0x03, 0x23, 0x1E, 0xA6, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xA4, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x04, 0x01, 0xDE, 0x00, 0x02, 0x03, 0x04, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x01, 0xFA, 0x00, 0x02, 0x03, 0x01, 0x01, 0xFA, 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08,
- 0x00, 0x0E, 0x00, 0x14, 0x01, 0xFC, 0x00, 0x02, 0x03, 0x01, 0x01, 0xE2, 0x00, 0x02, 0x03, 0x04,
- 0x01, 0xFC, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0x08, 0x00, 0x02,
- 0x03, 0x01, 0x1E, 0x08, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xC0, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xBE,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0xC4, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xC2, 0x00, 0x02, 0x03, 0x09,
- 0x1E, 0xC6, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xC0, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xBE, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0x2E, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x2E,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xDC, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0xDA, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xD2, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xD0,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0xD6, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xD4, 0x00, 0x02, 0x03, 0x09,
- 0x1E, 0xD8, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xD2, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xD0, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1E, 0x4C,
- 0x00, 0x02, 0x03, 0x01, 0x02, 0x2C, 0x00, 0x02, 0x03, 0x04, 0x1E, 0x4E, 0x00, 0x02, 0x03, 0x08,
- 0x1E, 0xE0, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0x4C, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04,
- 0x02, 0x2A, 0x00, 0x02, 0x03, 0x04, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x01, 0xFE, 0x00, 0x02,
- 0x03, 0x01, 0x01, 0xFE, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xEA, 0x00, 0x02,
- 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xE8, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x06, 0x00, 0x0E,
- 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x01, 0xDB, 0x00, 0x02, 0x03, 0x00,
- 0x01, 0xD7, 0x00, 0x02, 0x03, 0x01, 0x01, 0xD5, 0x00, 0x02, 0x03, 0x04, 0x01, 0xD9, 0x00, 0x02,
- 0x03, 0x0C, 0x01, 0xDB, 0x00, 0x02, 0x03, 0x40, 0x01, 0xD7, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07,
- 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xA7,
- 0x00, 0x02, 0x03, 0x00, 0x1E, 0xA5, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xAB, 0x00, 0x02, 0x03, 0x03,
- 0x1E, 0xA9, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xAD, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xA7, 0x00, 0x02,
- 0x03, 0x40, 0x1E, 0xA5, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x01, 0xDF, 0x00, 0x02,
- 0x03, 0x04, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x01, 0xFB, 0x00, 0x02, 0x03, 0x01, 0x01, 0xFB,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x01, 0xFD, 0x00, 0x02,
- 0x03, 0x01, 0x01, 0xE3, 0x00, 0x02, 0x03, 0x04, 0x01, 0xFD, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x06, 0x00, 0x0C, 0x1E, 0x09, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x09, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34,
- 0x1E, 0xC1, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xBF, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xC5, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0xC3, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xC7, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xC1,
- 0x00, 0x02, 0x03, 0x40, 0x1E, 0xBF, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x1E, 0x2F, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x2F, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04,
- 0x1E, 0xDD, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xDB, 0x00, 0x02, 0x03, 0x1B,
- 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34,
- 0x1E, 0xD3, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xD1, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xD7, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0xD5, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xD9, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xD3,
- 0x00, 0x02, 0x03, 0x40, 0x1E, 0xD1, 0x00, 0x02, 0x03, 0x41, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1E, 0x4D, 0x00, 0x02, 0x03, 0x01, 0x02, 0x2D, 0x00, 0x02,
- 0x03, 0x04, 0x1E, 0x4F, 0x00, 0x02, 0x03, 0x08, 0x1E, 0xE1, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0x4D,
- 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x02, 0x2B, 0x00, 0x02, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0x06, 0x00, 0x0C, 0x01, 0xFF, 0x00, 0x02, 0x03, 0x01, 0x01, 0xFF, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x01, 0x00, 0x04, 0x1E, 0xEB, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xE9,
- 0x00, 0x02, 0x03, 0x1B, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26,
- 0x00, 0x2C, 0x01, 0xDC, 0x00, 0x02, 0x03, 0x00, 0x01, 0xD8, 0x00, 0x02, 0x03, 0x01, 0x01, 0xD6,
- 0x00, 0x02, 0x03, 0x04, 0x01, 0xDA, 0x00, 0x02, 0x03, 0x0C, 0x01, 0xDC, 0x00, 0x02, 0x03, 0x40,
- 0x01, 0xD8, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22,
- 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xB0, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xAE, 0x00, 0x02,
- 0x03, 0x01, 0x1E, 0xB4, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xB2, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xB6,
- 0x00, 0x02, 0x03, 0x23, 0x1E, 0xB0, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xAE, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34,
- 0x1E, 0xB1, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xAF, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xB5, 0x00, 0x02,
- 0x03, 0x03, 0x1E, 0xB3, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xB7, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xB1,
- 0x00, 0x02, 0x03, 0x40, 0x1E, 0xAF, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x08,
- 0x00, 0x02, 0x03, 0x27, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x09, 0x00, 0x02, 0x03, 0x27, 0x00, 0x04,
- 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x1E, 0x14, 0x00, 0x02, 0x03, 0x00, 0x1E, 0x16,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0x14, 0x00, 0x02, 0x03, 0x40, 0x1E, 0x16, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x04, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x1E, 0x15, 0x00, 0x02, 0x03, 0x00,
- 0x1E, 0x17, 0x00, 0x02, 0x03, 0x01, 0x1E, 0x15, 0x00, 0x02, 0x03, 0x40, 0x1E, 0x17, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x1C, 0x00, 0x02, 0x03, 0x27, 0x00, 0x01, 0x00, 0x04,
- 0x1E, 0x1D, 0x00, 0x02, 0x03, 0x27, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E,
- 0x00, 0x24, 0x1E, 0x50, 0x00, 0x02, 0x03, 0x00, 0x1E, 0x52, 0x00, 0x02, 0x03, 0x01, 0x01, 0xEC,
- 0x00, 0x02, 0x03, 0x28, 0x1E, 0x50, 0x00, 0x02, 0x03, 0x40, 0x1E, 0x52, 0x00, 0x02, 0x03, 0x41,
- 0x00, 0x05, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x1E, 0x51, 0x00, 0x02,
- 0x03, 0x00, 0x1E, 0x53, 0x00, 0x02, 0x03, 0x01, 0x01, 0xED, 0x00, 0x02, 0x03, 0x28, 0x1E, 0x51,
- 0x00, 0x02, 0x03, 0x40, 0x1E, 0x53, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x64,
- 0x00, 0x02, 0x03, 0x07, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x65, 0x00, 0x02, 0x03, 0x07, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0x66, 0x00, 0x02, 0x03, 0x07, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x67, 0x00, 0x02,
- 0x03, 0x07, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x1E, 0x78, 0x00, 0x02, 0x03, 0x01,
- 0x1E, 0xEE, 0x00, 0x02, 0x03, 0x1B, 0x1E, 0x78, 0x00, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x08,
- 0x00, 0x0E, 0x00, 0x14, 0x1E, 0x79, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xEF, 0x00, 0x02, 0x03, 0x1B,
- 0x1E, 0x79, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x7A, 0x00, 0x02, 0x03, 0x08,
- 0x00, 0x01, 0x00, 0x04, 0x1E, 0x7B, 0x00, 0x02, 0x03, 0x08, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x9B,
- 0x00, 0x02, 0x03, 0x07, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28,
- 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xDC, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xDA, 0x00, 0x02, 0x03, 0x01,
- 0x1E, 0xE0, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xDE, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xE2, 0x00, 0x02,
- 0x03, 0x23, 0x1E, 0xDC, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xDA, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07,
- 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xDD,
- 0x00, 0x02, 0x03, 0x00, 0x1E, 0xDB, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xE1, 0x00, 0x02, 0x03, 0x03,
- 0x1E, 0xDF, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xE3, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xDD, 0x00, 0x02,
- 0x03, 0x40, 0x1E, 0xDB, 0x00, 0x02, 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C,
- 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x34, 0x1E, 0xEA, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xE8,
- 0x00, 0x02, 0x03, 0x01, 0x1E, 0xEE, 0x00, 0x02, 0x03, 0x03, 0x1E, 0xEC, 0x00, 0x02, 0x03, 0x09,
- 0x1E, 0xF0, 0x00, 0x02, 0x03, 0x23, 0x1E, 0xEA, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xE8, 0x00, 0x02,
- 0x03, 0x41, 0x00, 0x07, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E,
- 0x00, 0x34, 0x1E, 0xEB, 0x00, 0x02, 0x03, 0x00, 0x1E, 0xE9, 0x00, 0x02, 0x03, 0x01, 0x1E, 0xEF,
- 0x00, 0x02, 0x03, 0x03, 0x1E, 0xED, 0x00, 0x02, 0x03, 0x09, 0x1E, 0xF1, 0x00, 0x02, 0x03, 0x23,
- 0x1E, 0xEB, 0x00, 0x02, 0x03, 0x40, 0x1E, 0xE9, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x04,
- 0x01, 0xEE, 0x00, 0x02, 0x03, 0x0C, 0x00, 0x01, 0x00, 0x04, 0x01, 0xEC, 0x00, 0x02, 0x03, 0x04,
- 0x00, 0x01, 0x00, 0x04, 0x01, 0xED, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x01, 0xE0,
- 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x01, 0xE1, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0x1C, 0x00, 0x02, 0x03, 0x06, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x1D, 0x00, 0x02,
- 0x03, 0x06, 0x00, 0x01, 0x00, 0x04, 0x02, 0x30, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04,
- 0x02, 0x31, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x01, 0xEF, 0x00, 0x02, 0x03, 0x0C,
- 0x00, 0x01, 0x00, 0x04, 0x1E, 0x38, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x39,
- 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x5C, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0x5D, 0x00, 0x02, 0x03, 0x04, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x68, 0x00, 0x02,
- 0x03, 0x23, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x69, 0x00, 0x02, 0x03, 0x23, 0x00, 0x01, 0x00, 0x04,
- 0x1E, 0x68, 0x00, 0x02, 0x03, 0x07, 0x00, 0x01, 0x00, 0x04, 0x1E, 0x69, 0x00, 0x02, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0xAC, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xB6, 0x00, 0x02,
- 0x03, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0xAD, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xB7,
- 0x00, 0x02, 0x03, 0x06, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xC6, 0x00, 0x02, 0x03, 0x02, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0xC7, 0x00, 0x02, 0x03, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x1E, 0xD8,
- 0x00, 0x02, 0x03, 0x02, 0x1E, 0xE2, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x1E, 0xD9, 0x00, 0x02, 0x03, 0x02, 0x1E, 0xE3, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04,
- 0x1E, 0xDE, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xDF, 0x00, 0x02, 0x03, 0x1B,
- 0x00, 0x01, 0x00, 0x04, 0x1E, 0xF0, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xF1,
- 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x04, 0x1E, 0xEC, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x01,
- 0x00, 0x04, 0x1E, 0xED, 0x00, 0x02, 0x03, 0x1B, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A,
- 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x1E, 0x30, 0x00, 0x02, 0x03, 0x01, 0x01, 0xE8, 0x00, 0x02,
- 0x03, 0x0C, 0x1E, 0x32, 0x00, 0x02, 0x03, 0x23, 0x01, 0x36, 0x00, 0x02, 0x03, 0x27, 0x1E, 0x34,
- 0x00, 0x02, 0x03, 0x31, 0x1E, 0x30, 0x00, 0x02, 0x03, 0x41, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x01, 0xFA, 0x00, 0x02, 0x03, 0x01, 0x01, 0xFA, 0x00, 0x02, 0x03, 0x41, 0x00, 0x01, 0x00, 0x89,
- 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48,
- 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50,
- 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59,
- 0x00, 0x5A, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67,
- 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F,
- 0x00, 0x70, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78,
- 0x00, 0x79, 0x00, 0x7A, 0x00, 0xC2, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xCA,
- 0x00, 0xCF, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD8, 0x00, 0xD9,
- 0x00, 0xDA, 0x00, 0xDC, 0x00, 0xE2, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE7, 0x00, 0xEA,
- 0x00, 0xEF, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF8, 0x00, 0xF9,
- 0x00, 0xFA, 0x00, 0xFC, 0x01, 0x02, 0x01, 0x03, 0x01, 0x06, 0x01, 0x07, 0x01, 0x12, 0x01, 0x13,
- 0x01, 0x14, 0x01, 0x15, 0x01, 0x4C, 0x01, 0x4D, 0x01, 0x5A, 0x01, 0x5B, 0x01, 0x60, 0x01, 0x61,
- 0x01, 0x68, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x6B, 0x01, 0x7F, 0x01, 0xA0, 0x01, 0xA1, 0x01, 0xAF,
- 0x01, 0xB0, 0x01, 0xB7, 0x01, 0xEA, 0x01, 0xEB, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29,
- 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x92, 0x1E, 0x36, 0x1E, 0x37, 0x1E, 0x5A, 0x1E, 0x5B, 0x1E, 0x60,
- 0x1E, 0x61, 0x1E, 0x62, 0x1E, 0x63, 0x1E, 0xA0, 0x1E, 0xA1, 0x1E, 0xB8, 0x1E, 0xB9, 0x1E, 0xCC,
- 0x1E, 0xCD, 0x1E, 0xCE, 0x1E, 0xCF, 0x1E, 0xE4, 0x1E, 0xE5, 0x1E, 0xE6, 0x1E, 0xE7, 0x21, 0x2A,
- 0x21, 0x2B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x14, 0x13, 0x92, 0x1A, 0xA8, 0x1E, 0x46,
- 0x21, 0xB8, 0x22, 0x76, 0x23, 0x04, 0x00, 0x01, 0x0F, 0x96, 0x01, 0xF2, 0x03, 0xEA, 0x03, 0xF0,
- 0x03, 0xF6, 0x03, 0xFC, 0x04, 0x02, 0x04, 0x08, 0x04, 0x0E, 0x04, 0x14, 0x04, 0x1A, 0x04, 0x20,
- 0x04, 0x26, 0x04, 0x2C, 0x04, 0x32, 0x04, 0x38, 0x04, 0x3E, 0x04, 0x44, 0x04, 0x4A, 0x04, 0x50,
- 0x04, 0x56, 0x04, 0x5C, 0x04, 0x62, 0x04, 0x68, 0x04, 0x6E, 0x04, 0x74, 0x04, 0x7A, 0x04, 0x80,
- 0x04, 0x86, 0x04, 0x8C, 0x04, 0x92, 0x04, 0x98, 0x04, 0x9E, 0x04, 0xA4, 0x04, 0xAA, 0x04, 0xB0,
- 0x04, 0xB6, 0x04, 0xBC, 0x04, 0xC2, 0x04, 0xC8, 0x04, 0xCE, 0x04, 0xD4, 0x04, 0xDA, 0x04, 0xE0,
- 0x04, 0xE6, 0x04, 0xEC, 0x04, 0xF2, 0x04, 0xF8, 0x04, 0xFE, 0x05, 0x04, 0x05, 0x0A, 0x05, 0x10,
- 0x05, 0x16, 0x05, 0x1C, 0x05, 0x22, 0x05, 0x28, 0x05, 0x2E, 0x05, 0x34, 0x05, 0x3A, 0x05, 0x40,
- 0x05, 0x46, 0x05, 0x4C, 0x05, 0x52, 0x05, 0x58, 0x05, 0x5E, 0x05, 0x64, 0x05, 0x6A, 0x05, 0x70,
- 0x05, 0x76, 0x05, 0x7C, 0x05, 0x82, 0x05, 0x88, 0x05, 0x8E, 0x05, 0x94, 0x05, 0x9A, 0x05, 0xA0,
- 0x05, 0xA6, 0x05, 0xAC, 0x05, 0xB2, 0x05, 0xB8, 0x05, 0xBE, 0x05, 0xC4, 0x05, 0xCA, 0x05, 0xD0,
- 0x05, 0xD6, 0x05, 0xDC, 0x05, 0xE2, 0x05, 0xE8, 0x05, 0xEE, 0x05, 0xF4, 0x05, 0xFA, 0x06, 0x00,
- 0x06, 0x06, 0x06, 0x0C, 0x06, 0x12, 0x06, 0x18, 0x06, 0x1E, 0x06, 0x24, 0x06, 0x2A, 0x06, 0x30,
- 0x06, 0x36, 0x06, 0x3C, 0x06, 0x42, 0x06, 0x48, 0x06, 0x4E, 0x06, 0x54, 0x06, 0x5A, 0x06, 0x60,
- 0x06, 0x66, 0x06, 0x6C, 0x06, 0x72, 0x06, 0x78, 0x06, 0x7E, 0x06, 0x84, 0x06, 0x8A, 0x06, 0x90,
- 0x06, 0x96, 0x06, 0x9C, 0x06, 0xA2, 0x06, 0xA8, 0x06, 0xAE, 0x06, 0xB4, 0x06, 0xBA, 0x06, 0xC0,
- 0x06, 0xC6, 0x06, 0xCC, 0x06, 0xD2, 0x06, 0xD8, 0x06, 0xDE, 0x06, 0xE4, 0x06, 0xEA, 0x06, 0xF0,
- 0x06, 0xF6, 0x06, 0xFC, 0x07, 0x02, 0x07, 0x08, 0x07, 0x0E, 0x07, 0x14, 0x07, 0x1A, 0x07, 0x20,
- 0x07, 0x26, 0x07, 0x2C, 0x07, 0x32, 0x07, 0x38, 0x07, 0x3E, 0x07, 0x44, 0x07, 0x4A, 0x07, 0x50,
- 0x07, 0x56, 0x07, 0x5C, 0x07, 0x62, 0x07, 0x68, 0x07, 0x6E, 0x07, 0x74, 0x07, 0x7A, 0x07, 0x80,
- 0x07, 0x86, 0x07, 0x8C, 0x07, 0x92, 0x07, 0x98, 0x07, 0x9E, 0x07, 0xA4, 0x07, 0xAA, 0x07, 0xB0,
- 0x07, 0xB6, 0x07, 0xBC, 0x07, 0xC2, 0x07, 0xC8, 0x07, 0xCE, 0x07, 0xD4, 0x07, 0xDA, 0x07, 0xE0,
- 0x07, 0xE6, 0x07, 0xEC, 0x07, 0xF2, 0x07, 0xF8, 0x07, 0xFE, 0x08, 0x04, 0x08, 0x0A, 0x08, 0x10,
- 0x08, 0x16, 0x08, 0x1C, 0x08, 0x22, 0x08, 0x28, 0x08, 0x2E, 0x08, 0x34, 0x08, 0x3A, 0x08, 0x40,
- 0x08, 0x46, 0x08, 0x4C, 0x08, 0x52, 0x08, 0x58, 0x08, 0x5E, 0x08, 0x64, 0x08, 0x6A, 0x08, 0x70,
- 0x08, 0x76, 0x08, 0x7C, 0x08, 0x82, 0x08, 0x88, 0x08, 0x8E, 0x08, 0x94, 0x08, 0x9A, 0x08, 0xA0,
- 0x08, 0xA6, 0x08, 0xAC, 0x08, 0xB2, 0x08, 0xB8, 0x08, 0xBE, 0x08, 0xC4, 0x08, 0xCA, 0x08, 0xD0,
- 0x08, 0xD6, 0x08, 0xDC, 0x08, 0xE2, 0x08, 0xE8, 0x08, 0xEE, 0x08, 0xF4, 0x08, 0xFA, 0x09, 0x00,
- 0x09, 0x06, 0x09, 0x0C, 0x09, 0x12, 0x09, 0x18, 0x09, 0x1E, 0x09, 0x24, 0x09, 0x2A, 0x09, 0x30,
- 0x09, 0x36, 0x09, 0x3C, 0x09, 0x42, 0x09, 0x48, 0x09, 0x4E, 0x09, 0x54, 0x09, 0x5A, 0x09, 0x60,
- 0x09, 0x66, 0x09, 0x6C, 0x09, 0x72, 0x09, 0x78, 0x09, 0x7E, 0x09, 0x84, 0x09, 0x8A, 0x09, 0x90,
- 0x09, 0x96, 0x09, 0x9C, 0x09, 0xA2, 0x09, 0xA8, 0x09, 0xAE, 0x09, 0xB4, 0x09, 0xBA, 0x09, 0xC0,
- 0x09, 0xC6, 0x09, 0xCC, 0x09, 0xD2, 0x09, 0xD8, 0x09, 0xDE, 0x09, 0xE4, 0x09, 0xEA, 0x09, 0xF0,
- 0x09, 0xF6, 0x09, 0xFC, 0x0A, 0x02, 0x0A, 0x08, 0x0A, 0x0E, 0x0A, 0x14, 0x0A, 0x1A, 0x0A, 0x20,
- 0x0A, 0x26, 0x0A, 0x2C, 0x0A, 0x32, 0x0A, 0x38, 0x0A, 0x3E, 0x0A, 0x44, 0x0A, 0x4A, 0x0A, 0x50,
- 0x0A, 0x56, 0x0A, 0x5C, 0x0A, 0x62, 0x0A, 0x68, 0x0A, 0x6E, 0x0A, 0x74, 0x0A, 0x7A, 0x0A, 0x80,
- 0x0A, 0x86, 0x0A, 0x8C, 0x0A, 0x92, 0x0A, 0x98, 0x0A, 0x9E, 0x0A, 0xA4, 0x0A, 0xAA, 0x0A, 0xB0,
- 0x0A, 0xB6, 0x0A, 0xBC, 0x0A, 0xC2, 0x0A, 0xC8, 0x0A, 0xCE, 0x0A, 0xD4, 0x0A, 0xDA, 0x0A, 0xE0,
- 0x0A, 0xE6, 0x0A, 0xEC, 0x0A, 0xF2, 0x0A, 0xF8, 0x0A, 0xFE, 0x0B, 0x04, 0x0B, 0x0A, 0x0B, 0x10,
- 0x0B, 0x16, 0x0B, 0x1C, 0x0B, 0x22, 0x0B, 0x28, 0x0B, 0x2E, 0x0B, 0x34, 0x0B, 0x3A, 0x0B, 0x40,
- 0x0B, 0x46, 0x0B, 0x4C, 0x0B, 0x52, 0x0B, 0x58, 0x0B, 0x5E, 0x0B, 0x64, 0x0B, 0x6A, 0x0B, 0x70,
- 0x0B, 0x76, 0x0B, 0x7C, 0x0B, 0x82, 0x0B, 0x88, 0x0B, 0x8E, 0x0B, 0x94, 0x0B, 0x9A, 0x0B, 0xA0,
- 0x0B, 0xA6, 0x0B, 0xAC, 0x0B, 0xB2, 0x0B, 0xB8, 0x0B, 0xBE, 0x0B, 0xC4, 0x0B, 0xCA, 0x0B, 0xD0,
- 0x0B, 0xD6, 0x0B, 0xDC, 0x0B, 0xE2, 0x0B, 0xE8, 0x0B, 0xEE, 0x0B, 0xF4, 0x0B, 0xFA, 0x0C, 0x00,
- 0x0C, 0x06, 0x0C, 0x0C, 0x0C, 0x12, 0x0C, 0x18, 0x0C, 0x1E, 0x0C, 0x24, 0x0C, 0x2A, 0x0C, 0x30,
- 0x0C, 0x36, 0x0C, 0x3C, 0x0C, 0x42, 0x0C, 0x48, 0x0C, 0x4E, 0x0C, 0x54, 0x0C, 0x5A, 0x0C, 0x60,
- 0x0C, 0x66, 0x0C, 0x6C, 0x0C, 0x72, 0x0C, 0x78, 0x0C, 0x7E, 0x0C, 0x84, 0x0C, 0x8A, 0x0C, 0x90,
- 0x0C, 0x96, 0x0C, 0x9C, 0x0C, 0xA2, 0x0C, 0xA8, 0x0C, 0xAE, 0x0C, 0xB4, 0x0C, 0xBA, 0x0C, 0xC0,
- 0x0C, 0xC6, 0x0C, 0xCC, 0x0C, 0xD2, 0x0C, 0xD8, 0x0C, 0xDE, 0x0C, 0xE4, 0x0C, 0xEA, 0x0C, 0xF0,
- 0x0C, 0xF6, 0x0C, 0xFC, 0x0D, 0x02, 0x0D, 0x08, 0x0D, 0x0E, 0x0D, 0x14, 0x0D, 0x1A, 0x0D, 0x20,
- 0x0D, 0x26, 0x0D, 0x2C, 0x0D, 0x32, 0x0D, 0x38, 0x0D, 0x3E, 0x0D, 0x44, 0x0D, 0x4A, 0x0D, 0x50,
- 0x0D, 0x56, 0x0D, 0x5C, 0x0D, 0x62, 0x0D, 0x68, 0x0D, 0x6E, 0x0D, 0x74, 0x0D, 0x7A, 0x0D, 0x80,
- 0x0D, 0x86, 0x0D, 0x8C, 0x0D, 0x92, 0x0D, 0x98, 0x0D, 0x9E, 0x0D, 0xA4, 0x0D, 0xAA, 0x0D, 0xB0,
- 0x0D, 0xB6, 0x0D, 0xBC, 0x0D, 0xC2, 0x0D, 0xC8, 0x0D, 0xCE, 0x0D, 0xD4, 0x0D, 0xDA, 0x0D, 0xE0,
- 0x0D, 0xE6, 0x0D, 0xEC, 0x0D, 0xF2, 0x0D, 0xF8, 0x0D, 0xFE, 0x0E, 0x04, 0x0E, 0x0A, 0x0E, 0x10,
- 0x0E, 0x16, 0x0E, 0x1C, 0x0E, 0x22, 0x0E, 0x28, 0x0E, 0x2E, 0x0E, 0x34, 0x0E, 0x3A, 0x0E, 0x40,
- 0x0E, 0x46, 0x0E, 0x4C, 0x0E, 0x52, 0x0E, 0x58, 0x0E, 0x5E, 0x0E, 0x64, 0x0E, 0x6A, 0x0E, 0x70,
- 0x0E, 0x76, 0x0E, 0x7C, 0x0E, 0x82, 0x0E, 0x88, 0x0E, 0x8E, 0x0E, 0x94, 0x0E, 0x9A, 0x0E, 0xA0,
- 0x0E, 0xA6, 0x0E, 0xAC, 0x0E, 0xB2, 0x0E, 0xB8, 0x0E, 0xBE, 0x0E, 0xC4, 0x0E, 0xCA, 0x0E, 0xD0,
- 0x0E, 0xD6, 0x0E, 0xDC, 0x0E, 0xE2, 0x0E, 0xE8, 0x0E, 0xEE, 0x0E, 0xF4, 0x0E, 0xFA, 0x0F, 0x00,
- 0x0F, 0x06, 0x0F, 0x0C, 0x0F, 0x12, 0x0F, 0x18, 0x0F, 0x1E, 0x0F, 0x24, 0x0F, 0x2A, 0x0F, 0x30,
- 0x0F, 0x36, 0x0F, 0x3C, 0x0F, 0x42, 0x0F, 0x48, 0x0F, 0x4E, 0x0F, 0x54, 0x0F, 0x5A, 0x0F, 0x60,
- 0x0F, 0x66, 0x0F, 0x6C, 0x0F, 0x72, 0x0F, 0x78, 0x0F, 0x7E, 0x0F, 0x84, 0x0F, 0x8A, 0x0F, 0x90,
- 0x00, 0x02, 0x00, 0x41, 0x03, 0x00, 0x00, 0x02, 0x00, 0x41, 0x03, 0x01, 0x00, 0x02, 0x00, 0x41,
- 0x03, 0x02, 0x00, 0x02, 0x00, 0x41, 0x03, 0x03, 0x00, 0x02, 0x00, 0x41, 0x03, 0x08, 0x00, 0x02,
- 0x00, 0x41, 0x03, 0x0A, 0x00, 0x02, 0x00, 0x43, 0x03, 0x27, 0x00, 0x02, 0x00, 0x45, 0x03, 0x00,
- 0x00, 0x02, 0x00, 0x45, 0x03, 0x01, 0x00, 0x02, 0x00, 0x45, 0x03, 0x02, 0x00, 0x02, 0x00, 0x45,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x49, 0x03, 0x00, 0x00, 0x02, 0x00, 0x49, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0x49, 0x03, 0x02, 0x00, 0x02, 0x00, 0x49, 0x03, 0x08, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x03,
- 0x00, 0x02, 0x00, 0x4F, 0x03, 0x00, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x01, 0x00, 0x02, 0x00, 0x4F,
- 0x03, 0x02, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x03, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x08, 0x00, 0x02,
- 0x00, 0x55, 0x03, 0x00, 0x00, 0x02, 0x00, 0x55, 0x03, 0x01, 0x00, 0x02, 0x00, 0x55, 0x03, 0x02,
- 0x00, 0x02, 0x00, 0x55, 0x03, 0x08, 0x00, 0x02, 0x00, 0x59, 0x03, 0x01, 0x00, 0x02, 0x00, 0x61,
- 0x03, 0x00, 0x00, 0x02, 0x00, 0x61, 0x03, 0x01, 0x00, 0x02, 0x00, 0x61, 0x03, 0x02, 0x00, 0x02,
- 0x00, 0x61, 0x03, 0x03, 0x00, 0x02, 0x00, 0x61, 0x03, 0x08, 0x00, 0x02, 0x00, 0x61, 0x03, 0x0A,
- 0x00, 0x02, 0x00, 0x63, 0x03, 0x27, 0x00, 0x02, 0x00, 0x65, 0x03, 0x00, 0x00, 0x02, 0x00, 0x65,
- 0x03, 0x01, 0x00, 0x02, 0x00, 0x65, 0x03, 0x02, 0x00, 0x02, 0x00, 0x65, 0x03, 0x08, 0x00, 0x02,
- 0x00, 0x69, 0x03, 0x00, 0x00, 0x02, 0x00, 0x69, 0x03, 0x01, 0x00, 0x02, 0x00, 0x69, 0x03, 0x02,
- 0x00, 0x02, 0x00, 0x69, 0x03, 0x08, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x03, 0x00, 0x02, 0x00, 0x6F,
- 0x03, 0x00, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x01, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x02, 0x00, 0x02,
- 0x00, 0x6F, 0x03, 0x03, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x08, 0x00, 0x02, 0x00, 0x75, 0x03, 0x00,
- 0x00, 0x02, 0x00, 0x75, 0x03, 0x01, 0x00, 0x02, 0x00, 0x75, 0x03, 0x02, 0x00, 0x02, 0x00, 0x75,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x79, 0x03, 0x01, 0x00, 0x02, 0x00, 0x79, 0x03, 0x08, 0x00, 0x02,
- 0x00, 0x41, 0x03, 0x04, 0x00, 0x02, 0x00, 0x61, 0x03, 0x04, 0x00, 0x02, 0x00, 0x41, 0x03, 0x06,
- 0x00, 0x02, 0x00, 0x61, 0x03, 0x06, 0x00, 0x02, 0x00, 0x41, 0x03, 0x28, 0x00, 0x02, 0x00, 0x61,
- 0x03, 0x28, 0x00, 0x02, 0x00, 0x43, 0x03, 0x01, 0x00, 0x02, 0x00, 0x63, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0x43, 0x03, 0x02, 0x00, 0x02, 0x00, 0x63, 0x03, 0x02, 0x00, 0x02, 0x00, 0x43, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x63, 0x03, 0x07, 0x00, 0x02, 0x00, 0x43, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x63,
- 0x03, 0x0C, 0x00, 0x02, 0x00, 0x44, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x64, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x45, 0x03, 0x04, 0x00, 0x02, 0x00, 0x65, 0x03, 0x04, 0x00, 0x02, 0x00, 0x45, 0x03, 0x06,
- 0x00, 0x02, 0x00, 0x65, 0x03, 0x06, 0x00, 0x02, 0x00, 0x45, 0x03, 0x07, 0x00, 0x02, 0x00, 0x65,
- 0x03, 0x07, 0x00, 0x02, 0x00, 0x45, 0x03, 0x28, 0x00, 0x02, 0x00, 0x65, 0x03, 0x28, 0x00, 0x02,
- 0x00, 0x45, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x65, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x47, 0x03, 0x02,
- 0x00, 0x02, 0x00, 0x67, 0x03, 0x02, 0x00, 0x02, 0x00, 0x47, 0x03, 0x06, 0x00, 0x02, 0x00, 0x67,
- 0x03, 0x06, 0x00, 0x02, 0x00, 0x47, 0x03, 0x07, 0x00, 0x02, 0x00, 0x67, 0x03, 0x07, 0x00, 0x02,
- 0x00, 0x47, 0x03, 0x27, 0x00, 0x02, 0x00, 0x67, 0x03, 0x27, 0x00, 0x02, 0x00, 0x48, 0x03, 0x02,
- 0x00, 0x02, 0x00, 0x68, 0x03, 0x02, 0x00, 0x02, 0x00, 0x49, 0x03, 0x03, 0x00, 0x02, 0x00, 0x69,
- 0x03, 0x03, 0x00, 0x02, 0x00, 0x49, 0x03, 0x04, 0x00, 0x02, 0x00, 0x69, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0x49, 0x03, 0x06, 0x00, 0x02, 0x00, 0x69, 0x03, 0x06, 0x00, 0x02, 0x00, 0x49, 0x03, 0x28,
- 0x00, 0x02, 0x00, 0x69, 0x03, 0x28, 0x00, 0x02, 0x00, 0x49, 0x03, 0x07, 0x00, 0x02, 0x00, 0x4A,
- 0x03, 0x02, 0x00, 0x02, 0x00, 0x6A, 0x03, 0x02, 0x00, 0x02, 0x00, 0x4B, 0x03, 0x27, 0x00, 0x02,
- 0x00, 0x6B, 0x03, 0x27, 0x00, 0x02, 0x00, 0x4C, 0x03, 0x01, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x4C, 0x03, 0x27, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x27, 0x00, 0x02, 0x00, 0x4C,
- 0x03, 0x0C, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0x6E, 0x03, 0x01, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x27, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x27,
- 0x00, 0x02, 0x00, 0x4E, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x4F,
- 0x03, 0x04, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x04, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x06, 0x00, 0x02,
- 0x00, 0x6F, 0x03, 0x06, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x0B, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x0B,
- 0x00, 0x02, 0x00, 0x52, 0x03, 0x01, 0x00, 0x02, 0x00, 0x72, 0x03, 0x01, 0x00, 0x02, 0x00, 0x52,
- 0x03, 0x27, 0x00, 0x02, 0x00, 0x72, 0x03, 0x27, 0x00, 0x02, 0x00, 0x52, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x72, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x53, 0x03, 0x01, 0x00, 0x02, 0x00, 0x73, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x53, 0x03, 0x02, 0x00, 0x02, 0x00, 0x73, 0x03, 0x02, 0x00, 0x02, 0x00, 0x53,
- 0x03, 0x27, 0x00, 0x02, 0x00, 0x73, 0x03, 0x27, 0x00, 0x02, 0x00, 0x53, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x73, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x54, 0x03, 0x27, 0x00, 0x02, 0x00, 0x74, 0x03, 0x27,
- 0x00, 0x02, 0x00, 0x54, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x74, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x55,
- 0x03, 0x03, 0x00, 0x02, 0x00, 0x75, 0x03, 0x03, 0x00, 0x02, 0x00, 0x55, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0x75, 0x03, 0x04, 0x00, 0x02, 0x00, 0x55, 0x03, 0x06, 0x00, 0x02, 0x00, 0x75, 0x03, 0x06,
- 0x00, 0x02, 0x00, 0x55, 0x03, 0x0A, 0x00, 0x02, 0x00, 0x75, 0x03, 0x0A, 0x00, 0x02, 0x00, 0x55,
- 0x03, 0x0B, 0x00, 0x02, 0x00, 0x75, 0x03, 0x0B, 0x00, 0x02, 0x00, 0x55, 0x03, 0x28, 0x00, 0x02,
- 0x00, 0x75, 0x03, 0x28, 0x00, 0x02, 0x00, 0x57, 0x03, 0x02, 0x00, 0x02, 0x00, 0x77, 0x03, 0x02,
- 0x00, 0x02, 0x00, 0x59, 0x03, 0x02, 0x00, 0x02, 0x00, 0x79, 0x03, 0x02, 0x00, 0x02, 0x00, 0x59,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x5A, 0x03, 0x01, 0x00, 0x02, 0x00, 0x7A, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0x5A, 0x03, 0x07, 0x00, 0x02, 0x00, 0x7A, 0x03, 0x07, 0x00, 0x02, 0x00, 0x5A, 0x03, 0x0C,
- 0x00, 0x02, 0x00, 0x7A, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x1B, 0x00, 0x02, 0x00, 0x6F,
- 0x03, 0x1B, 0x00, 0x02, 0x00, 0x55, 0x03, 0x1B, 0x00, 0x02, 0x00, 0x75, 0x03, 0x1B, 0x00, 0x02,
- 0x00, 0x41, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x61, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x49, 0x03, 0x0C,
- 0x00, 0x02, 0x00, 0x69, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x6F,
- 0x03, 0x0C, 0x00, 0x02, 0x00, 0x55, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x75, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0xDC, 0x03, 0x04, 0x00, 0x02, 0x00, 0xFC, 0x03, 0x04, 0x00, 0x02, 0x00, 0x55, 0x03, 0x44,
- 0x00, 0x02, 0x00, 0x75, 0x03, 0x44, 0x00, 0x02, 0x00, 0xDC, 0x03, 0x0C, 0x00, 0x02, 0x00, 0xFC,
- 0x03, 0x0C, 0x00, 0x02, 0x00, 0xDC, 0x03, 0x00, 0x00, 0x02, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x02,
- 0x00, 0xC4, 0x03, 0x04, 0x00, 0x02, 0x00, 0xE4, 0x03, 0x04, 0x00, 0x02, 0x02, 0x26, 0x03, 0x04,
- 0x00, 0x02, 0x02, 0x27, 0x03, 0x04, 0x00, 0x02, 0x00, 0xC6, 0x03, 0x04, 0x00, 0x02, 0x00, 0xE6,
- 0x03, 0x04, 0x00, 0x02, 0x00, 0x47, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x67, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x4B, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x6B, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x28,
- 0x00, 0x02, 0x00, 0x6F, 0x03, 0x28, 0x00, 0x02, 0x01, 0x4C, 0x03, 0x28, 0x00, 0x02, 0x01, 0x4D,
- 0x03, 0x28, 0x00, 0x02, 0x01, 0xB7, 0x03, 0x0C, 0x00, 0x02, 0x02, 0x92, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x6A, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x47, 0x03, 0x01, 0x00, 0x02, 0x00, 0x67, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x4E, 0x03, 0x00, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x00, 0x00, 0x02, 0x00, 0xC5,
- 0x03, 0x01, 0x00, 0x02, 0x00, 0xE5, 0x03, 0x01, 0x00, 0x02, 0x00, 0xC6, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0xE6, 0x03, 0x01, 0x00, 0x02, 0x00, 0xD8, 0x03, 0x01, 0x00, 0x02, 0x00, 0xF8, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x41, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x61, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x41,
- 0x03, 0x11, 0x00, 0x02, 0x00, 0x61, 0x03, 0x11, 0x00, 0x02, 0x00, 0x45, 0x03, 0x0F, 0x00, 0x02,
- 0x00, 0x65, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x45, 0x03, 0x11, 0x00, 0x02, 0x00, 0x65, 0x03, 0x11,
- 0x00, 0x02, 0x00, 0x49, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x69, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x49,
- 0x03, 0x11, 0x00, 0x02, 0x00, 0x69, 0x03, 0x11, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x0F, 0x00, 0x02,
- 0x00, 0x6F, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x11, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x11,
- 0x00, 0x02, 0x00, 0x52, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x72, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x52,
- 0x03, 0x11, 0x00, 0x02, 0x00, 0x72, 0x03, 0x11, 0x00, 0x02, 0x00, 0x55, 0x03, 0x0F, 0x00, 0x02,
- 0x00, 0x75, 0x03, 0x0F, 0x00, 0x02, 0x00, 0x55, 0x03, 0x11, 0x00, 0x02, 0x00, 0x75, 0x03, 0x11,
- 0x00, 0x02, 0x00, 0x53, 0x03, 0x26, 0x00, 0x02, 0x00, 0x73, 0x03, 0x26, 0x00, 0x02, 0x00, 0x54,
- 0x03, 0x26, 0x00, 0x02, 0x00, 0x74, 0x03, 0x26, 0x00, 0x02, 0x00, 0x48, 0x03, 0x0C, 0x00, 0x02,
- 0x00, 0x68, 0x03, 0x0C, 0x00, 0x02, 0x00, 0x41, 0x03, 0x07, 0x00, 0x02, 0x00, 0x61, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x45, 0x03, 0x27, 0x00, 0x02, 0x00, 0x65, 0x03, 0x27, 0x00, 0x02, 0x00, 0xD6,
- 0x03, 0x04, 0x00, 0x02, 0x00, 0xF6, 0x03, 0x04, 0x00, 0x02, 0x00, 0xD5, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0xF5, 0x03, 0x04, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x07, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x07,
- 0x00, 0x02, 0x02, 0x2E, 0x03, 0x04, 0x00, 0x02, 0x02, 0x2F, 0x03, 0x04, 0x00, 0x02, 0x00, 0x59,
- 0x03, 0x04, 0x00, 0x02, 0x00, 0x79, 0x03, 0x04, 0x00, 0x02, 0x00, 0x41, 0x03, 0x25, 0x00, 0x02,
- 0x00, 0x61, 0x03, 0x25, 0x00, 0x02, 0x00, 0x42, 0x03, 0x07, 0x00, 0x02, 0x00, 0x62, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x42, 0x03, 0x23, 0x00, 0x02, 0x00, 0x62, 0x03, 0x23, 0x00, 0x02, 0x00, 0x42,
- 0x03, 0x31, 0x00, 0x02, 0x00, 0x62, 0x03, 0x31, 0x00, 0x02, 0x00, 0xC7, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0xE7, 0x03, 0x01, 0x00, 0x02, 0x00, 0x44, 0x03, 0x07, 0x00, 0x02, 0x00, 0x64, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x44, 0x03, 0x23, 0x00, 0x02, 0x00, 0x64, 0x03, 0x23, 0x00, 0x02, 0x00, 0x44,
- 0x03, 0x31, 0x00, 0x02, 0x00, 0x64, 0x03, 0x31, 0x00, 0x02, 0x00, 0x44, 0x03, 0x27, 0x00, 0x02,
- 0x00, 0x64, 0x03, 0x27, 0x00, 0x02, 0x00, 0x44, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x64, 0x03, 0x2D,
- 0x00, 0x02, 0x01, 0x12, 0x03, 0x00, 0x00, 0x02, 0x01, 0x13, 0x03, 0x00, 0x00, 0x02, 0x01, 0x12,
- 0x03, 0x01, 0x00, 0x02, 0x01, 0x13, 0x03, 0x01, 0x00, 0x02, 0x00, 0x45, 0x03, 0x2D, 0x00, 0x02,
- 0x00, 0x65, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x45, 0x03, 0x30, 0x00, 0x02, 0x00, 0x65, 0x03, 0x30,
- 0x00, 0x02, 0x01, 0x14, 0x03, 0x27, 0x00, 0x02, 0x01, 0x15, 0x03, 0x27, 0x00, 0x02, 0x00, 0x46,
- 0x03, 0x07, 0x00, 0x02, 0x00, 0x66, 0x03, 0x07, 0x00, 0x02, 0x00, 0x47, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0x67, 0x03, 0x04, 0x00, 0x02, 0x00, 0x48, 0x03, 0x07, 0x00, 0x02, 0x00, 0x68, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x48, 0x03, 0x23, 0x00, 0x02, 0x00, 0x68, 0x03, 0x23, 0x00, 0x02, 0x00, 0x48,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x68, 0x03, 0x08, 0x00, 0x02, 0x00, 0x48, 0x03, 0x27, 0x00, 0x02,
- 0x00, 0x68, 0x03, 0x27, 0x00, 0x02, 0x00, 0x48, 0x03, 0x2E, 0x00, 0x02, 0x00, 0x68, 0x03, 0x2E,
- 0x00, 0x02, 0x00, 0x49, 0x03, 0x30, 0x00, 0x02, 0x00, 0x69, 0x03, 0x30, 0x00, 0x02, 0x00, 0x49,
- 0x03, 0x44, 0x00, 0x02, 0x00, 0x69, 0x03, 0x44, 0x00, 0x02, 0x00, 0x4B, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0x6B, 0x03, 0x01, 0x00, 0x02, 0x00, 0x4B, 0x03, 0x23, 0x00, 0x02, 0x00, 0x6B, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0x4B, 0x03, 0x31, 0x00, 0x02, 0x00, 0x6B, 0x03, 0x31, 0x00, 0x02, 0x00, 0x4C,
- 0x03, 0x23, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x23, 0x00, 0x02, 0x1E, 0x36, 0x03, 0x04, 0x00, 0x02,
- 0x1E, 0x37, 0x03, 0x04, 0x00, 0x02, 0x00, 0x4C, 0x03, 0x31, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x31,
- 0x00, 0x02, 0x00, 0x4C, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x6C, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x4D,
- 0x03, 0x01, 0x00, 0x02, 0x00, 0x6D, 0x03, 0x01, 0x00, 0x02, 0x00, 0x4D, 0x03, 0x07, 0x00, 0x02,
- 0x00, 0x6D, 0x03, 0x07, 0x00, 0x02, 0x00, 0x4D, 0x03, 0x23, 0x00, 0x02, 0x00, 0x6D, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0x4E, 0x03, 0x07, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x07, 0x00, 0x02, 0x00, 0x4E,
- 0x03, 0x23, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x23, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x31, 0x00, 0x02,
- 0x00, 0x6E, 0x03, 0x31, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x2D,
- 0x00, 0x02, 0x00, 0xD5, 0x03, 0x01, 0x00, 0x02, 0x00, 0xF5, 0x03, 0x01, 0x00, 0x02, 0x00, 0xD5,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0xF5, 0x03, 0x08, 0x00, 0x02, 0x01, 0x4C, 0x03, 0x00, 0x00, 0x02,
- 0x01, 0x4D, 0x03, 0x00, 0x00, 0x02, 0x01, 0x4C, 0x03, 0x01, 0x00, 0x02, 0x01, 0x4D, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x50, 0x03, 0x01, 0x00, 0x02, 0x00, 0x70, 0x03, 0x01, 0x00, 0x02, 0x00, 0x50,
- 0x03, 0x07, 0x00, 0x02, 0x00, 0x70, 0x03, 0x07, 0x00, 0x02, 0x00, 0x52, 0x03, 0x07, 0x00, 0x02,
- 0x00, 0x72, 0x03, 0x07, 0x00, 0x02, 0x00, 0x52, 0x03, 0x23, 0x00, 0x02, 0x00, 0x72, 0x03, 0x23,
- 0x00, 0x02, 0x1E, 0x5A, 0x03, 0x04, 0x00, 0x02, 0x1E, 0x5B, 0x03, 0x04, 0x00, 0x02, 0x00, 0x52,
- 0x03, 0x31, 0x00, 0x02, 0x00, 0x72, 0x03, 0x31, 0x00, 0x02, 0x00, 0x53, 0x03, 0x07, 0x00, 0x02,
- 0x00, 0x73, 0x03, 0x07, 0x00, 0x02, 0x00, 0x53, 0x03, 0x23, 0x00, 0x02, 0x00, 0x73, 0x03, 0x23,
- 0x00, 0x02, 0x01, 0x5A, 0x03, 0x07, 0x00, 0x02, 0x01, 0x5B, 0x03, 0x07, 0x00, 0x02, 0x01, 0x60,
- 0x03, 0x07, 0x00, 0x02, 0x01, 0x61, 0x03, 0x07, 0x00, 0x02, 0x1E, 0x60, 0x03, 0x23, 0x00, 0x02,
- 0x1E, 0x61, 0x03, 0x23, 0x00, 0x02, 0x00, 0x54, 0x03, 0x07, 0x00, 0x02, 0x00, 0x74, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x54, 0x03, 0x23, 0x00, 0x02, 0x00, 0x74, 0x03, 0x23, 0x00, 0x02, 0x00, 0x54,
- 0x03, 0x31, 0x00, 0x02, 0x00, 0x74, 0x03, 0x31, 0x00, 0x02, 0x00, 0x54, 0x03, 0x2D, 0x00, 0x02,
- 0x00, 0x74, 0x03, 0x2D, 0x00, 0x02, 0x00, 0x55, 0x03, 0x24, 0x00, 0x02, 0x00, 0x75, 0x03, 0x24,
- 0x00, 0x02, 0x00, 0x55, 0x03, 0x30, 0x00, 0x02, 0x00, 0x75, 0x03, 0x30, 0x00, 0x02, 0x00, 0x55,
- 0x03, 0x2D, 0x00, 0x02, 0x00, 0x75, 0x03, 0x2D, 0x00, 0x02, 0x01, 0x68, 0x03, 0x01, 0x00, 0x02,
- 0x01, 0x69, 0x03, 0x01, 0x00, 0x02, 0x01, 0x6A, 0x03, 0x08, 0x00, 0x02, 0x01, 0x6B, 0x03, 0x08,
- 0x00, 0x02, 0x00, 0x56, 0x03, 0x03, 0x00, 0x02, 0x00, 0x76, 0x03, 0x03, 0x00, 0x02, 0x00, 0x56,
- 0x03, 0x23, 0x00, 0x02, 0x00, 0x76, 0x03, 0x23, 0x00, 0x02, 0x00, 0x57, 0x03, 0x00, 0x00, 0x02,
- 0x00, 0x77, 0x03, 0x00, 0x00, 0x02, 0x00, 0x57, 0x03, 0x01, 0x00, 0x02, 0x00, 0x77, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0x57, 0x03, 0x08, 0x00, 0x02, 0x00, 0x77, 0x03, 0x08, 0x00, 0x02, 0x00, 0x57,
- 0x03, 0x07, 0x00, 0x02, 0x00, 0x77, 0x03, 0x07, 0x00, 0x02, 0x00, 0x57, 0x03, 0x23, 0x00, 0x02,
- 0x00, 0x77, 0x03, 0x23, 0x00, 0x02, 0x00, 0x58, 0x03, 0x07, 0x00, 0x02, 0x00, 0x78, 0x03, 0x07,
- 0x00, 0x02, 0x00, 0x58, 0x03, 0x08, 0x00, 0x02, 0x00, 0x78, 0x03, 0x08, 0x00, 0x02, 0x00, 0x59,
- 0x03, 0x07, 0x00, 0x02, 0x00, 0x79, 0x03, 0x07, 0x00, 0x02, 0x00, 0x5A, 0x03, 0x02, 0x00, 0x02,
- 0x00, 0x7A, 0x03, 0x02, 0x00, 0x02, 0x00, 0x5A, 0x03, 0x23, 0x00, 0x02, 0x00, 0x7A, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0x5A, 0x03, 0x31, 0x00, 0x02, 0x00, 0x7A, 0x03, 0x31, 0x00, 0x02, 0x00, 0x68,
- 0x03, 0x31, 0x00, 0x02, 0x00, 0x74, 0x03, 0x08, 0x00, 0x02, 0x00, 0x77, 0x03, 0x0A, 0x00, 0x02,
- 0x00, 0x79, 0x03, 0x0A, 0x00, 0x02, 0x01, 0x7F, 0x03, 0x07, 0x00, 0x02, 0x00, 0x41, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0x61, 0x03, 0x23, 0x00, 0x02, 0x00, 0x41, 0x03, 0x09, 0x00, 0x02, 0x00, 0x61,
- 0x03, 0x09, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x01, 0x00, 0x02, 0x00, 0xE2, 0x03, 0x01, 0x00, 0x02,
- 0x00, 0xC2, 0x03, 0x00, 0x00, 0x02, 0x00, 0xE2, 0x03, 0x00, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x09,
- 0x00, 0x02, 0x00, 0xE2, 0x03, 0x09, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x03, 0x00, 0x02, 0x00, 0xE2,
- 0x03, 0x03, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x23, 0x00, 0x02, 0x00, 0xE2, 0x03, 0x23, 0x00, 0x02,
- 0x01, 0x02, 0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x03, 0x01, 0x00, 0x02, 0x01, 0x02, 0x03, 0x00,
- 0x00, 0x02, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x01, 0x02, 0x03, 0x09, 0x00, 0x02, 0x01, 0x03,
- 0x03, 0x09, 0x00, 0x02, 0x01, 0x02, 0x03, 0x03, 0x00, 0x02, 0x01, 0x03, 0x03, 0x03, 0x00, 0x02,
- 0x01, 0x02, 0x03, 0x23, 0x00, 0x02, 0x01, 0x03, 0x03, 0x23, 0x00, 0x02, 0x00, 0x45, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0x65, 0x03, 0x23, 0x00, 0x02, 0x00, 0x45, 0x03, 0x09, 0x00, 0x02, 0x00, 0x65,
- 0x03, 0x09, 0x00, 0x02, 0x00, 0x45, 0x03, 0x03, 0x00, 0x02, 0x00, 0x65, 0x03, 0x03, 0x00, 0x02,
- 0x00, 0xCA, 0x03, 0x01, 0x00, 0x02, 0x00, 0xEA, 0x03, 0x01, 0x00, 0x02, 0x00, 0xCA, 0x03, 0x00,
- 0x00, 0x02, 0x00, 0xEA, 0x03, 0x00, 0x00, 0x02, 0x00, 0xCA, 0x03, 0x09, 0x00, 0x02, 0x00, 0xEA,
- 0x03, 0x09, 0x00, 0x02, 0x00, 0xCA, 0x03, 0x03, 0x00, 0x02, 0x00, 0xEA, 0x03, 0x03, 0x00, 0x02,
- 0x00, 0xCA, 0x03, 0x23, 0x00, 0x02, 0x00, 0xEA, 0x03, 0x23, 0x00, 0x02, 0x00, 0x49, 0x03, 0x09,
- 0x00, 0x02, 0x00, 0x69, 0x03, 0x09, 0x00, 0x02, 0x00, 0x49, 0x03, 0x23, 0x00, 0x02, 0x00, 0x69,
- 0x03, 0x23, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x23, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x23, 0x00, 0x02,
- 0x00, 0x4F, 0x03, 0x09, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x09, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0xF4, 0x03, 0x01, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x00, 0x00, 0x02, 0x00, 0xF4,
- 0x03, 0x00, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x09, 0x00, 0x02, 0x00, 0xF4, 0x03, 0x09, 0x00, 0x02,
- 0x00, 0xD4, 0x03, 0x03, 0x00, 0x02, 0x00, 0xF4, 0x03, 0x03, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x23,
- 0x00, 0x02, 0x00, 0xF4, 0x03, 0x23, 0x00, 0x02, 0x00, 0xD3, 0x03, 0x1B, 0x00, 0x02, 0x00, 0xF3,
- 0x03, 0x1B, 0x00, 0x02, 0x00, 0xD2, 0x03, 0x1B, 0x00, 0x02, 0x00, 0xF2, 0x03, 0x1B, 0x00, 0x02,
- 0x01, 0xA0, 0x03, 0x09, 0x00, 0x02, 0x01, 0xA1, 0x03, 0x09, 0x00, 0x02, 0x00, 0xD5, 0x03, 0x1B,
- 0x00, 0x02, 0x00, 0xF5, 0x03, 0x1B, 0x00, 0x02, 0x01, 0xA0, 0x03, 0x23, 0x00, 0x02, 0x01, 0xA1,
- 0x03, 0x23, 0x00, 0x02, 0x00, 0x55, 0x03, 0x23, 0x00, 0x02, 0x00, 0x75, 0x03, 0x23, 0x00, 0x02,
- 0x00, 0x55, 0x03, 0x09, 0x00, 0x02, 0x00, 0x75, 0x03, 0x09, 0x00, 0x02, 0x00, 0xDA, 0x03, 0x1B,
- 0x00, 0x02, 0x00, 0xFA, 0x03, 0x1B, 0x00, 0x02, 0x00, 0xD9, 0x03, 0x1B, 0x00, 0x02, 0x00, 0xF9,
- 0x03, 0x1B, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x09, 0x00, 0x02, 0x01, 0xB0, 0x03, 0x09, 0x00, 0x02,
- 0x01, 0x68, 0x03, 0x1B, 0x00, 0x02, 0x01, 0x69, 0x03, 0x1B, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x23,
- 0x00, 0x02, 0x01, 0xB0, 0x03, 0x23, 0x00, 0x02, 0x00, 0x59, 0x03, 0x00, 0x00, 0x02, 0x00, 0x79,
- 0x03, 0x00, 0x00, 0x02, 0x00, 0x59, 0x03, 0x23, 0x00, 0x02, 0x00, 0x79, 0x03, 0x23, 0x00, 0x02,
- 0x00, 0x59, 0x03, 0x09, 0x00, 0x02, 0x00, 0x79, 0x03, 0x09, 0x00, 0x02, 0x00, 0x59, 0x03, 0x03,
- 0x00, 0x02, 0x00, 0x79, 0x03, 0x03, 0x00, 0x02, 0x00, 0x41, 0x03, 0x0A, 0x00, 0x01, 0x01, 0xF2,
- 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC7, 0x00, 0xC8,
- 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD1,
- 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB,
- 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5,
- 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE,
- 0x00, 0xEF, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF9,
- 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x02,
- 0x01, 0x03, 0x01, 0x04, 0x01, 0x05, 0x01, 0x06, 0x01, 0x07, 0x01, 0x08, 0x01, 0x09, 0x01, 0x0A,
- 0x01, 0x0B, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x0E, 0x01, 0x0F, 0x01, 0x12, 0x01, 0x13, 0x01, 0x14,
- 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x01, 0x18, 0x01, 0x19, 0x01, 0x1A, 0x01, 0x1B, 0x01, 0x1C,
- 0x01, 0x1D, 0x01, 0x1E, 0x01, 0x1F, 0x01, 0x20, 0x01, 0x21, 0x01, 0x22, 0x01, 0x23, 0x01, 0x24,
- 0x01, 0x25, 0x01, 0x28, 0x01, 0x29, 0x01, 0x2A, 0x01, 0x2B, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x2E,
- 0x01, 0x2F, 0x01, 0x30, 0x01, 0x34, 0x01, 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x39, 0x01, 0x3A,
- 0x01, 0x3B, 0x01, 0x3C, 0x01, 0x3D, 0x01, 0x3E, 0x01, 0x43, 0x01, 0x44, 0x01, 0x45, 0x01, 0x46,
- 0x01, 0x47, 0x01, 0x48, 0x01, 0x4C, 0x01, 0x4D, 0x01, 0x4E, 0x01, 0x4F, 0x01, 0x50, 0x01, 0x51,
- 0x01, 0x54, 0x01, 0x55, 0x01, 0x56, 0x01, 0x57, 0x01, 0x58, 0x01, 0x59, 0x01, 0x5A, 0x01, 0x5B,
- 0x01, 0x5C, 0x01, 0x5D, 0x01, 0x5E, 0x01, 0x5F, 0x01, 0x60, 0x01, 0x61, 0x01, 0x62, 0x01, 0x63,
- 0x01, 0x64, 0x01, 0x65, 0x01, 0x68, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x6B, 0x01, 0x6C, 0x01, 0x6D,
- 0x01, 0x6E, 0x01, 0x6F, 0x01, 0x70, 0x01, 0x71, 0x01, 0x72, 0x01, 0x73, 0x01, 0x74, 0x01, 0x75,
- 0x01, 0x76, 0x01, 0x77, 0x01, 0x78, 0x01, 0x79, 0x01, 0x7A, 0x01, 0x7B, 0x01, 0x7C, 0x01, 0x7D,
- 0x01, 0x7E, 0x01, 0xA0, 0x01, 0xA1, 0x01, 0xAF, 0x01, 0xB0, 0x01, 0xCD, 0x01, 0xCE, 0x01, 0xCF,
- 0x01, 0xD0, 0x01, 0xD1, 0x01, 0xD2, 0x01, 0xD3, 0x01, 0xD4, 0x01, 0xD5, 0x01, 0xD6, 0x01, 0xD7,
- 0x01, 0xD8, 0x01, 0xD9, 0x01, 0xDA, 0x01, 0xDB, 0x01, 0xDC, 0x01, 0xDE, 0x01, 0xDF, 0x01, 0xE0,
- 0x01, 0xE1, 0x01, 0xE2, 0x01, 0xE3, 0x01, 0xE6, 0x01, 0xE7, 0x01, 0xE8, 0x01, 0xE9, 0x01, 0xEA,
- 0x01, 0xEB, 0x01, 0xEC, 0x01, 0xED, 0x01, 0xEE, 0x01, 0xEF, 0x01, 0xF0, 0x01, 0xF4, 0x01, 0xF5,
- 0x01, 0xF8, 0x01, 0xF9, 0x01, 0xFA, 0x01, 0xFB, 0x01, 0xFC, 0x01, 0xFD, 0x01, 0xFE, 0x01, 0xFF,
- 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x07,
- 0x02, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x0B, 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F,
- 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x17,
- 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x26, 0x02, 0x27,
- 0x02, 0x28, 0x02, 0x29, 0x02, 0x2A, 0x02, 0x2B, 0x02, 0x2C, 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F,
- 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, 0x1E, 0x00, 0x1E, 0x01, 0x1E, 0x02, 0x1E, 0x03,
- 0x1E, 0x04, 0x1E, 0x05, 0x1E, 0x06, 0x1E, 0x07, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x0A, 0x1E, 0x0B,
- 0x1E, 0x0C, 0x1E, 0x0D, 0x1E, 0x0E, 0x1E, 0x0F, 0x1E, 0x10, 0x1E, 0x11, 0x1E, 0x12, 0x1E, 0x13,
- 0x1E, 0x14, 0x1E, 0x15, 0x1E, 0x16, 0x1E, 0x17, 0x1E, 0x18, 0x1E, 0x19, 0x1E, 0x1A, 0x1E, 0x1B,
- 0x1E, 0x1C, 0x1E, 0x1D, 0x1E, 0x1E, 0x1E, 0x1F, 0x1E, 0x20, 0x1E, 0x21, 0x1E, 0x22, 0x1E, 0x23,
- 0x1E, 0x24, 0x1E, 0x25, 0x1E, 0x26, 0x1E, 0x27, 0x1E, 0x28, 0x1E, 0x29, 0x1E, 0x2A, 0x1E, 0x2B,
- 0x1E, 0x2C, 0x1E, 0x2D, 0x1E, 0x2E, 0x1E, 0x2F, 0x1E, 0x30, 0x1E, 0x31, 0x1E, 0x32, 0x1E, 0x33,
- 0x1E, 0x34, 0x1E, 0x35, 0x1E, 0x36, 0x1E, 0x37, 0x1E, 0x38, 0x1E, 0x39, 0x1E, 0x3A, 0x1E, 0x3B,
- 0x1E, 0x3C, 0x1E, 0x3D, 0x1E, 0x3E, 0x1E, 0x3F, 0x1E, 0x40, 0x1E, 0x41, 0x1E, 0x42, 0x1E, 0x43,
- 0x1E, 0x44, 0x1E, 0x45, 0x1E, 0x46, 0x1E, 0x47, 0x1E, 0x48, 0x1E, 0x49, 0x1E, 0x4A, 0x1E, 0x4B,
- 0x1E, 0x4C, 0x1E, 0x4D, 0x1E, 0x4E, 0x1E, 0x4F, 0x1E, 0x50, 0x1E, 0x51, 0x1E, 0x52, 0x1E, 0x53,
- 0x1E, 0x54, 0x1E, 0x55, 0x1E, 0x56, 0x1E, 0x57, 0x1E, 0x58, 0x1E, 0x59, 0x1E, 0x5A, 0x1E, 0x5B,
- 0x1E, 0x5C, 0x1E, 0x5D, 0x1E, 0x5E, 0x1E, 0x5F, 0x1E, 0x60, 0x1E, 0x61, 0x1E, 0x62, 0x1E, 0x63,
- 0x1E, 0x64, 0x1E, 0x65, 0x1E, 0x66, 0x1E, 0x67, 0x1E, 0x68, 0x1E, 0x69, 0x1E, 0x6A, 0x1E, 0x6B,
- 0x1E, 0x6C, 0x1E, 0x6D, 0x1E, 0x6E, 0x1E, 0x6F, 0x1E, 0x70, 0x1E, 0x71, 0x1E, 0x72, 0x1E, 0x73,
- 0x1E, 0x74, 0x1E, 0x75, 0x1E, 0x76, 0x1E, 0x77, 0x1E, 0x78, 0x1E, 0x79, 0x1E, 0x7A, 0x1E, 0x7B,
- 0x1E, 0x7C, 0x1E, 0x7D, 0x1E, 0x7E, 0x1E, 0x7F, 0x1E, 0x80, 0x1E, 0x81, 0x1E, 0x82, 0x1E, 0x83,
- 0x1E, 0x84, 0x1E, 0x85, 0x1E, 0x86, 0x1E, 0x87, 0x1E, 0x88, 0x1E, 0x89, 0x1E, 0x8A, 0x1E, 0x8B,
- 0x1E, 0x8C, 0x1E, 0x8D, 0x1E, 0x8E, 0x1E, 0x8F, 0x1E, 0x90, 0x1E, 0x91, 0x1E, 0x92, 0x1E, 0x93,
- 0x1E, 0x94, 0x1E, 0x95, 0x1E, 0x96, 0x1E, 0x97, 0x1E, 0x98, 0x1E, 0x99, 0x1E, 0x9B, 0x1E, 0xA0,
- 0x1E, 0xA1, 0x1E, 0xA2, 0x1E, 0xA3, 0x1E, 0xA4, 0x1E, 0xA5, 0x1E, 0xA6, 0x1E, 0xA7, 0x1E, 0xA8,
- 0x1E, 0xA9, 0x1E, 0xAA, 0x1E, 0xAB, 0x1E, 0xAC, 0x1E, 0xAD, 0x1E, 0xAE, 0x1E, 0xAF, 0x1E, 0xB0,
- 0x1E, 0xB1, 0x1E, 0xB2, 0x1E, 0xB3, 0x1E, 0xB4, 0x1E, 0xB5, 0x1E, 0xB6, 0x1E, 0xB7, 0x1E, 0xB8,
- 0x1E, 0xB9, 0x1E, 0xBA, 0x1E, 0xBB, 0x1E, 0xBC, 0x1E, 0xBD, 0x1E, 0xBE, 0x1E, 0xBF, 0x1E, 0xC0,
- 0x1E, 0xC1, 0x1E, 0xC2, 0x1E, 0xC3, 0x1E, 0xC4, 0x1E, 0xC5, 0x1E, 0xC6, 0x1E, 0xC7, 0x1E, 0xC8,
- 0x1E, 0xC9, 0x1E, 0xCA, 0x1E, 0xCB, 0x1E, 0xCC, 0x1E, 0xCD, 0x1E, 0xCE, 0x1E, 0xCF, 0x1E, 0xD0,
- 0x1E, 0xD1, 0x1E, 0xD2, 0x1E, 0xD3, 0x1E, 0xD4, 0x1E, 0xD5, 0x1E, 0xD6, 0x1E, 0xD7, 0x1E, 0xD8,
- 0x1E, 0xD9, 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD, 0x1E, 0xDE, 0x1E, 0xDF, 0x1E, 0xE0,
- 0x1E, 0xE1, 0x1E, 0xE2, 0x1E, 0xE3, 0x1E, 0xE4, 0x1E, 0xE5, 0x1E, 0xE6, 0x1E, 0xE7, 0x1E, 0xE8,
- 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x1E, 0xEC, 0x1E, 0xED, 0x1E, 0xEE, 0x1E, 0xEF, 0x1E, 0xF0,
- 0x1E, 0xF1, 0x1E, 0xF2, 0x1E, 0xF3, 0x1E, 0xF4, 0x1E, 0xF5, 0x1E, 0xF6, 0x1E, 0xF7, 0x1E, 0xF8,
- 0x1E, 0xF9, 0x21, 0x2B, 0x00, 0x01, 0x05, 0xBA, 0x00, 0xAC, 0x01, 0x5E, 0x01, 0x64, 0x01, 0x6A,
- 0x01, 0x70, 0x01, 0x76, 0x01, 0x7C, 0x01, 0x82, 0x01, 0x88, 0x01, 0x8E, 0x01, 0x94, 0x01, 0x9A,
- 0x01, 0xA0, 0x01, 0xA6, 0x01, 0xAC, 0x01, 0xB2, 0x01, 0xB8, 0x01, 0xBE, 0x01, 0xC4, 0x01, 0xCA,
- 0x01, 0xD0, 0x01, 0xD6, 0x01, 0xDC, 0x01, 0xE2, 0x01, 0xE8, 0x01, 0xEE, 0x01, 0xF4, 0x01, 0xFA,
- 0x02, 0x00, 0x02, 0x06, 0x02, 0x0C, 0x02, 0x12, 0x02, 0x18, 0x02, 0x1E, 0x02, 0x24, 0x02, 0x2A,
- 0x02, 0x30, 0x02, 0x38, 0x02, 0x40, 0x02, 0x46, 0x02, 0x4C, 0x02, 0x54, 0x02, 0x5C, 0x02, 0x62,
- 0x02, 0x68, 0x02, 0x70, 0x02, 0x78, 0x02, 0x80, 0x02, 0x88, 0x02, 0x8E, 0x02, 0x94, 0x02, 0x9A,
- 0x02, 0xA0, 0x02, 0xA6, 0x02, 0xAC, 0x02, 0xB2, 0x02, 0xB8, 0x02, 0xBE, 0x02, 0xC4, 0x02, 0xCA,
- 0x02, 0xD0, 0x02, 0xD6, 0x02, 0xDE, 0x02, 0xE6, 0x02, 0xEE, 0x02, 0xF6, 0x02, 0xFE, 0x03, 0x06,
- 0x03, 0x0C, 0x03, 0x12, 0x03, 0x18, 0x03, 0x1E, 0x03, 0x24, 0x03, 0x2A, 0x03, 0x30, 0x03, 0x36,
- 0x03, 0x3C, 0x03, 0x42, 0x03, 0x48, 0x03, 0x4E, 0x03, 0x54, 0x03, 0x5A, 0x03, 0x62, 0x03, 0x6A,
- 0x03, 0x70, 0x03, 0x76, 0x03, 0x7C, 0x03, 0x82, 0x03, 0x8A, 0x03, 0x92, 0x03, 0x98, 0x03, 0x9E,
- 0x03, 0xA4, 0x03, 0xAA, 0x03, 0xB0, 0x03, 0xB6, 0x03, 0xBE, 0x03, 0xC6, 0x03, 0xCE, 0x03, 0xD6,
- 0x03, 0xDE, 0x03, 0xE6, 0x03, 0xEC, 0x03, 0xF2, 0x03, 0xF8, 0x03, 0xFE, 0x04, 0x06, 0x04, 0x0E,
- 0x04, 0x14, 0x04, 0x1A, 0x04, 0x20, 0x04, 0x26, 0x04, 0x2C, 0x04, 0x32, 0x04, 0x38, 0x04, 0x3E,
- 0x04, 0x46, 0x04, 0x4E, 0x04, 0x56, 0x04, 0x5E, 0x04, 0x64, 0x04, 0x6A, 0x04, 0x70, 0x04, 0x76,
- 0x04, 0x7C, 0x04, 0x82, 0x04, 0x8A, 0x04, 0x92, 0x04, 0x9A, 0x04, 0xA2, 0x04, 0xA8, 0x04, 0xAE,
- 0x04, 0xB4, 0x04, 0xBA, 0x04, 0xC0, 0x04, 0xC6, 0x04, 0xCE, 0x04, 0xD6, 0x04, 0xDE, 0x04, 0xE6,
- 0x04, 0xEC, 0x04, 0xF2, 0x04, 0xF8, 0x04, 0xFE, 0x05, 0x04, 0x05, 0x0A, 0x05, 0x12, 0x05, 0x1A,
- 0x05, 0x22, 0x05, 0x2A, 0x05, 0x30, 0x05, 0x36, 0x05, 0x3C, 0x05, 0x42, 0x05, 0x48, 0x05, 0x4E,
- 0x05, 0x54, 0x05, 0x5A, 0x05, 0x60, 0x05, 0x66, 0x05, 0x6C, 0x05, 0x72, 0x05, 0x78, 0x05, 0x7E,
- 0x05, 0x84, 0x05, 0x8A, 0x05, 0x90, 0x05, 0x96, 0x05, 0x9C, 0x05, 0xA2, 0x05, 0xA8, 0x05, 0xAE,
- 0x05, 0xB4, 0x00, 0x02, 0x00, 0x41, 0x03, 0x40, 0x00, 0x02, 0x00, 0x41, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x45, 0x03, 0x40, 0x00, 0x02, 0x00, 0x45, 0x03, 0x41, 0x00, 0x02, 0x00, 0x49, 0x03, 0x40,
- 0x00, 0x02, 0x00, 0x49, 0x03, 0x41, 0x00, 0x02, 0x00, 0x4F, 0x03, 0x40, 0x00, 0x02, 0x00, 0x4F,
- 0x03, 0x41, 0x00, 0x02, 0x00, 0x55, 0x03, 0x40, 0x00, 0x02, 0x00, 0x55, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x59, 0x03, 0x41, 0x00, 0x02, 0x00, 0x61, 0x03, 0x40, 0x00, 0x02, 0x00, 0x61, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0x65, 0x03, 0x40, 0x00, 0x02, 0x00, 0x65, 0x03, 0x41, 0x00, 0x02, 0x00, 0x69,
- 0x03, 0x40, 0x00, 0x02, 0x00, 0x69, 0x03, 0x41, 0x00, 0x02, 0x00, 0x6F, 0x03, 0x40, 0x00, 0x02,
- 0x00, 0x6F, 0x03, 0x41, 0x00, 0x02, 0x00, 0x75, 0x03, 0x40, 0x00, 0x02, 0x00, 0x75, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0x79, 0x03, 0x41, 0x00, 0x02, 0x00, 0x43, 0x03, 0x41, 0x00, 0x02, 0x00, 0x63,
- 0x03, 0x41, 0x00, 0x02, 0x21, 0x2A, 0x03, 0x27, 0x00, 0x02, 0x00, 0x4C, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x6C, 0x03, 0x41, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x41, 0x00, 0x02, 0x00, 0x6E, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0x52, 0x03, 0x41, 0x00, 0x02, 0x00, 0x72, 0x03, 0x41, 0x00, 0x02, 0x00, 0x53,
- 0x03, 0x41, 0x00, 0x02, 0x00, 0x73, 0x03, 0x41, 0x00, 0x02, 0x00, 0x5A, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x7A, 0x03, 0x41, 0x00, 0x03, 0x00, 0x55, 0x03, 0x08, 0x03, 0x04, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x08, 0x03, 0x04, 0x00, 0x02, 0x00, 0xDC, 0x03, 0x01, 0x00, 0x02, 0x00, 0xFC, 0x03, 0x01,
- 0x00, 0x03, 0x00, 0x55, 0x03, 0x08, 0x03, 0x0C, 0x00, 0x03, 0x00, 0x75, 0x03, 0x08, 0x03, 0x0C,
- 0x00, 0x02, 0x00, 0xDC, 0x03, 0x40, 0x00, 0x02, 0x00, 0xFC, 0x03, 0x40, 0x00, 0x03, 0x00, 0x41,
- 0x03, 0x08, 0x03, 0x04, 0x00, 0x03, 0x00, 0x61, 0x03, 0x08, 0x03, 0x04, 0x00, 0x03, 0x00, 0x41,
- 0x03, 0x07, 0x03, 0x04, 0x00, 0x03, 0x00, 0x61, 0x03, 0x07, 0x03, 0x04, 0x00, 0x02, 0x21, 0x2A,
- 0x03, 0x0C, 0x00, 0x02, 0x01, 0xEA, 0x03, 0x04, 0x00, 0x02, 0x01, 0xEB, 0x03, 0x04, 0x00, 0x02,
- 0x00, 0x47, 0x03, 0x41, 0x00, 0x02, 0x00, 0x67, 0x03, 0x41, 0x00, 0x02, 0x00, 0x4E, 0x03, 0x40,
- 0x00, 0x02, 0x00, 0x6E, 0x03, 0x40, 0x00, 0x02, 0x00, 0xC5, 0x03, 0x41, 0x00, 0x02, 0x00, 0xE5,
- 0x03, 0x41, 0x00, 0x02, 0x00, 0xC6, 0x03, 0x41, 0x00, 0x02, 0x00, 0xE6, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0xD8, 0x03, 0x41, 0x00, 0x02, 0x00, 0xF8, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x08,
- 0x03, 0x04, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x08, 0x03, 0x04, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x03,
- 0x03, 0x04, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x03, 0x03, 0x04, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x07,
- 0x03, 0x04, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x07, 0x03, 0x04, 0x00, 0x02, 0x00, 0xC7, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0xE7, 0x03, 0x41, 0x00, 0x02, 0x01, 0x12, 0x03, 0x40, 0x00, 0x02, 0x01, 0x13,
- 0x03, 0x40, 0x00, 0x02, 0x01, 0x12, 0x03, 0x41, 0x00, 0x02, 0x01, 0x13, 0x03, 0x41, 0x00, 0x02,
- 0x02, 0x28, 0x03, 0x06, 0x00, 0x02, 0x02, 0x29, 0x03, 0x06, 0x00, 0x02, 0x00, 0xCF, 0x03, 0x01,
- 0x00, 0x02, 0x00, 0xEF, 0x03, 0x01, 0x00, 0x02, 0x00, 0x4B, 0x03, 0x41, 0x00, 0x02, 0x00, 0x6B,
- 0x03, 0x41, 0x00, 0x02, 0x21, 0x2A, 0x03, 0x23, 0x00, 0x02, 0x21, 0x2A, 0x03, 0x31, 0x00, 0x03,
- 0x00, 0x4C, 0x03, 0x04, 0x03, 0x23, 0x00, 0x03, 0x00, 0x6C, 0x03, 0x04, 0x03, 0x23, 0x00, 0x02,
- 0x00, 0x4D, 0x03, 0x41, 0x00, 0x02, 0x00, 0x6D, 0x03, 0x41, 0x00, 0x02, 0x00, 0xD5, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0xF5, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x03, 0x03, 0x08, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x03, 0x03, 0x08, 0x00, 0x02, 0x01, 0x4C, 0x03, 0x40, 0x00, 0x02, 0x01, 0x4D,
- 0x03, 0x40, 0x00, 0x02, 0x01, 0x4C, 0x03, 0x41, 0x00, 0x02, 0x01, 0x4D, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0x50, 0x03, 0x41, 0x00, 0x02, 0x00, 0x70, 0x03, 0x41, 0x00, 0x03, 0x00, 0x52, 0x03, 0x04,
- 0x03, 0x23, 0x00, 0x03, 0x00, 0x72, 0x03, 0x04, 0x03, 0x23, 0x00, 0x03, 0x00, 0x53, 0x03, 0x01,
- 0x03, 0x07, 0x00, 0x03, 0x00, 0x73, 0x03, 0x01, 0x03, 0x07, 0x00, 0x03, 0x00, 0x53, 0x03, 0x0C,
- 0x03, 0x07, 0x00, 0x03, 0x00, 0x73, 0x03, 0x0C, 0x03, 0x07, 0x00, 0x02, 0x1E, 0x62, 0x03, 0x07,
- 0x00, 0x02, 0x1E, 0x63, 0x03, 0x07, 0x00, 0x02, 0x01, 0x68, 0x03, 0x41, 0x00, 0x02, 0x01, 0x69,
- 0x03, 0x41, 0x00, 0x03, 0x00, 0x55, 0x03, 0x04, 0x03, 0x08, 0x00, 0x03, 0x00, 0x75, 0x03, 0x04,
- 0x03, 0x08, 0x00, 0x02, 0x00, 0x57, 0x03, 0x40, 0x00, 0x02, 0x00, 0x77, 0x03, 0x40, 0x00, 0x02,
- 0x00, 0x57, 0x03, 0x41, 0x00, 0x02, 0x00, 0x77, 0x03, 0x41, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x41,
- 0x00, 0x02, 0x00, 0xE2, 0x03, 0x41, 0x00, 0x02, 0x00, 0xC2, 0x03, 0x40, 0x00, 0x02, 0x00, 0xE2,
- 0x03, 0x40, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x09, 0x00, 0x03, 0x00, 0x61, 0x03, 0x02,
- 0x03, 0x09, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x03, 0x00, 0x03, 0x00, 0x61, 0x03, 0x02,
- 0x03, 0x03, 0x00, 0x02, 0x1E, 0xA0, 0x03, 0x02, 0x00, 0x02, 0x1E, 0xA1, 0x03, 0x02, 0x00, 0x02,
- 0x01, 0x02, 0x03, 0x41, 0x00, 0x02, 0x01, 0x03, 0x03, 0x41, 0x00, 0x02, 0x01, 0x02, 0x03, 0x40,
- 0x00, 0x02, 0x01, 0x03, 0x03, 0x40, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x09, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x06, 0x03, 0x09, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x03, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x06, 0x03, 0x03, 0x00, 0x02, 0x1E, 0xA0, 0x03, 0x06, 0x00, 0x02, 0x1E, 0xA1,
- 0x03, 0x06, 0x00, 0x02, 0x00, 0xCA, 0x03, 0x41, 0x00, 0x02, 0x00, 0xEA, 0x03, 0x41, 0x00, 0x02,
- 0x00, 0xCA, 0x03, 0x40, 0x00, 0x02, 0x00, 0xEA, 0x03, 0x40, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02,
- 0x03, 0x09, 0x00, 0x03, 0x00, 0x65, 0x03, 0x02, 0x03, 0x09, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02,
- 0x03, 0x03, 0x00, 0x03, 0x00, 0x65, 0x03, 0x02, 0x03, 0x03, 0x00, 0x02, 0x1E, 0xB8, 0x03, 0x02,
- 0x00, 0x02, 0x1E, 0xB9, 0x03, 0x02, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x41, 0x00, 0x02, 0x00, 0xF4,
- 0x03, 0x41, 0x00, 0x02, 0x00, 0xD4, 0x03, 0x40, 0x00, 0x02, 0x00, 0xF4, 0x03, 0x40, 0x00, 0x03,
- 0x00, 0x4F, 0x03, 0x02, 0x03, 0x09, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x02, 0x03, 0x09, 0x00, 0x03,
- 0x00, 0x4F, 0x03, 0x02, 0x03, 0x03, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x02, 0x03, 0x03, 0x00, 0x02,
- 0x1E, 0xCC, 0x03, 0x02, 0x00, 0x02, 0x1E, 0xCD, 0x03, 0x02, 0x00, 0x02, 0x01, 0xA0, 0x03, 0x01,
- 0x00, 0x02, 0x01, 0xA1, 0x03, 0x01, 0x00, 0x02, 0x01, 0xA0, 0x03, 0x00, 0x00, 0x02, 0x01, 0xA1,
- 0x03, 0x00, 0x00, 0x02, 0x1E, 0xCE, 0x03, 0x1B, 0x00, 0x02, 0x1E, 0xCF, 0x03, 0x1B, 0x00, 0x02,
- 0x01, 0xA0, 0x03, 0x03, 0x00, 0x02, 0x01, 0xA1, 0x03, 0x03, 0x00, 0x02, 0x1E, 0xCC, 0x03, 0x1B,
- 0x00, 0x02, 0x1E, 0xCD, 0x03, 0x1B, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x01, 0x00, 0x02, 0x01, 0xB0,
- 0x03, 0x01, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x00, 0x00, 0x02, 0x01, 0xB0, 0x03, 0x00, 0x00, 0x02,
- 0x1E, 0xE6, 0x03, 0x1B, 0x00, 0x02, 0x1E, 0xE7, 0x03, 0x1B, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x03,
- 0x00, 0x02, 0x01, 0xB0, 0x03, 0x03, 0x00, 0x02, 0x1E, 0xE4, 0x03, 0x1B, 0x00, 0x02, 0x1E, 0xE5,
- 0x03, 0x1B, 0x00, 0x02, 0x00, 0x59, 0x03, 0x40, 0x00, 0x02, 0x00, 0x79, 0x03, 0x40, 0x00, 0x01,
- 0x00, 0xAC, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xD2,
- 0x00, 0xD3, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDD, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE8, 0x00, 0xE9,
- 0x00, 0xEC, 0x00, 0xED, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFD, 0x01, 0x06,
- 0x01, 0x07, 0x01, 0x36, 0x01, 0x39, 0x01, 0x3A, 0x01, 0x43, 0x01, 0x44, 0x01, 0x54, 0x01, 0x55,
- 0x01, 0x5A, 0x01, 0x5B, 0x01, 0x79, 0x01, 0x7A, 0x01, 0xD5, 0x01, 0xD6, 0x01, 0xD7, 0x01, 0xD8,
- 0x01, 0xD9, 0x01, 0xDA, 0x01, 0xDB, 0x01, 0xDC, 0x01, 0xDE, 0x01, 0xDF, 0x01, 0xE0, 0x01, 0xE1,
- 0x01, 0xE8, 0x01, 0xEC, 0x01, 0xED, 0x01, 0xF4, 0x01, 0xF5, 0x01, 0xF8, 0x01, 0xF9, 0x01, 0xFA,
- 0x01, 0xFB, 0x01, 0xFC, 0x01, 0xFD, 0x01, 0xFE, 0x01, 0xFF, 0x02, 0x2A, 0x02, 0x2B, 0x02, 0x2C,
- 0x02, 0x2D, 0x02, 0x30, 0x02, 0x31, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x14, 0x1E, 0x15, 0x1E, 0x16,
- 0x1E, 0x17, 0x1E, 0x1C, 0x1E, 0x1D, 0x1E, 0x2E, 0x1E, 0x2F, 0x1E, 0x30, 0x1E, 0x31, 0x1E, 0x32,
- 0x1E, 0x34, 0x1E, 0x38, 0x1E, 0x39, 0x1E, 0x3E, 0x1E, 0x3F, 0x1E, 0x4C, 0x1E, 0x4D, 0x1E, 0x4E,
- 0x1E, 0x4F, 0x1E, 0x50, 0x1E, 0x51, 0x1E, 0x52, 0x1E, 0x53, 0x1E, 0x54, 0x1E, 0x55, 0x1E, 0x5C,
- 0x1E, 0x5D, 0x1E, 0x64, 0x1E, 0x65, 0x1E, 0x66, 0x1E, 0x67, 0x1E, 0x68, 0x1E, 0x69, 0x1E, 0x78,
- 0x1E, 0x79, 0x1E, 0x7A, 0x1E, 0x7B, 0x1E, 0x80, 0x1E, 0x81, 0x1E, 0x82, 0x1E, 0x83, 0x1E, 0xA4,
- 0x1E, 0xA5, 0x1E, 0xA6, 0x1E, 0xA7, 0x1E, 0xA8, 0x1E, 0xA9, 0x1E, 0xAA, 0x1E, 0xAB, 0x1E, 0xAC,
- 0x1E, 0xAD, 0x1E, 0xAE, 0x1E, 0xAF, 0x1E, 0xB0, 0x1E, 0xB1, 0x1E, 0xB2, 0x1E, 0xB3, 0x1E, 0xB4,
- 0x1E, 0xB5, 0x1E, 0xB6, 0x1E, 0xB7, 0x1E, 0xBE, 0x1E, 0xBF, 0x1E, 0xC0, 0x1E, 0xC1, 0x1E, 0xC2,
- 0x1E, 0xC3, 0x1E, 0xC4, 0x1E, 0xC5, 0x1E, 0xC6, 0x1E, 0xC7, 0x1E, 0xD0, 0x1E, 0xD1, 0x1E, 0xD2,
- 0x1E, 0xD3, 0x1E, 0xD4, 0x1E, 0xD5, 0x1E, 0xD6, 0x1E, 0xD7, 0x1E, 0xD8, 0x1E, 0xD9, 0x1E, 0xDA,
- 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD, 0x1E, 0xDE, 0x1E, 0xDF, 0x1E, 0xE0, 0x1E, 0xE1, 0x1E, 0xE2,
- 0x1E, 0xE3, 0x1E, 0xE8, 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x1E, 0xEC, 0x1E, 0xED, 0x1E, 0xEE,
- 0x1E, 0xEF, 0x1E, 0xF0, 0x1E, 0xF1, 0x1E, 0xF2, 0x1E, 0xF3, 0x00, 0x01, 0x02, 0xFC, 0x00, 0x4F,
- 0x00, 0xA4, 0x00, 0xAA, 0x00, 0xB0, 0x00, 0xB8, 0x00, 0xC0, 0x00, 0xC8, 0x00, 0xD0, 0x00, 0xD6,
- 0x00, 0xDE, 0x00, 0xE4, 0x00, 0xEA, 0x00, 0xF2, 0x00, 0xFA, 0x01, 0x02, 0x01, 0x0A, 0x01, 0x12,
- 0x01, 0x1A, 0x01, 0x20, 0x01, 0x26, 0x01, 0x2C, 0x01, 0x34, 0x01, 0x3C, 0x01, 0x44, 0x01, 0x4C,
- 0x01, 0x54, 0x01, 0x5C, 0x01, 0x64, 0x01, 0x6C, 0x01, 0x74, 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8C,
- 0x01, 0x94, 0x01, 0x9C, 0x01, 0xA4, 0x01, 0xAC, 0x01, 0xB4, 0x01, 0xBC, 0x01, 0xC4, 0x01, 0xCC,
- 0x01, 0xD4, 0x01, 0xDC, 0x01, 0xE4, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFC, 0x02, 0x04, 0x02, 0x0C,
- 0x02, 0x14, 0x02, 0x1C, 0x02, 0x24, 0x02, 0x2C, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x44, 0x02, 0x4C,
- 0x02, 0x54, 0x02, 0x5C, 0x02, 0x64, 0x02, 0x6C, 0x02, 0x72, 0x02, 0x78, 0x02, 0x7E, 0x02, 0x84,
- 0x02, 0x8C, 0x02, 0x94, 0x02, 0x9C, 0x02, 0xA4, 0x02, 0xAC, 0x02, 0xB4, 0x02, 0xBA, 0x02, 0xC0,
- 0x02, 0xC6, 0x02, 0xCC, 0x02, 0xD4, 0x02, 0xDC, 0x02, 0xE4, 0x02, 0xEC, 0x02, 0xF4, 0x00, 0x02,
- 0x00, 0xDC, 0x03, 0x41, 0x00, 0x02, 0x00, 0xFC, 0x03, 0x41, 0x00, 0x03, 0x00, 0x55, 0x03, 0x08,
- 0x03, 0x00, 0x00, 0x03, 0x00, 0x75, 0x03, 0x08, 0x03, 0x00, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x04,
- 0x03, 0x28, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x04, 0x03, 0x28, 0x00, 0x02, 0x21, 0x2B, 0x03, 0x01,
- 0x00, 0x03, 0x00, 0x61, 0x03, 0x0A, 0x03, 0x01, 0x00, 0x02, 0x01, 0x06, 0x03, 0x27, 0x00, 0x02,
- 0x01, 0x07, 0x03, 0x27, 0x00, 0x03, 0x00, 0x45, 0x03, 0x04, 0x03, 0x00, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x04, 0x03, 0x00, 0x00, 0x03, 0x00, 0x45, 0x03, 0x04, 0x03, 0x01, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x04, 0x03, 0x01, 0x00, 0x03, 0x00, 0x45, 0x03, 0x06, 0x03, 0x27, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x06, 0x03, 0x27, 0x00, 0x02, 0x00, 0xCF, 0x03, 0x41, 0x00, 0x02, 0x00, 0xEF, 0x03, 0x41,
- 0x00, 0x02, 0x21, 0x2A, 0x03, 0x01, 0x00, 0x03, 0x00, 0x4C, 0x03, 0x23, 0x03, 0x04, 0x00, 0x03,
- 0x00, 0x6C, 0x03, 0x23, 0x03, 0x04, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x04, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x04, 0x03, 0x00, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x04, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x04, 0x03, 0x01, 0x00, 0x03, 0x00, 0x52, 0x03, 0x23, 0x03, 0x04, 0x00, 0x03,
- 0x00, 0x72, 0x03, 0x23, 0x03, 0x04, 0x00, 0x03, 0x00, 0x53, 0x03, 0x41, 0x03, 0x07, 0x00, 0x03,
- 0x00, 0x73, 0x03, 0x41, 0x03, 0x07, 0x00, 0x03, 0x00, 0x53, 0x03, 0x07, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x73, 0x03, 0x07, 0x03, 0x23, 0x00, 0x03, 0x00, 0x55, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x02, 0x03, 0x23, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x06, 0x03, 0x01, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x06, 0x03, 0x00, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x61, 0x03, 0x06, 0x03, 0x23, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x65, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x65, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x65, 0x03, 0x02, 0x03, 0x23, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x02, 0x03, 0x00, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x02, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x02, 0x03, 0x23, 0x00, 0x02, 0x01, 0xA0, 0x03, 0x41, 0x00, 0x02, 0x01, 0xA1,
- 0x03, 0x41, 0x00, 0x02, 0x01, 0xA0, 0x03, 0x40, 0x00, 0x02, 0x01, 0xA1, 0x03, 0x40, 0x00, 0x03,
- 0x00, 0x4F, 0x03, 0x09, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x09, 0x03, 0x1B, 0x00, 0x03,
- 0x00, 0x4F, 0x03, 0x03, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x03, 0x03, 0x1B, 0x00, 0x03,
- 0x00, 0x4F, 0x03, 0x1B, 0x03, 0x23, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x1B, 0x03, 0x23, 0x00, 0x02,
- 0x01, 0xAF, 0x03, 0x41, 0x00, 0x02, 0x01, 0xB0, 0x03, 0x41, 0x00, 0x02, 0x01, 0xAF, 0x03, 0x40,
- 0x00, 0x02, 0x01, 0xB0, 0x03, 0x40, 0x00, 0x03, 0x00, 0x55, 0x03, 0x09, 0x03, 0x1B, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x09, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x55, 0x03, 0x03, 0x03, 0x1B, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x03, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x55, 0x03, 0x1B, 0x03, 0x23, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x1B, 0x03, 0x23, 0x00, 0x01, 0x00, 0x4F, 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xDB,
- 0x01, 0xDC, 0x01, 0xEC, 0x01, 0xED, 0x01, 0xFA, 0x01, 0xFB, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x14,
- 0x1E, 0x15, 0x1E, 0x16, 0x1E, 0x17, 0x1E, 0x1C, 0x1E, 0x1D, 0x1E, 0x2E, 0x1E, 0x2F, 0x1E, 0x30,
- 0x1E, 0x38, 0x1E, 0x39, 0x1E, 0x4C, 0x1E, 0x4D, 0x1E, 0x50, 0x1E, 0x51, 0x1E, 0x52, 0x1E, 0x53,
- 0x1E, 0x5C, 0x1E, 0x5D, 0x1E, 0x64, 0x1E, 0x65, 0x1E, 0x68, 0x1E, 0x69, 0x1E, 0x78, 0x1E, 0x79,
- 0x1E, 0xA4, 0x1E, 0xA5, 0x1E, 0xA6, 0x1E, 0xA7, 0x1E, 0xAC, 0x1E, 0xAD, 0x1E, 0xAE, 0x1E, 0xAF,
- 0x1E, 0xB0, 0x1E, 0xB1, 0x1E, 0xB6, 0x1E, 0xB7, 0x1E, 0xBE, 0x1E, 0xBF, 0x1E, 0xC0, 0x1E, 0xC1,
- 0x1E, 0xC6, 0x1E, 0xC7, 0x1E, 0xD0, 0x1E, 0xD1, 0x1E, 0xD2, 0x1E, 0xD3, 0x1E, 0xD8, 0x1E, 0xD9,
- 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD, 0x1E, 0xDE, 0x1E, 0xDF, 0x1E, 0xE0, 0x1E, 0xE1,
- 0x1E, 0xE2, 0x1E, 0xE3, 0x1E, 0xE8, 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x1E, 0xEC, 0x1E, 0xED,
- 0x1E, 0xEE, 0x1E, 0xEF, 0x1E, 0xF0, 0x1E, 0xF1, 0x00, 0x01, 0x02, 0xDC, 0x00, 0x49, 0x00, 0x98,
- 0x00, 0xA0, 0x00, 0xA8, 0x00, 0xB0, 0x00, 0xB8, 0x00, 0xC0, 0x00, 0xC8, 0x00, 0xCE, 0x00, 0xD6,
- 0x00, 0xDE, 0x00, 0xE6, 0x00, 0xEE, 0x00, 0xF6, 0x00, 0xFE, 0x01, 0x06, 0x01, 0x0E, 0x01, 0x16,
- 0x01, 0x1E, 0x01, 0x26, 0x01, 0x2C, 0x01, 0x34, 0x01, 0x3C, 0x01, 0x44, 0x01, 0x4C, 0x01, 0x54,
- 0x01, 0x5C, 0x01, 0x64, 0x01, 0x6C, 0x01, 0x74, 0x01, 0x7C, 0x01, 0x84, 0x01, 0x8C, 0x01, 0x94,
- 0x01, 0x9C, 0x01, 0xA4, 0x01, 0xAC, 0x01, 0xB4, 0x01, 0xBC, 0x01, 0xC4, 0x01, 0xCC, 0x01, 0xD4,
- 0x01, 0xDC, 0x01, 0xE4, 0x01, 0xEC, 0x01, 0xF4, 0x01, 0xFC, 0x02, 0x04, 0x02, 0x0C, 0x02, 0x14,
- 0x02, 0x1C, 0x02, 0x24, 0x02, 0x2C, 0x02, 0x34, 0x02, 0x3C, 0x02, 0x44, 0x02, 0x4C, 0x02, 0x54,
- 0x02, 0x5C, 0x02, 0x64, 0x02, 0x6C, 0x02, 0x74, 0x02, 0x7C, 0x02, 0x84, 0x02, 0x8C, 0x02, 0x94,
- 0x02, 0x9C, 0x02, 0xA4, 0x02, 0xAC, 0x02, 0xB4, 0x02, 0xBC, 0x02, 0xC4, 0x02, 0xCC, 0x02, 0xD4,
- 0x00, 0x03, 0x00, 0x55, 0x03, 0x08, 0x03, 0x01, 0x00, 0x03, 0x00, 0x75, 0x03, 0x08, 0x03, 0x01,
- 0x00, 0x03, 0x00, 0x55, 0x03, 0x08, 0x03, 0x40, 0x00, 0x03, 0x00, 0x75, 0x03, 0x08, 0x03, 0x40,
- 0x00, 0x03, 0x00, 0x4F, 0x03, 0x28, 0x03, 0x04, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x28, 0x03, 0x04,
- 0x00, 0x02, 0x21, 0x2B, 0x03, 0x41, 0x00, 0x03, 0x00, 0x61, 0x03, 0x0A, 0x03, 0x41, 0x00, 0x03,
- 0x00, 0x43, 0x03, 0x01, 0x03, 0x27, 0x00, 0x03, 0x00, 0x63, 0x03, 0x01, 0x03, 0x27, 0x00, 0x03,
- 0x00, 0x45, 0x03, 0x04, 0x03, 0x40, 0x00, 0x03, 0x00, 0x65, 0x03, 0x04, 0x03, 0x40, 0x00, 0x03,
- 0x00, 0x45, 0x03, 0x04, 0x03, 0x41, 0x00, 0x03, 0x00, 0x65, 0x03, 0x04, 0x03, 0x41, 0x00, 0x03,
- 0x00, 0x45, 0x03, 0x27, 0x03, 0x06, 0x00, 0x03, 0x00, 0x65, 0x03, 0x27, 0x03, 0x06, 0x00, 0x03,
- 0x00, 0x49, 0x03, 0x08, 0x03, 0x01, 0x00, 0x03, 0x00, 0x69, 0x03, 0x08, 0x03, 0x01, 0x00, 0x02,
- 0x21, 0x2A, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x03, 0x03, 0x41, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x03, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x04, 0x03, 0x40, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x04, 0x03, 0x40, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x04, 0x03, 0x41, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x04, 0x03, 0x41, 0x00, 0x03, 0x00, 0x53, 0x03, 0x23, 0x03, 0x07, 0x00, 0x03, 0x00, 0x73,
- 0x03, 0x23, 0x03, 0x07, 0x00, 0x03, 0x00, 0x55, 0x03, 0x03, 0x03, 0x41, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x03, 0x03, 0x41, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x41, 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x41, 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x41, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x06, 0x03, 0x41, 0x00, 0x03, 0x00, 0x41, 0x03, 0x06, 0x03, 0x40, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x06, 0x03, 0x40, 0x00, 0x03, 0x00, 0x41, 0x03, 0x23, 0x03, 0x06, 0x00, 0x03, 0x00, 0x61,
- 0x03, 0x23, 0x03, 0x06, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x45, 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x45, 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x65,
- 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x02, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x02, 0x03, 0x40, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x23, 0x03, 0x02, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x01, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x01, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x00, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x00, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x1B, 0x03, 0x09, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x1B, 0x03, 0x09, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x1B, 0x03, 0x03, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x1B, 0x03, 0x03, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x23, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F,
- 0x03, 0x23, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x55, 0x03, 0x01, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x01, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x55, 0x03, 0x00, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x00, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x55, 0x03, 0x1B, 0x03, 0x09, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x1B, 0x03, 0x09, 0x00, 0x03, 0x00, 0x55, 0x03, 0x1B, 0x03, 0x03, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x1B, 0x03, 0x03, 0x00, 0x03, 0x00, 0x55, 0x03, 0x23, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x75,
- 0x03, 0x23, 0x03, 0x1B, 0x00, 0x01, 0x00, 0x49, 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xDB, 0x01, 0xDC,
- 0x01, 0xEC, 0x01, 0xED, 0x01, 0xFA, 0x01, 0xFB, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x14, 0x1E, 0x15,
- 0x1E, 0x16, 0x1E, 0x17, 0x1E, 0x1C, 0x1E, 0x1D, 0x1E, 0x2E, 0x1E, 0x2F, 0x1E, 0x30, 0x1E, 0x4C,
- 0x1E, 0x4D, 0x1E, 0x50, 0x1E, 0x51, 0x1E, 0x52, 0x1E, 0x53, 0x1E, 0x68, 0x1E, 0x69, 0x1E, 0x78,
- 0x1E, 0x79, 0x1E, 0xA4, 0x1E, 0xA5, 0x1E, 0xA6, 0x1E, 0xA7, 0x1E, 0xAC, 0x1E, 0xAD, 0x1E, 0xAE,
- 0x1E, 0xAF, 0x1E, 0xB0, 0x1E, 0xB1, 0x1E, 0xB6, 0x1E, 0xB7, 0x1E, 0xBE, 0x1E, 0xBF, 0x1E, 0xC0,
- 0x1E, 0xC1, 0x1E, 0xC6, 0x1E, 0xC7, 0x1E, 0xD0, 0x1E, 0xD1, 0x1E, 0xD2, 0x1E, 0xD3, 0x1E, 0xD8,
- 0x1E, 0xD9, 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD, 0x1E, 0xDE, 0x1E, 0xDF, 0x1E, 0xE0,
- 0x1E, 0xE1, 0x1E, 0xE2, 0x1E, 0xE3, 0x1E, 0xE8, 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x1E, 0xEC,
- 0x1E, 0xED, 0x1E, 0xEE, 0x1E, 0xEF, 0x1E, 0xF0, 0x1E, 0xF1, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x0F,
- 0x00, 0x24, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C,
- 0x00, 0x64, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x7C, 0x00, 0x84, 0x00, 0x8C, 0x00, 0x94, 0x00, 0x03,
- 0x00, 0x55, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x00, 0x75, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03,
- 0x00, 0x41, 0x03, 0x0A, 0x03, 0x01, 0x00, 0x03, 0x00, 0x43, 0x03, 0x27, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x63, 0x03, 0x27, 0x03, 0x01, 0x00, 0x03, 0x00, 0x49, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03,
- 0x00, 0x69, 0x03, 0x08, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x1B, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x1B, 0x03, 0x01, 0x00, 0x03, 0x00, 0x4F, 0x03, 0x1B, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x6F, 0x03, 0x1B, 0x03, 0x00, 0x00, 0x03, 0x00, 0x55, 0x03, 0x1B, 0x03, 0x01, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x1B, 0x03, 0x01, 0x00, 0x03, 0x00, 0x55, 0x03, 0x1B, 0x03, 0x00, 0x00, 0x03,
- 0x00, 0x75, 0x03, 0x1B, 0x03, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xFA,
- 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x2E, 0x1E, 0x2F, 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD,
- 0x1E, 0xE8, 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x00, 0x01, 0x00, 0x74, 0x00, 0x0B, 0x00, 0x1C,
- 0x00, 0x24, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x5C,
- 0x00, 0x64, 0x00, 0x6C, 0x00, 0x03, 0x00, 0x41, 0x03, 0x0A, 0x03, 0x41, 0x00, 0x03, 0x00, 0x43,
- 0x03, 0x27, 0x03, 0x41, 0x00, 0x03, 0x00, 0x63, 0x03, 0x27, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F,
- 0x03, 0x1B, 0x03, 0x41, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x1B, 0x03, 0x41, 0x00, 0x03, 0x00, 0x4F,
- 0x03, 0x1B, 0x03, 0x40, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x1B, 0x03, 0x40, 0x00, 0x03, 0x00, 0x55,
- 0x03, 0x1B, 0x03, 0x41, 0x00, 0x03, 0x00, 0x75, 0x03, 0x1B, 0x03, 0x41, 0x00, 0x03, 0x00, 0x55,
- 0x03, 0x1B, 0x03, 0x40, 0x00, 0x03, 0x00, 0x75, 0x03, 0x1B, 0x03, 0x40, 0x00, 0x01, 0x00, 0x0B,
- 0x01, 0xFA, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD, 0x1E, 0xE8,
- 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x00, 0x01, 0x00, 0x6A, 0x00, 0x0A, 0x00, 0x1A, 0x00, 0x22,
- 0x00, 0x2A, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x42, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x5A, 0x00, 0x62,
- 0x00, 0x03, 0x00, 0x43, 0x03, 0x41, 0x03, 0x27, 0x00, 0x03, 0x00, 0x63, 0x03, 0x41, 0x03, 0x27,
- 0x00, 0x03, 0x00, 0x4F, 0x03, 0x41, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x41, 0x03, 0x1B,
- 0x00, 0x03, 0x00, 0x4F, 0x03, 0x40, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x6F, 0x03, 0x40, 0x03, 0x1B,
- 0x00, 0x03, 0x00, 0x55, 0x03, 0x41, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x75, 0x03, 0x41, 0x03, 0x1B,
- 0x00, 0x03, 0x00, 0x55, 0x03, 0x40, 0x03, 0x1B, 0x00, 0x03, 0x00, 0x75, 0x03, 0x40, 0x03, 0x1B,
- 0x00, 0x01, 0x00, 0x0A, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0xDA, 0x1E, 0xDB, 0x1E, 0xDC, 0x1E, 0xDD,
- 0x1E, 0xE8, 0x1E, 0xE9, 0x1E, 0xEA, 0x1E, 0xEB, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08,
- 0x00, 0x01, 0x00, 0x26, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x1C, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C,
- 0x0D, 0x4A, 0x00, 0x02, 0x0D, 0x3E, 0x0D, 0x4C, 0x00, 0x02, 0x0D, 0x57, 0x00, 0x01, 0x00, 0x04,
- 0x0D, 0x4B, 0x00, 0x02, 0x0D, 0x3E, 0x00, 0x01, 0x00, 0x02, 0x0D, 0x46, 0x0D, 0x47, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x12,
- 0x00, 0x18, 0x00, 0x02, 0x0D, 0x46, 0x0D, 0x3E, 0x00, 0x02, 0x0D, 0x47, 0x0D, 0x3E, 0x00, 0x02,
- 0x0D, 0x46, 0x0D, 0x57, 0x00, 0x01, 0x00, 0x03, 0x0D, 0x4A, 0x0D, 0x4B, 0x0D, 0x4C, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x12, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01,
- 0x00, 0x04, 0x10, 0x26, 0x00, 0x02, 0x10, 0x2E, 0x00, 0x01, 0x00, 0x01, 0x10, 0x25, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x01, 0x00, 0x08, 0x00, 0x02,
- 0x10, 0x25, 0x10, 0x2E, 0x00, 0x01, 0x00, 0x01, 0x10, 0x26, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x3A, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x16, 0x00, 0x20, 0x00, 0x01,
- 0x00, 0x04, 0x0B, 0x5C, 0x00, 0x02, 0x0B, 0x3C, 0x00, 0x01, 0x00, 0x04, 0x0B, 0x5D, 0x00, 0x02,
- 0x0B, 0x3C, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0E, 0x00, 0x14, 0x0B, 0x4B, 0x00, 0x02, 0x0B, 0x3E,
- 0x0B, 0x48, 0x00, 0x02, 0x0B, 0x56, 0x0B, 0x4C, 0x00, 0x02, 0x0B, 0x57, 0x00, 0x01, 0x00, 0x03,
- 0x0B, 0x21, 0x0B, 0x22, 0x0B, 0x47, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01,
- 0x00, 0x2E, 0x00, 0x05, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x28, 0x00, 0x02,
- 0x0B, 0x47, 0x0B, 0x56, 0x00, 0x02, 0x0B, 0x47, 0x0B, 0x3E, 0x00, 0x02, 0x0B, 0x47, 0x0B, 0x57,
- 0x00, 0x02, 0x0B, 0x21, 0x0B, 0x3C, 0x00, 0x02, 0x0B, 0x22, 0x0B, 0x3C, 0x00, 0x01, 0x00, 0x05,
- 0x0B, 0x48, 0x0B, 0x4B, 0x0B, 0x4C, 0x0B, 0x5C, 0x0B, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x38, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x2E, 0x00, 0x04, 0x00, 0x0A,
- 0x00, 0x10, 0x00, 0x18, 0x00, 0x1E, 0x0D, 0xDA, 0x00, 0x02, 0x0D, 0xCA, 0x0D, 0xDD, 0x00, 0x03,
- 0x0D, 0xCF, 0x0D, 0xCA, 0x0D, 0xDC, 0x00, 0x02, 0x0D, 0xCF, 0x0D, 0xDE, 0x00, 0x02, 0x0D, 0xDF,
- 0x00, 0x01, 0x00, 0x04, 0x0D, 0xDD, 0x00, 0x02, 0x0D, 0xCA, 0x00, 0x01, 0x00, 0x02, 0x0D, 0xD9,
- 0x0D, 0xDC, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x26,
- 0x00, 0x04, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x02, 0x0D, 0xD9, 0x0D, 0xCA,
- 0x00, 0x02, 0x0D, 0xD9, 0x0D, 0xCF, 0x00, 0x02, 0x0D, 0xDC, 0x0D, 0xCA, 0x00, 0x02, 0x0D, 0xD9,
- 0x0D, 0xDF, 0x00, 0x01, 0x00, 0x04, 0x0D, 0xDA, 0x0D, 0xDC, 0x0D, 0xDD, 0x0D, 0xDE, 0x00, 0x01,
- 0x00, 0x10, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x0D, 0xD9, 0x0D, 0xCF, 0x0D, 0xCA, 0x00, 0x01,
- 0x00, 0x01, 0x0D, 0xDD, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x32,
- 0x00, 0x03, 0x00, 0x0C, 0x00, 0x16, 0x00, 0x28, 0x00, 0x01, 0x00, 0x04, 0x0B, 0x94, 0x00, 0x02,
- 0x0B, 0xD7, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x0B, 0xCA, 0x00, 0x02, 0x0B, 0xBE, 0x0B, 0xCC,
- 0x00, 0x02, 0x0B, 0xD7, 0x00, 0x01, 0x00, 0x04, 0x0B, 0xCB, 0x00, 0x02, 0x0B, 0xBE, 0x00, 0x01,
- 0x00, 0x03, 0x0B, 0x92, 0x0B, 0xC6, 0x0B, 0xC7, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08,
- 0x00, 0x01, 0x00, 0x26, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x02,
- 0x0B, 0x92, 0x0B, 0xD7, 0x00, 0x02, 0x0B, 0xC6, 0x0B, 0xBE, 0x00, 0x02, 0x0B, 0xC7, 0x0B, 0xBE,
- 0x00, 0x02, 0x0B, 0xC6, 0x0B, 0xD7, 0x00, 0x01, 0x00, 0x04, 0x0B, 0x94, 0x0B, 0xCA, 0x0B, 0xCB,
- 0x0B, 0xCC, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x12, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x0C, 0x48, 0x00, 0x02, 0x0C, 0x56, 0x00, 0x01, 0x00, 0x01,
- 0x0C, 0x46, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x01,
- 0x00, 0x08, 0x00, 0x02, 0x0C, 0x46, 0x0C, 0x56, 0x00, 0x01, 0x00, 0x01, 0x0C, 0x48, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0xEE, 0x00, 0x12, 0x00, 0x2A, 0x00, 0x34,
- 0x00, 0x3E, 0x00, 0x48, 0x00, 0x52, 0x00, 0x5C, 0x00, 0x66, 0x00, 0x80, 0x00, 0x8A, 0x00, 0x94,
- 0x00, 0x9E, 0x00, 0xA8, 0x00, 0xB2, 0x00, 0xBC, 0x00, 0xC6, 0x00, 0xD0, 0x00, 0xDA, 0x00, 0xE4,
- 0x00, 0x01, 0x00, 0x04, 0x0F, 0x69, 0x00, 0x02, 0x0F, 0xB5, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x43,
- 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x4D, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01,
- 0x00, 0x04, 0x0F, 0x52, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x57, 0x00, 0x02,
- 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x5C, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x03, 0x00, 0x08,
- 0x00, 0x0E, 0x00, 0x14, 0x0F, 0x73, 0x00, 0x02, 0x0F, 0x72, 0x0F, 0x75, 0x00, 0x02, 0x0F, 0x74,
- 0x0F, 0x81, 0x00, 0x02, 0x0F, 0x80, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x73, 0x00, 0x02, 0x0F, 0x71,
- 0x00, 0x01, 0x00, 0x04, 0x0F, 0x75, 0x00, 0x02, 0x0F, 0x71, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x81,
- 0x00, 0x02, 0x0F, 0x71, 0x00, 0x01, 0x00, 0x04, 0x0F, 0xB9, 0x00, 0x02, 0x0F, 0xB5, 0x00, 0x01,
- 0x00, 0x04, 0x0F, 0x93, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x9D, 0x00, 0x02,
- 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0xA2, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04,
- 0x0F, 0xA7, 0x00, 0x02, 0x0F, 0xB7, 0x00, 0x01, 0x00, 0x04, 0x0F, 0xAC, 0x00, 0x02, 0x0F, 0xB7,
- 0x00, 0x01, 0x00, 0x04, 0x0F, 0x76, 0x00, 0x02, 0x0F, 0x80, 0x00, 0x01, 0x00, 0x04, 0x0F, 0x78,
- 0x00, 0x02, 0x0F, 0x80, 0x00, 0x01, 0x00, 0x12, 0x0F, 0x40, 0x0F, 0x42, 0x0F, 0x4C, 0x0F, 0x51,
- 0x0F, 0x56, 0x0F, 0x5B, 0x0F, 0x71, 0x0F, 0x72, 0x0F, 0x74, 0x0F, 0x80, 0x0F, 0x90, 0x0F, 0x92,
- 0x0F, 0x9C, 0x0F, 0xA1, 0x0F, 0xA6, 0x0F, 0xAB, 0x0F, 0xB2, 0x0F, 0xB3, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x0A, 0x00, 0xBE, 0x00, 0x01, 0x00, 0x8E, 0x00, 0x11, 0x00, 0x28, 0x00, 0x2E,
- 0x00, 0x34, 0x00, 0x3A, 0x00, 0x40, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x58, 0x00, 0x5E,
- 0x00, 0x64, 0x00, 0x6A, 0x00, 0x70, 0x00, 0x76, 0x00, 0x7C, 0x00, 0x82, 0x00, 0x88, 0x00, 0x02,
- 0x0F, 0x42, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0x4C, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0x51, 0x0F, 0xB7,
- 0x00, 0x02, 0x0F, 0x56, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0x5B, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0x40,
- 0x0F, 0xB5, 0x00, 0x02, 0x0F, 0x71, 0x0F, 0x72, 0x00, 0x02, 0x0F, 0x71, 0x0F, 0x74, 0x00, 0x02,
- 0x0F, 0xB2, 0x0F, 0x80, 0x00, 0x02, 0x0F, 0xB3, 0x0F, 0x80, 0x00, 0x02, 0x0F, 0x71, 0x0F, 0x80,
- 0x00, 0x02, 0x0F, 0x92, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0x9C, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0xA1,
- 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0xA6, 0x0F, 0xB7, 0x00, 0x02, 0x0F, 0xAB, 0x0F, 0xB7, 0x00, 0x02,
- 0x0F, 0x90, 0x0F, 0xB5, 0x00, 0x01, 0x00, 0x11, 0x0F, 0x43, 0x0F, 0x4D, 0x0F, 0x52, 0x0F, 0x57,
- 0x0F, 0x5C, 0x0F, 0x69, 0x0F, 0x73, 0x0F, 0x75, 0x0F, 0x76, 0x0F, 0x78, 0x0F, 0x81, 0x0F, 0x93,
- 0x0F, 0x9D, 0x0F, 0xA2, 0x0F, 0xA7, 0x0F, 0xAC, 0x0F, 0xB9, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x03,
- 0x00, 0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x02, 0x0F, 0x72, 0x0F, 0x71, 0x00, 0x02, 0x0F, 0x74,
- 0x0F, 0x71, 0x00, 0x02, 0x0F, 0x80, 0x0F, 0x71, 0x00, 0x01, 0x00, 0x03, 0x0F, 0x73, 0x0F, 0x75,
- 0x0F, 0x81
-};
-
-const le_uint8 CanonShaping::glyphDefinitionTable[] = {
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x28,
- 0x06, 0x0B, 0x06, 0x0F, 0x00, 0x01, 0x06, 0x10, 0x06, 0x15, 0x00, 0x03, 0x06, 0x1B, 0x06, 0x1B,
- 0x00, 0x01, 0x06, 0x1E, 0x06, 0x1F, 0x00, 0x01, 0x06, 0x21, 0x06, 0x21, 0x00, 0x01, 0x06, 0x22,
- 0x06, 0x26, 0x00, 0x02, 0x06, 0x27, 0x06, 0x3A, 0x00, 0x01, 0x06, 0x40, 0x06, 0x4A, 0x00, 0x01,
- 0x06, 0x4B, 0x06, 0x5E, 0x00, 0x03, 0x06, 0x60, 0x06, 0x6F, 0x00, 0x01, 0x06, 0x70, 0x06, 0x70,
- 0x00, 0x03, 0x06, 0x71, 0x06, 0xBF, 0x00, 0x01, 0x06, 0xC0, 0x06, 0xC0, 0x00, 0x02, 0x06, 0xC1,
- 0x06, 0xC1, 0x00, 0x01, 0x06, 0xC2, 0x06, 0xC2, 0x00, 0x02, 0x06, 0xC3, 0x06, 0xD2, 0x00, 0x01,
- 0x06, 0xD3, 0x06, 0xD3, 0x00, 0x02, 0x06, 0xD4, 0x06, 0xD5, 0x00, 0x01, 0x06, 0xD6, 0x06, 0xDC,
- 0x00, 0x03, 0x06, 0xDE, 0x06, 0xE4, 0x00, 0x03, 0x06, 0xE5, 0x06, 0xE6, 0x00, 0x01, 0x06, 0xE7,
- 0x06, 0xE8, 0x00, 0x03, 0x06, 0xE9, 0x06, 0xE9, 0x00, 0x01, 0x06, 0xEA, 0x06, 0xED, 0x00, 0x03,
- 0x06, 0xEE, 0x06, 0xFF, 0x00, 0x01, 0x07, 0x50, 0x07, 0x6D, 0x00, 0x01, 0xFB, 0x50, 0xFB, 0xB1,
- 0x00, 0x01, 0xFB, 0xD3, 0xFB, 0xDC, 0x00, 0x01, 0xFB, 0xDD, 0xFB, 0xDD, 0x00, 0x02, 0xFB, 0xDE,
- 0xFB, 0xE9, 0x00, 0x01, 0xFB, 0xEA, 0xFB, 0xFB, 0x00, 0x02, 0xFB, 0xFC, 0xFB, 0xFF, 0x00, 0x01,
- 0xFC, 0x00, 0xFC, 0x5D, 0x00, 0x02, 0xFC, 0x64, 0xFC, 0xF1, 0x00, 0x02, 0xFC, 0xF5, 0xFD, 0x3D,
- 0x00, 0x02, 0xFD, 0x50, 0xFD, 0x8F, 0x00, 0x02, 0xFD, 0x92, 0xFD, 0xC7, 0x00, 0x02, 0xFD, 0xF0,
- 0xFD, 0xFC, 0x00, 0x02, 0xFE, 0x80, 0xFE, 0xF4, 0x00, 0x01, 0xFE, 0xF5, 0xFE, 0xFC, 0x00, 0x02,
- 0x00, 0x02, 0x00, 0xC1, 0x03, 0x00, 0x03, 0x14, 0x00, 0xE6, 0x03, 0x15, 0x03, 0x15, 0x00, 0xE8,
- 0x03, 0x16, 0x03, 0x19, 0x00, 0xDC, 0x03, 0x1A, 0x03, 0x1A, 0x00, 0xE8, 0x03, 0x1B, 0x03, 0x1B,
- 0x00, 0xD8, 0x03, 0x1C, 0x03, 0x20, 0x00, 0xDC, 0x03, 0x21, 0x03, 0x22, 0x00, 0xCA, 0x03, 0x23,
- 0x03, 0x26, 0x00, 0xDC, 0x03, 0x27, 0x03, 0x28, 0x00, 0xCA, 0x03, 0x29, 0x03, 0x33, 0x00, 0xDC,
- 0x03, 0x34, 0x03, 0x38, 0x00, 0x01, 0x03, 0x39, 0x03, 0x3C, 0x00, 0xDC, 0x03, 0x3D, 0x03, 0x44,
- 0x00, 0xE6, 0x03, 0x45, 0x03, 0x45, 0x00, 0xF0, 0x03, 0x46, 0x03, 0x46, 0x00, 0xE6, 0x03, 0x47,
- 0x03, 0x49, 0x00, 0xDC, 0x03, 0x4A, 0x03, 0x4C, 0x00, 0xE6, 0x03, 0x4D, 0x03, 0x4E, 0x00, 0xDC,
- 0x03, 0x50, 0x03, 0x52, 0x00, 0xE6, 0x03, 0x53, 0x03, 0x56, 0x00, 0xDC, 0x03, 0x57, 0x03, 0x57,
- 0x00, 0xE6, 0x03, 0x58, 0x03, 0x58, 0x00, 0xE8, 0x03, 0x59, 0x03, 0x5A, 0x00, 0xDC, 0x03, 0x5B,
- 0x03, 0x5B, 0x00, 0xE6, 0x03, 0x5C, 0x03, 0x5C, 0x00, 0xE9, 0x03, 0x5D, 0x03, 0x5E, 0x00, 0xEA,
- 0x03, 0x5F, 0x03, 0x5F, 0x00, 0xE9, 0x03, 0x60, 0x03, 0x61, 0x00, 0xEA, 0x03, 0x62, 0x03, 0x62,
- 0x00, 0xE9, 0x03, 0x63, 0x03, 0x6F, 0x00, 0xE6, 0x04, 0x83, 0x04, 0x86, 0x00, 0xE6, 0x05, 0x91,
- 0x05, 0x91, 0x00, 0xDC, 0x05, 0x92, 0x05, 0x95, 0x00, 0xE6, 0x05, 0x96, 0x05, 0x96, 0x00, 0xDC,
- 0x05, 0x97, 0x05, 0x98, 0x00, 0xE6, 0x05, 0x99, 0x05, 0x99, 0x00, 0xE8, 0x05, 0x9A, 0x05, 0x9A,
- 0x00, 0xDE, 0x05, 0x9B, 0x05, 0x9B, 0x00, 0xDC, 0x05, 0x9C, 0x05, 0xA1, 0x00, 0xE6, 0x05, 0xA2,
- 0x05, 0xA7, 0x00, 0xDC, 0x05, 0xA8, 0x05, 0xA8, 0x00, 0xE6, 0x05, 0xA9, 0x05, 0xA9, 0x00, 0xE8,
- 0x05, 0xAA, 0x05, 0xAA, 0x00, 0xDC, 0x05, 0xAB, 0x05, 0xAC, 0x00, 0xE6, 0x05, 0xAD, 0x05, 0xAD,
- 0x00, 0xDE, 0x05, 0xAE, 0x05, 0xAE, 0x00, 0xE8, 0x05, 0xAF, 0x05, 0xAF, 0x00, 0xE6, 0x05, 0xB0,
- 0x05, 0xB8, 0x00, 0xDC, 0x05, 0xB9, 0x05, 0xB9, 0x00, 0x1B, 0x05, 0xBB, 0x05, 0xBB, 0x00, 0xDC,
- 0x05, 0xBC, 0x05, 0xBC, 0x00, 0x15, 0x05, 0xBD, 0x05, 0xBD, 0x00, 0xDC, 0x05, 0xBF, 0x05, 0xBF,
- 0x00, 0x17, 0x05, 0xC1, 0x05, 0xC1, 0x00, 0x0A, 0x05, 0xC2, 0x05, 0xC2, 0x00, 0x0B, 0x05, 0xC4,
- 0x05, 0xC4, 0x00, 0xE6, 0x05, 0xC5, 0x05, 0xC5, 0x00, 0xDC, 0x05, 0xC7, 0x05, 0xC7, 0x00, 0x12,
- 0x06, 0x10, 0x06, 0x15, 0x00, 0xE6, 0x06, 0x4B, 0x06, 0x4C, 0x00, 0x1F, 0x06, 0x4D, 0x06, 0x4D,
- 0x00, 0x1E, 0x06, 0x4E, 0x06, 0x4F, 0x00, 0x1F, 0x06, 0x50, 0x06, 0x50, 0x00, 0x1E, 0x06, 0x51,
- 0x06, 0x51, 0x00, 0x1C, 0x06, 0x52, 0x06, 0x52, 0x00, 0x1F, 0x06, 0x53, 0x06, 0x53, 0x00, 0x20,
- 0x06, 0x54, 0x06, 0x55, 0x00, 0x1B, 0x06, 0x56, 0x06, 0x56, 0x00, 0x1D, 0x06, 0x57, 0x06, 0x58,
- 0x00, 0x1F, 0x06, 0x59, 0x06, 0x5B, 0x00, 0xE6, 0x06, 0x5C, 0x06, 0x5C, 0x00, 0xDC, 0x06, 0x5D,
- 0x06, 0x5E, 0x00, 0xE6, 0x06, 0x70, 0x06, 0x70, 0x00, 0x1D, 0x06, 0xD6, 0x06, 0xDC, 0x00, 0xE6,
- 0x06, 0xDF, 0x06, 0xE0, 0x00, 0xE6, 0x06, 0xE1, 0x06, 0xE1, 0x00, 0x1F, 0x06, 0xE2, 0x06, 0xE2,
- 0x00, 0xE6, 0x06, 0xE3, 0x06, 0xE3, 0x00, 0xDC, 0x06, 0xE4, 0x06, 0xE4, 0x00, 0xE6, 0x06, 0xE7,
- 0x06, 0xE8, 0x00, 0xE6, 0x06, 0xEA, 0x06, 0xEA, 0x00, 0xDC, 0x06, 0xEB, 0x06, 0xEC, 0x00, 0xE6,
- 0x06, 0xED, 0x06, 0xED, 0x00, 0xDC, 0x07, 0x11, 0x07, 0x11, 0x00, 0x24, 0x07, 0x30, 0x07, 0x30,
- 0x00, 0xE6, 0x07, 0x31, 0x07, 0x31, 0x00, 0xDC, 0x07, 0x32, 0x07, 0x33, 0x00, 0xE6, 0x07, 0x34,
- 0x07, 0x34, 0x00, 0xDC, 0x07, 0x35, 0x07, 0x36, 0x00, 0xE6, 0x07, 0x37, 0x07, 0x39, 0x00, 0xDC,
- 0x07, 0x3A, 0x07, 0x3A, 0x00, 0xE6, 0x07, 0x3B, 0x07, 0x3C, 0x00, 0xDC, 0x07, 0x3D, 0x07, 0x3D,
- 0x00, 0xE6, 0x07, 0x3E, 0x07, 0x3E, 0x00, 0xDC, 0x07, 0x3F, 0x07, 0x41, 0x00, 0xE6, 0x07, 0x42,
- 0x07, 0x42, 0x00, 0xDC, 0x07, 0x43, 0x07, 0x43, 0x00, 0xE6, 0x07, 0x44, 0x07, 0x44, 0x00, 0xDC,
- 0x07, 0x45, 0x07, 0x45, 0x00, 0xE6, 0x07, 0x46, 0x07, 0x46, 0x00, 0xDC, 0x07, 0x47, 0x07, 0x47,
- 0x00, 0xE6, 0x07, 0x48, 0x07, 0x48, 0x00, 0xDC, 0x07, 0x49, 0x07, 0x4A, 0x00, 0xE6, 0x09, 0x3C,
- 0x09, 0x3C, 0x00, 0x07, 0x09, 0x4D, 0x09, 0x4D, 0x00, 0x09, 0x09, 0x51, 0x09, 0x51, 0x00, 0xE6,
- 0x09, 0x52, 0x09, 0x52, 0x00, 0xDC, 0x09, 0x53, 0x09, 0x54, 0x00, 0xE6, 0x09, 0xBC, 0x09, 0xBC,
- 0x00, 0x07, 0x09, 0xCD, 0x09, 0xCD, 0x00, 0x09, 0x0A, 0x3C, 0x0A, 0x3C, 0x00, 0x07, 0x0A, 0x4D,
- 0x0A, 0x4D, 0x00, 0x09, 0x0A, 0xBC, 0x0A, 0xBC, 0x00, 0x07, 0x0A, 0xCD, 0x0A, 0xCD, 0x00, 0x09,
- 0x0B, 0x3C, 0x0B, 0x3C, 0x00, 0x07, 0x0B, 0x4D, 0x0B, 0x4D, 0x00, 0x09, 0x0B, 0xCD, 0x0B, 0xCD,
- 0x00, 0x09, 0x0C, 0x4D, 0x0C, 0x4D, 0x00, 0x09, 0x0C, 0x55, 0x0C, 0x55, 0x00, 0x54, 0x0C, 0x56,
- 0x0C, 0x56, 0x00, 0x5B, 0x0C, 0xBC, 0x0C, 0xBC, 0x00, 0x07, 0x0C, 0xCD, 0x0C, 0xCD, 0x00, 0x09,
- 0x0D, 0x4D, 0x0D, 0x4D, 0x00, 0x09, 0x0D, 0xCA, 0x0D, 0xCA, 0x00, 0x09, 0x0E, 0x38, 0x0E, 0x39,
- 0x00, 0x67, 0x0E, 0x3A, 0x0E, 0x3A, 0x00, 0x09, 0x0E, 0x48, 0x0E, 0x4B, 0x00, 0x6B, 0x0E, 0xB8,
- 0x0E, 0xB9, 0x00, 0x76, 0x0E, 0xC8, 0x0E, 0xCB, 0x00, 0x7A, 0x0F, 0x18, 0x0F, 0x19, 0x00, 0xDC,
- 0x0F, 0x35, 0x0F, 0x35, 0x00, 0xDC, 0x0F, 0x37, 0x0F, 0x37, 0x00, 0xDC, 0x0F, 0x39, 0x0F, 0x39,
- 0x00, 0xD8, 0x0F, 0x71, 0x0F, 0x71, 0x00, 0x81, 0x0F, 0x72, 0x0F, 0x72, 0x00, 0x82, 0x0F, 0x74,
- 0x0F, 0x74, 0x00, 0x84, 0x0F, 0x7A, 0x0F, 0x7D, 0x00, 0x82, 0x0F, 0x80, 0x0F, 0x80, 0x00, 0x82,
- 0x0F, 0x82, 0x0F, 0x83, 0x00, 0xE6, 0x0F, 0x84, 0x0F, 0x84, 0x00, 0x09, 0x0F, 0x86, 0x0F, 0x87,
- 0x00, 0xE6, 0x0F, 0xC6, 0x0F, 0xC6, 0x00, 0xDC, 0x10, 0x37, 0x10, 0x37, 0x00, 0x07, 0x10, 0x39,
- 0x10, 0x39, 0x00, 0x09, 0x13, 0x5F, 0x13, 0x5F, 0x00, 0xE6, 0x17, 0x14, 0x17, 0x14, 0x00, 0x09,
- 0x17, 0x34, 0x17, 0x34, 0x00, 0x09, 0x17, 0xD2, 0x17, 0xD2, 0x00, 0x09, 0x17, 0xDD, 0x17, 0xDD,
- 0x00, 0xE6, 0x18, 0xA9, 0x18, 0xA9, 0x00, 0xE4, 0x19, 0x39, 0x19, 0x39, 0x00, 0xDE, 0x19, 0x3A,
- 0x19, 0x3A, 0x00, 0xE6, 0x19, 0x3B, 0x19, 0x3B, 0x00, 0xDC, 0x1A, 0x17, 0x1A, 0x17, 0x00, 0xE6,
- 0x1A, 0x18, 0x1A, 0x18, 0x00, 0xDC, 0x1D, 0xC0, 0x1D, 0xC1, 0x00, 0xE6, 0x1D, 0xC2, 0x1D, 0xC2,
- 0x00, 0xDC, 0x1D, 0xC3, 0x1D, 0xC3, 0x00, 0xE6, 0x20, 0xD0, 0x20, 0xD1, 0x00, 0xE6, 0x20, 0xD2,
- 0x20, 0xD3, 0x00, 0x01, 0x20, 0xD4, 0x20, 0xD7, 0x00, 0xE6, 0x20, 0xD8, 0x20, 0xDA, 0x00, 0x01,
- 0x20, 0xDB, 0x20, 0xDC, 0x00, 0xE6, 0x20, 0xE1, 0x20, 0xE1, 0x00, 0xE6, 0x20, 0xE5, 0x20, 0xE6,
- 0x00, 0x01, 0x20, 0xE7, 0x20, 0xE7, 0x00, 0xE6, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0xDC, 0x20, 0xE9,
- 0x20, 0xE9, 0x00, 0xE6, 0x20, 0xEA, 0x20, 0xEB, 0x00, 0x01, 0x30, 0x2A, 0x30, 0x2A, 0x00, 0xDA,
- 0x30, 0x2B, 0x30, 0x2B, 0x00, 0xE4, 0x30, 0x2C, 0x30, 0x2C, 0x00, 0xE8, 0x30, 0x2D, 0x30, 0x2D,
- 0x00, 0xDE, 0x30, 0x2E, 0x30, 0x2F, 0x00, 0xE0, 0x30, 0x99, 0x30, 0x9A, 0x00, 0x08, 0xA8, 0x06,
- 0xA8, 0x06, 0x00, 0x09, 0xFB, 0x1E, 0xFB, 0x1E, 0x00, 0x1A, 0xFE, 0x20, 0xFE, 0x23, 0x00, 0xE6,
- 0x0A, 0x0D, 0x0A, 0x0D, 0x00, 0xDC, 0x0A, 0x0F, 0x0A, 0x0F, 0x00, 0xE6, 0x0A, 0x38, 0x0A, 0x38,
- 0x00, 0xE6, 0x0A, 0x39, 0x0A, 0x39, 0x00, 0x01, 0x0A, 0x3A, 0x0A, 0x3A, 0x00, 0xDC, 0x0A, 0x3F,
- 0x0A, 0x3F, 0x00, 0x09, 0xD1, 0x65, 0xD1, 0x66, 0x00, 0xD8, 0xD1, 0x67, 0xD1, 0x69, 0x00, 0x01,
- 0xD1, 0x6D, 0xD1, 0x6D, 0x00, 0xE2, 0xD1, 0x6E, 0xD1, 0x72, 0x00, 0xD8, 0xD1, 0x7B, 0xD1, 0x82,
- 0x00, 0xDC, 0xD1, 0x85, 0xD1, 0x89, 0x00, 0xE6, 0xD1, 0x8A, 0xD1, 0x8B, 0x00, 0xDC, 0xD1, 0xAA,
- 0xD1, 0xAD, 0x00, 0xE6, 0xD2, 0x42, 0xD2, 0x44, 0x00, 0xE6
-};
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/CanonShaping.cpp b/Build/source/libs/icu-xetex/layout/CanonShaping.cpp
deleted file mode 100644
index ea109a77d98..00000000000
--- a/Build/source/libs/icu-xetex/layout/CanonShaping.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphStorage.h"
-#include "CanonShaping.h"
-#include "GlyphDefinitionTables.h"
-#include "ClassDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-void CanonShaping::sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit)
-{
- for (le_int32 j = index + 1; j < limit; j += 1) {
- le_int32 i;
- le_int32 v = indices[j];
- le_int32 c = combiningClasses[v];
-
- for (i = j - 1; i >= index; i -= 1) {
- if (c >= combiningClasses[indices[i]]) {
- break;
- }
-
- indices[i + 1] = indices[i];
- }
-
- indices[i + 1] = v;
- }
-}
-
-void CanonShaping::reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage)
-{
- const GlyphDefinitionTableHeader *gdefTable = (const GlyphDefinitionTableHeader *) glyphDefinitionTable;
- const ClassDefinitionTable *classTable = gdefTable->getMarkAttachClassDefinitionTable();
- le_int32 *combiningClasses = LE_NEW_ARRAY(le_int32, charCount);
- le_int32 *indices = LE_NEW_ARRAY(le_int32, charCount);
- LEErrorCode status = LE_NO_ERROR;
- le_int32 i;
-
- for (i = 0; i < charCount; i += 1) {
- combiningClasses[i] = classTable->getGlyphClass((LEGlyphID) inChars[i]);
- indices[i] = i;
- }
-
- for (i = 0; i < charCount; i += 1) {
- if (combiningClasses[i] != 0) {
- le_int32 mark;
-
- for (mark = i; mark < charCount; mark += 1) {
- if (combiningClasses[mark] == 0) {
- break;
- }
- }
-
- sortMarks(indices, combiningClasses, i, mark);
- }
- }
-
- le_int32 out = 0, dir = 1;
-
- if (rightToLeft) {
- out = charCount - 1;
- dir = -1;
- }
-
- for (i = 0; i < charCount; i += 1, out += dir) {
- le_int32 index = indices[i];
-
- outChars[i] = inChars[index];
- glyphStorage.setCharIndex(out, index, status);
- }
-
- LE_DELETE_ARRAY(indices);
- LE_DELETE_ARRAY(combiningClasses);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/CanonShaping.h b/Build/source/libs/icu-xetex/layout/CanonShaping.h
deleted file mode 100644
index cdf19595b59..00000000000
--- a/Build/source/libs/icu-xetex/layout/CanonShaping.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#ifndef __CANONSHAPING_H
-#define __CANONSHAPING_H
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class U_LAYOUT_API CanonShaping /* not : public UObject because all members are static */
-{
-public:
- static const le_uint8 glyphSubstitutionTable[];
- static const le_uint8 glyphDefinitionTable[];
-
- static void reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage);
-
-private:
- static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit);
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/CharSubstitutionFilter.h b/Build/source/libs/icu-xetex/layout/CharSubstitutionFilter.h
deleted file mode 100644
index 780e8ad2cdf..00000000000
--- a/Build/source/libs/icu-xetex/layout/CharSubstitutionFilter.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CHARSUBSTITUTIONFILTER_H
-#define __CHARSUBSTITUTIONFILTER_H
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-
-/**
- * This filter is used by character-based GSUB processors. It
- * accepts only those characters which the given font can display.
- *
- * @internal
- */
-class CharSubstitutionFilter : public UMemory, public LEGlyphFilter
-{
-private:
- /**
- * Holds the font which is used to test the characters.
- *
- * @internal
- */
- const LEFontInstance *fFontInstance;
-
- /**
- * The copy constructor. Not allowed!
- *
- * @internal
- */
- CharSubstitutionFilter(const CharSubstitutionFilter &other); // forbid copying of this class
-
- /**
- * The replacement operator. Not allowed!
- *
- * @internal
- */
- CharSubstitutionFilter &operator=(const CharSubstitutionFilter &other); // forbid copying of this class
-
-public:
- /**
- * The constructor.
- *
- * @param fontInstance - the font to use to test the characters.
- *
- * @internal
- */
- CharSubstitutionFilter(const LEFontInstance *fontInstance);
-
- /**
- * The destructor.
- *
- * @internal
- */
- ~CharSubstitutionFilter();
-
- /**
- * This method is used to test if a particular
- * character can be displayed by the filter's
- * font.
- *
- * @param glyph - the Unicode character code to be tested
- *
- * @return TRUE if the filter's font can display this character.
- *
- * @internal
- */
- le_bool accept(LEGlyphID glyph) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.cpp b/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.cpp
deleted file mode 100644
index d69aac0efe9..00000000000
--- a/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "ClassDefinitionTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_int32 ClassDefinitionTable::getGlyphClass(LEGlyphID glyphID) const
-{
- switch(SWAPW(classFormat)) {
- case 0:
- return 0;
-
- case 1:
- {
- const ClassDefFormat1Table *f1Table = (const ClassDefFormat1Table *) this;
-
- return f1Table->getGlyphClass(glyphID);
- }
-
- case 2:
- {
- const ClassDefFormat2Table *f2Table = (const ClassDefFormat2Table *) this;
-
- return f2Table->getGlyphClass(glyphID);
- }
-
- default:
- return 0;
- }
-}
-
-le_bool ClassDefinitionTable::hasGlyphClass(le_int32 glyphClass) const
-{
- switch(SWAPW(classFormat)) {
- case 0:
- return 0;
-
- case 1:
- {
- const ClassDefFormat1Table *f1Table = (const ClassDefFormat1Table *) this;
-
- return f1Table->hasGlyphClass(glyphClass);
- }
-
- case 2:
- {
- const ClassDefFormat2Table *f2Table = (const ClassDefFormat2Table *) this;
-
- return f2Table->hasGlyphClass(glyphClass);
- }
-
- default:
- return 0;
- }
-}
-
-le_int32 ClassDefFormat1Table::getGlyphClass(LEGlyphID glyphID) const
-{
- TTGlyphID ttGlyphID = (TTGlyphID) LE_GET_GLYPH(glyphID);
- TTGlyphID firstGlyph = SWAPW(startGlyph);
- TTGlyphID lastGlyph = firstGlyph + SWAPW(glyphCount);
-
- if (ttGlyphID > firstGlyph && ttGlyphID < lastGlyph) {
- return SWAPW(classValueArray[ttGlyphID - firstGlyph]);
- }
-
- return 0;
-}
-
-le_bool ClassDefFormat1Table::hasGlyphClass(le_int32 glyphClass) const
-{
- le_uint16 count = SWAPW(glyphCount);
- int i;
-
- for (i = 0; i < count; i += 1) {
- if (SWAPW(classValueArray[i]) == glyphClass) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-le_int32 ClassDefFormat2Table::getGlyphClass(LEGlyphID glyphID) const
-{
- TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(glyphID);
- le_uint16 rangeCount = SWAPW(classRangeCount);
- le_int32 rangeIndex =
- OpenTypeUtilities::getGlyphRangeIndex(ttGlyph, classRangeRecordArray, rangeCount);
-
- if (rangeIndex < 0) {
- return 0;
- }
-
- return SWAPW(classRangeRecordArray[rangeIndex].rangeValue);
-}
-
-le_bool ClassDefFormat2Table::hasGlyphClass(le_int32 glyphClass) const
-{
- le_uint16 rangeCount = SWAPW(classRangeCount);
- int i;
-
- for (i = 0; i < rangeCount; i += 1) {
- if (SWAPW(classRangeRecordArray[i].rangeValue) == glyphClass) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.h b/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.h
deleted file mode 100644
index 3dfe86e61a5..00000000000
--- a/Build/source/libs/icu-xetex/layout/ClassDefinitionTables.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CLASSDEFINITIONTABLES_H
-#define __CLASSDEFINITIONTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct ClassDefinitionTable
-{
- le_uint16 classFormat;
-
- le_int32 getGlyphClass(LEGlyphID glyphID) const;
- le_bool hasGlyphClass(le_int32 glyphClass) const;
-};
-
-struct ClassDefFormat1Table : ClassDefinitionTable
-{
- TTGlyphID startGlyph;
- le_uint16 glyphCount;
- le_uint16 classValueArray[ANY_NUMBER];
-
- le_int32 getGlyphClass(LEGlyphID glyphID) const;
- le_bool hasGlyphClass(le_int32 glyphClass) const;
-};
-
-struct ClassRangeRecord
-{
- TTGlyphID start;
- TTGlyphID end;
- le_uint16 classValue;
-};
-
-struct ClassDefFormat2Table : ClassDefinitionTable
-{
- le_uint16 classRangeCount;
- GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
-
- le_int32 getGlyphClass(LEGlyphID glyphID) const;
- le_bool hasGlyphClass(le_int32 glyphClass) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/ContextualGlyphInsertion.h b/Build/source/libs/icu-xetex/layout/ContextualGlyphInsertion.h
deleted file mode 100644
index ead88425ddc..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualGlyphInsertion.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CONTEXTUALGLYPHINSERTION_H
-#define __CONTEXTUALGLYPHINSERTION_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "StateTables.h"
-#include "MorphTables.h"
-#include "MorphStateTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct ContextualGlyphInsertionHeader : MorphStateTableHeader
-{
-};
-
-enum ContextualGlyphInsertionFlags
-{
- cgiSetMark = 0x8000,
- cgiDontAdvance = 0x4000,
- cgiCurrentIsKashidaLike = 0x2000,
- cgiMarkedIsKashidaLike = 0x1000,
- cgiCurrentInsertBefore = 0x0800,
- cgiMarkInsertBefore = 0x0400,
- cgiCurrentInsertCountMask = 0x03E0,
- cgiMarkedInsertCountMask = 0x001F
-};
-
-struct LigatureSubstitutionStateEntry : StateEntry
-{
- ByteOffset currentInsertionListOffset;
- ByteOffset markedInsertionListOffset;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.cpp b/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.cpp
deleted file mode 100644
index 94c4a60b075..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "StateTables.h"
-#include "MorphStateTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "ContextualGlyphSubstProc.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ContextualGlyphSubstitutionProcessor)
-
-ContextualGlyphSubstitutionProcessor::ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : StateTableProcessor(morphSubtableHeader)
-{
- contextualGlyphSubstitutionHeader = (const ContextualGlyphSubstitutionHeader *) morphSubtableHeader;
- substitutionTableOffset = SWAPW(contextualGlyphSubstitutionHeader->substitutionTableOffset);
-
- entryTable = (const ContextualGlyphSubstitutionStateEntry *) ((char *) &stateTableHeader->stHeader + entryTableOffset);
-}
-
-ContextualGlyphSubstitutionProcessor::~ContextualGlyphSubstitutionProcessor()
-{
-}
-
-void ContextualGlyphSubstitutionProcessor::beginStateTable()
-{
- markGlyph = 0;
-}
-
-ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
-{
- const ContextualGlyphSubstitutionStateEntry *entry = &entryTable[index];
- ByteOffset newState = SWAPW(entry->newStateOffset);
- le_int16 flags = SWAPW(entry->flags);
- WordOffset markOffset = SWAPW(entry->markOffset);
- WordOffset currOffset = SWAPW(entry->currOffset);
-
- if (markOffset != 0) {
- const le_int16 *table = (const le_int16 *) ((char *) &stateTableHeader->stHeader + markOffset * 2);
- LEGlyphID mGlyph = glyphStorage[markGlyph];
- TTGlyphID newGlyph = SWAPW(table[LE_GET_GLYPH(mGlyph)]);
-
- glyphStorage[markGlyph] = LE_SET_GLYPH(mGlyph, newGlyph);
- }
-
- if (currOffset != 0) {
- const le_int16 *table = (const le_int16 *) ((char *) &stateTableHeader->stHeader + currOffset * 2);
- LEGlyphID thisGlyph = glyphStorage[currGlyph];
- TTGlyphID newGlyph = SWAPW(table[LE_GET_GLYPH(thisGlyph)]);
-
- glyphStorage[currGlyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
- }
-
- if (flags & cgsSetMark) {
- markGlyph = currGlyph;
- }
-
- if (!(flags & cgsDontAdvance)) {
- // should handle reverse too!
- currGlyph += 1;
- }
-
- return newState;
-}
-
-void ContextualGlyphSubstitutionProcessor::endStateTable()
-{
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.h b/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.h
deleted file mode 100644
index b0c5a6b38c3..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstProc.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
-#define __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "ContextualGlyphSubstitution.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class ContextualGlyphSubstitutionProcessor : public StateTableProcessor
-{
-public:
- virtual void beginStateTable();
-
- virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index);
-
- virtual void endStateTable();
-
- ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
- virtual ~ContextualGlyphSubstitutionProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- ContextualGlyphSubstitutionProcessor();
-
-protected:
- ByteOffset substitutionTableOffset;
- const ContextualGlyphSubstitutionStateEntry *entryTable;
-
- le_int32 markGlyph;
-
- const ContextualGlyphSubstitutionHeader *contextualGlyphSubstitutionHeader;
-
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstitution.h b/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstitution.h
deleted file mode 100644
index 72c23559db9..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualGlyphSubstitution.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CONTEXTUALGLYPHSUBSTITUTION_H
-#define __CONTEXTUALGLYPHSUBSTITUTION_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "StateTables.h"
-#include "MorphTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct ContextualGlyphSubstitutionHeader : MorphStateTableHeader
-{
- ByteOffset substitutionTableOffset;
-};
-
-enum ContextualGlyphSubstitutionFlags
-{
- cgsSetMark = 0x8000,
- cgsDontAdvance = 0x4000,
- cgsReserved = 0x3FFF
-};
-
-struct ContextualGlyphSubstitutionStateEntry : StateEntry
-{
- WordOffset markOffset;
- WordOffset currOffset;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp
deleted file mode 100644
index 1d8f28c8c17..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp
+++ /dev/null
@@ -1,522 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "ContextualSubstSubtables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-#include "CoverageTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-/*
- NOTE: This could be optimized somewhat by keeping track
- of the previous sequenceIndex in the loop and doing next()
- or prev() of the delta between that and the current
- sequenceIndex instead of always resetting to the front.
-*/
-void ContextualSubstitutionBase::applySubstitutionLookups(
- const LookupProcessor *lookupProcessor,
- const SubstitutionLookupRecord *substLookupRecordArray,
- le_uint16 substCount,
- GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance,
- le_int32 position)
-{
- GlyphIterator tempIterator(*glyphIterator);
-
- for (le_int16 subst = 0; subst < substCount; subst += 1) {
- le_uint16 sequenceIndex = SWAPW(substLookupRecordArray[subst].sequenceIndex);
- le_uint16 lookupListIndex = SWAPW(substLookupRecordArray[subst].lookupListIndex);
-
- tempIterator.setCurrStreamPosition(position);
- tempIterator.next(sequenceIndex);
-
- lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance);
- }
-}
-
-le_bool ContextualSubstitutionBase::matchGlyphIDs(const TTGlyphID *glyphArray, le_uint16 glyphCount,
- GlyphIterator *glyphIterator, le_bool backtrack)
-{
- le_int32 direction = 1;
- le_int32 match = 0;
-
- if (backtrack) {
- match = glyphCount -1;
- direction = -1;
- }
-
- while (glyphCount > 0) {
- if (! glyphIterator->next()) {
- return FALSE;
- }
-
- TTGlyphID glyph = (TTGlyphID) glyphIterator->getCurrGlyphID();
-
- if (glyph != SWAPW(glyphArray[match])) {
- return FALSE;
- }
-
- glyphCount -= 1;
- match += direction;
- }
-
- return TRUE;
-}
-
-le_bool ContextualSubstitutionBase::matchGlyphClasses(const le_uint16 *classArray, le_uint16 glyphCount,
- GlyphIterator *glyphIterator,
- const ClassDefinitionTable *classDefinitionTable,
- le_bool backtrack)
-{
- le_int32 direction = 1;
- le_int32 match = 0;
-
- if (backtrack) {
- match = glyphCount - 1;
- direction = -1;
- }
-
- while (glyphCount > 0) {
- if (! glyphIterator->next()) {
- return FALSE;
- }
-
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 glyphClass = classDefinitionTable->getGlyphClass(glyph);
- le_int32 matchClass = SWAPW(classArray[match]);
-
- if (glyphClass != matchClass) {
- // Some fonts, e.g. Traditional Arabic, have classes
- // in the class array which aren't in the class definition
- // table. If we're looking for such a class, pretend that
- // we found it.
- if (classDefinitionTable->hasGlyphClass(matchClass)) {
- return FALSE;
- }
- }
-
- glyphCount -= 1;
- match += direction;
- }
-
- return TRUE;
-}
-
-le_bool ContextualSubstitutionBase::matchGlyphCoverages(const Offset *coverageTableOffsetArray, le_uint16 glyphCount,
- GlyphIterator *glyphIterator, const char *offsetBase, le_bool backtrack)
-{
- le_int32 direction = 1;
- le_int32 glyph = 0;
-
- if (backtrack) {
- glyph = glyphCount - 1;
- direction = -1;
- }
-
- while (glyphCount > 0) {
- Offset coverageTableOffset = SWAPW(coverageTableOffsetArray[glyph]);
- const CoverageTable *coverageTable = (const CoverageTable *) (offsetBase + coverageTableOffset);
-
- if (! glyphIterator->next()) {
- return FALSE;
- }
-
- if (coverageTable->getGlyphCoverage((LEGlyphID) glyphIterator->getCurrGlyphID()) < 0) {
- return FALSE;
- }
-
- glyphCount -= 1;
- glyph += direction;
- }
-
- return TRUE;
-}
-
-le_uint32 ContextualSubstitutionSubtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- switch(SWAPW(subtableFormat))
- {
- case 0:
- return 0;
-
- case 1:
- {
- const ContextualSubstitutionFormat1Subtable *subtable = (const ContextualSubstitutionFormat1Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- case 2:
- {
- const ContextualSubstitutionFormat2Subtable *subtable = (const ContextualSubstitutionFormat2Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- case 3:
- {
- const ContextualSubstitutionFormat3Subtable *subtable = (const ContextualSubstitutionFormat3Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- default:
- return 0;
- }
-}
-
-le_uint32 ContextualSubstitutionFormat1Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- le_uint16 srSetCount = SWAPW(subRuleSetCount);
-
- if (coverageIndex < srSetCount) {
- Offset subRuleSetTableOffset = SWAPW(subRuleSetTableOffsetArray[coverageIndex]);
- const SubRuleSetTable *subRuleSetTable =
- (const SubRuleSetTable *) ((char *) this + subRuleSetTableOffset);
- le_uint16 subRuleCount = SWAPW(subRuleSetTable->subRuleCount);
- le_int32 position = glyphIterator->getCurrStreamPosition();
-
- for (le_uint16 subRule = 0; subRule < subRuleCount; subRule += 1) {
- Offset subRuleTableOffset =
- SWAPW(subRuleSetTable->subRuleTableOffsetArray[subRule]);
- const SubRuleTable *subRuleTable =
- (const SubRuleTable *) ((char *) subRuleSetTable + subRuleTableOffset);
- le_uint16 matchCount = SWAPW(subRuleTable->glyphCount) - 1;
- le_uint16 substCount = SWAPW(subRuleTable->substCount);
-
- if (matchGlyphIDs(subRuleTable->inputGlyphArray, matchCount, glyphIterator)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &subRuleTable->inputGlyphArray[matchCount];
-
- applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position);
-
- return matchCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(position);
- }
- }
-
- // XXX If we get here, the table is mal-formed...
- }
-
- return 0;
-}
-
-le_uint32 ContextualSubstitutionFormat2Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- const ClassDefinitionTable *classDefinitionTable =
- (const ClassDefinitionTable *) ((char *) this + SWAPW(classDefTableOffset));
- le_uint16 scSetCount = SWAPW(subClassSetCount);
- le_int32 setClass = classDefinitionTable->getGlyphClass(glyphIterator->getCurrGlyphID());
-
- if (setClass < scSetCount && subClassSetTableOffsetArray[setClass] != 0) {
- Offset subClassSetTableOffset = SWAPW(subClassSetTableOffsetArray[setClass]);
- const SubClassSetTable *subClassSetTable =
- (const SubClassSetTable *) ((char *) this + subClassSetTableOffset);
- le_uint16 subClassRuleCount = SWAPW(subClassSetTable->subClassRuleCount);
- le_int32 position = glyphIterator->getCurrStreamPosition();
-
- for (le_uint16 scRule = 0; scRule < subClassRuleCount; scRule += 1) {
- Offset subClassRuleTableOffset =
- SWAPW(subClassSetTable->subClassRuleTableOffsetArray[scRule]);
- const SubClassRuleTable *subClassRuleTable =
- (const SubClassRuleTable *) ((char *) subClassSetTable + subClassRuleTableOffset);
- le_uint16 matchCount = SWAPW(subClassRuleTable->glyphCount) - 1;
- le_uint16 substCount = SWAPW(subClassRuleTable->substCount);
-
- if (matchGlyphClasses(subClassRuleTable->classArray, matchCount, glyphIterator, classDefinitionTable)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &subClassRuleTable->classArray[matchCount];
-
- applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position);
-
- return matchCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(position);
- }
- }
-
- // XXX If we get here, the table is mal-formed...
- }
-
- return 0;
-}
-
-le_uint32 ContextualSubstitutionFormat3Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance)const
-{
- le_uint16 gCount = SWAPW(glyphCount);
- le_uint16 subCount = SWAPW(substCount);
- le_int32 position = glyphIterator->getCurrStreamPosition();
-
- // Back up the glyph iterator so that we
- // can call next() before the check, which
- // will leave it pointing at the last glyph
- // that matched when we're done.
- glyphIterator->prev();
-
- if (ContextualSubstitutionBase::matchGlyphCoverages(coverageTableOffsetArray, gCount, glyphIterator, (const char *) this)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &coverageTableOffsetArray[gCount];
-
- ContextualSubstitutionBase::applySubstitutionLookups(lookupProcessor, substLookupRecordArray, subCount, glyphIterator, fontInstance, position);
-
- return gCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(position);
-
- return 0;
-}
-
-le_uint32 ChainingContextualSubstitutionSubtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- switch(SWAPW(subtableFormat))
- {
- case 0:
- return 0;
-
- case 1:
- {
- const ChainingContextualSubstitutionFormat1Subtable *subtable = (const ChainingContextualSubstitutionFormat1Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- case 2:
- {
- const ChainingContextualSubstitutionFormat2Subtable *subtable = (const ChainingContextualSubstitutionFormat2Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- case 3:
- {
- const ChainingContextualSubstitutionFormat3Subtable *subtable = (const ChainingContextualSubstitutionFormat3Subtable *) this;
-
- return subtable->process(lookupProcessor, glyphIterator, fontInstance);
- }
-
- default:
- return 0;
- }
-}
-
-// NOTE: This could be a #define, but that seems to confuse
-// the Visual Studio .NET 2003 compiler on the calls to the
-// GlyphIterator constructor. It somehow can't decide if
-// emptyFeatureList matches an le_uint32 or an le_uint16...
-static const FeatureMask emptyFeatureList = 0x00000000UL;
-
-le_uint32 ChainingContextualSubstitutionFormat1Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- le_uint16 srSetCount = SWAPW(chainSubRuleSetCount);
-
- if (coverageIndex < srSetCount) {
- Offset chainSubRuleSetTableOffset = SWAPW(chainSubRuleSetTableOffsetArray[coverageIndex]);
- const ChainSubRuleSetTable *chainSubRuleSetTable =
- (const ChainSubRuleSetTable *) ((char *) this + chainSubRuleSetTableOffset);
- le_uint16 chainSubRuleCount = SWAPW(chainSubRuleSetTable->chainSubRuleCount);
- le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
-
- for (le_uint16 subRule = 0; subRule < chainSubRuleCount; subRule += 1) {
- Offset chainSubRuleTableOffset =
- SWAPW(chainSubRuleSetTable->chainSubRuleTableOffsetArray[subRule]);
- const ChainSubRuleTable *chainSubRuleTable =
- (const ChainSubRuleTable *) ((char *) chainSubRuleSetTable + chainSubRuleTableOffset);
- le_uint16 backtrackGlyphCount = SWAPW(chainSubRuleTable->backtrackGlyphCount);
- le_uint16 inputGlyphCount = (le_uint16) SWAPW(chainSubRuleTable->backtrackGlyphArray[backtrackGlyphCount]) - 1;
- const TTGlyphID *inputGlyphArray = &chainSubRuleTable->backtrackGlyphArray[backtrackGlyphCount + 1];
- le_uint16 lookaheadGlyphCount = (le_uint16) SWAPW(inputGlyphArray[inputGlyphCount]);
- const TTGlyphID *lookaheadGlyphArray = &inputGlyphArray[inputGlyphCount + 1];
- le_uint16 substCount = (le_uint16) SWAPW(lookaheadGlyphArray[lookaheadGlyphCount]);
-
- tempIterator.setCurrStreamPosition(position);
-
- if (! tempIterator.prev(backtrackGlyphCount)) {
- continue;
- }
-
- tempIterator.prev();
- if (! matchGlyphIDs(chainSubRuleTable->backtrackGlyphArray, backtrackGlyphCount, &tempIterator, TRUE)) {
- continue;
- }
-
- tempIterator.setCurrStreamPosition(position);
- tempIterator.next(inputGlyphCount);
- if (!matchGlyphIDs(lookaheadGlyphArray, lookaheadGlyphCount, &tempIterator)) {
- continue;
- }
-
- if (matchGlyphIDs(inputGlyphArray, inputGlyphCount, glyphIterator)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &lookaheadGlyphArray[lookaheadGlyphCount + 1];
-
- applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position);
-
- return inputGlyphCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(position);
- }
- }
-
- // XXX If we get here, the table is mal-formed...
- }
-
- return 0;
-}
-
-le_uint32 ChainingContextualSubstitutionFormat2Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- const ClassDefinitionTable *backtrackClassDefinitionTable =
- (const ClassDefinitionTable *) ((char *) this + SWAPW(backtrackClassDefTableOffset));
- const ClassDefinitionTable *inputClassDefinitionTable =
- (const ClassDefinitionTable *) ((char *) this + SWAPW(inputClassDefTableOffset));
- const ClassDefinitionTable *lookaheadClassDefinitionTable =
- (const ClassDefinitionTable *) ((char *) this + SWAPW(lookaheadClassDefTableOffset));
- le_uint16 scSetCount = SWAPW(chainSubClassSetCount);
- le_int32 setClass = inputClassDefinitionTable->getGlyphClass(glyphIterator->getCurrGlyphID());
-
- if (setClass < scSetCount && chainSubClassSetTableOffsetArray[setClass] != 0) {
- Offset chainSubClassSetTableOffset = SWAPW(chainSubClassSetTableOffsetArray[setClass]);
- const ChainSubClassSetTable *chainSubClassSetTable =
- (const ChainSubClassSetTable *) ((char *) this + chainSubClassSetTableOffset);
- le_uint16 chainSubClassRuleCount = SWAPW(chainSubClassSetTable->chainSubClassRuleCount);
- le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
-
- for (le_uint16 scRule = 0; scRule < chainSubClassRuleCount; scRule += 1) {
- Offset chainSubClassRuleTableOffset =
- SWAPW(chainSubClassSetTable->chainSubClassRuleTableOffsetArray[scRule]);
- const ChainSubClassRuleTable *chainSubClassRuleTable =
- (const ChainSubClassRuleTable *) ((char *) chainSubClassSetTable + chainSubClassRuleTableOffset);
- le_uint16 backtrackGlyphCount = SWAPW(chainSubClassRuleTable->backtrackGlyphCount);
- le_uint16 inputGlyphCount = SWAPW(chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount]) - 1;
- const le_uint16 *inputClassArray = &chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount + 1];
- le_uint16 lookaheadGlyphCount = SWAPW(inputClassArray[inputGlyphCount]);
- const le_uint16 *lookaheadClassArray = &inputClassArray[inputGlyphCount + 1];
- le_uint16 substCount = SWAPW(lookaheadClassArray[lookaheadGlyphCount]);
-
-
- tempIterator.setCurrStreamPosition(position);
-
- if (! tempIterator.prev(backtrackGlyphCount)) {
- continue;
- }
-
- tempIterator.prev();
- if (! matchGlyphClasses(chainSubClassRuleTable->backtrackClassArray, backtrackGlyphCount,
- &tempIterator, backtrackClassDefinitionTable, TRUE)) {
- continue;
- }
-
- tempIterator.setCurrStreamPosition(position);
- tempIterator.next(inputGlyphCount);
- if (! matchGlyphClasses(lookaheadClassArray, lookaheadGlyphCount, &tempIterator, lookaheadClassDefinitionTable)) {
- continue;
- }
-
- if (matchGlyphClasses(inputClassArray, inputGlyphCount, glyphIterator, inputClassDefinitionTable)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &lookaheadClassArray[lookaheadGlyphCount + 1];
-
- applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position);
-
- return inputGlyphCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(position);
- }
- }
-
- // XXX If we get here, the table is mal-formed...
- }
-
- return 0;
-}
-
-le_uint32 ChainingContextualSubstitutionFormat3Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- le_uint16 backtrkGlyphCount = SWAPW(backtrackGlyphCount);
- le_uint16 inputGlyphCount = (le_uint16) SWAPW(backtrackCoverageTableOffsetArray[backtrkGlyphCount]);
- const Offset *inputCoverageTableOffsetArray = &backtrackCoverageTableOffsetArray[backtrkGlyphCount + 1];
- const le_uint16 lookaheadGlyphCount = (le_uint16) SWAPW(inputCoverageTableOffsetArray[inputGlyphCount]);
- const Offset *lookaheadCoverageTableOffsetArray = &inputCoverageTableOffsetArray[inputGlyphCount + 1];
- le_uint16 substCount = (le_uint16) SWAPW(lookaheadCoverageTableOffsetArray[lookaheadGlyphCount]);
- le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
-
- if (! tempIterator.prev(backtrkGlyphCount)) {
- return 0;
- }
-
- tempIterator.prev();
- if (! ContextualSubstitutionBase::matchGlyphCoverages(backtrackCoverageTableOffsetArray,
- backtrkGlyphCount, &tempIterator, (const char *) this, TRUE)) {
- return 0;
- }
-
- tempIterator.setCurrStreamPosition(position);
- tempIterator.next(inputGlyphCount - 1);
- if (! ContextualSubstitutionBase::matchGlyphCoverages(lookaheadCoverageTableOffsetArray,
- lookaheadGlyphCount, &tempIterator, (const char *) this)) {
- return 0;
- }
-
- // Back up the glyph iterator so that we
- // can call next() before the check, which
- // will leave it pointing at the last glyph
- // that matched when we're done.
- glyphIterator->prev();
-
- if (ContextualSubstitutionBase::matchGlyphCoverages(inputCoverageTableOffsetArray,
- inputGlyphCount, glyphIterator, (const char *) this)) {
- const SubstitutionLookupRecord *substLookupRecordArray =
- (const SubstitutionLookupRecord *) &lookaheadCoverageTableOffsetArray[lookaheadGlyphCount + 1];
-
- ContextualSubstitutionBase::applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position);
-
- return inputGlyphCount;
- }
-
- glyphIterator->setCurrStreamPosition(position);
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.h b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.h
deleted file mode 100644
index a77a196d1f9..00000000000
--- a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __CONTEXTUALSUBSTITUTIONSUBTABLES_H
-#define __CONTEXTUALSUBSTITUTIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-
-U_NAMESPACE_BEGIN
-
-struct SubstitutionLookupRecord
-{
- le_uint16 sequenceIndex;
- le_uint16 lookupListIndex;
-};
-
-struct ContextualSubstitutionBase : GlyphSubstitutionSubtable
-{
- static le_bool matchGlyphIDs(
- const TTGlyphID *glyphArray, le_uint16 glyphCount, GlyphIterator *glyphIterator,
- le_bool backtrack = FALSE);
-
- static le_bool matchGlyphClasses(
- const le_uint16 *classArray, le_uint16 glyphCount, GlyphIterator *glyphIterator,
- const ClassDefinitionTable *classDefinitionTable, le_bool backtrack = FALSE);
-
- static le_bool matchGlyphCoverages(
- const Offset *coverageTableOffsetArray, le_uint16 glyphCount,
- GlyphIterator *glyphIterator, const char *offsetBase, le_bool backtrack = FALSE);
-
- static void applySubstitutionLookups(
- const LookupProcessor *lookupProcessor,
- const SubstitutionLookupRecord *substLookupRecordArray,
- le_uint16 substCount,
- GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance,
- le_int32 position);
-};
-
-struct ContextualSubstitutionSubtable : ContextualSubstitutionBase
-{
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct ContextualSubstitutionFormat1Subtable : ContextualSubstitutionSubtable
-{
- le_uint16 subRuleSetCount;
- Offset subRuleSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct SubRuleSetTable
-{
- le_uint16 subRuleCount;
- Offset subRuleTableOffsetArray[ANY_NUMBER];
-
-};
-
-// NOTE: Multiple variable size arrays!!
-struct SubRuleTable
-{
- le_uint16 glyphCount;
- le_uint16 substCount;
- TTGlyphID inputGlyphArray[ANY_NUMBER];
- //SubstitutionLookupRecord substLookupRecordArray[ANY_NUMBER];
-};
-
-struct ContextualSubstitutionFormat2Subtable : ContextualSubstitutionSubtable
-{
- Offset classDefTableOffset;
- le_uint16 subClassSetCount;
- Offset subClassSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct SubClassSetTable
-{
- le_uint16 subClassRuleCount;
- Offset subClassRuleTableOffsetArray[ANY_NUMBER];
-};
-
-// NOTE: Multiple variable size arrays!!
-struct SubClassRuleTable
-{
- le_uint16 glyphCount;
- le_uint16 substCount;
- le_uint16 classArray[ANY_NUMBER];
- //SubstitutionLookupRecord substLookupRecordArray[ANY_NUMBER];
-};
-
-// NOTE: This isn't a subclass of GlyphSubstitutionSubtable 'cause
-// it has an array of coverage tables instead of a single coverage table...
-//
-// NOTE: Multiple variable size arrays!!
-struct ContextualSubstitutionFormat3Subtable
-{
- le_uint16 substFormat;
- le_uint16 glyphCount;
- le_uint16 substCount;
- Offset coverageTableOffsetArray[ANY_NUMBER];
- //SubstitutionLookupRecord substLookupRecord[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct ChainingContextualSubstitutionSubtable : ContextualSubstitutionBase
-{
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct ChainingContextualSubstitutionFormat1Subtable : ChainingContextualSubstitutionSubtable
-{
- le_uint16 chainSubRuleSetCount;
- Offset chainSubRuleSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct ChainSubRuleSetTable
-{
- le_uint16 chainSubRuleCount;
- Offset chainSubRuleTableOffsetArray[ANY_NUMBER];
-
-};
-
-// NOTE: Multiple variable size arrays!!
-struct ChainSubRuleTable
-{
- le_uint16 backtrackGlyphCount;
- TTGlyphID backtrackGlyphArray[ANY_NUMBER];
- //le_uint16 inputGlyphCount;
- //TTGlyphID inputGlyphArray[ANY_NUMBER];
- //le_uint16 lookaheadGlyphCount;
- //TTGlyphID lookaheadGlyphArray[ANY_NUMBER];
- //le_uint16 substCount;
- //SubstitutionLookupRecord substLookupRecordArray[ANY_NUMBER];
-};
-
-struct ChainingContextualSubstitutionFormat2Subtable : ChainingContextualSubstitutionSubtable
-{
- Offset backtrackClassDefTableOffset;
- Offset inputClassDefTableOffset;
- Offset lookaheadClassDefTableOffset;
- le_uint16 chainSubClassSetCount;
- Offset chainSubClassSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct ChainSubClassSetTable
-{
- le_uint16 chainSubClassRuleCount;
- Offset chainSubClassRuleTableOffsetArray[ANY_NUMBER];
-};
-
-// NOTE: Multiple variable size arrays!!
-struct ChainSubClassRuleTable
-{
- le_uint16 backtrackGlyphCount;
- le_uint16 backtrackClassArray[ANY_NUMBER];
- //le_uint16 inputGlyphCount;
- //le_uint16 inputClassArray[ANY_NUMBER];
- //le_uint16 lookaheadGlyphCount;
- //le_uint16 lookaheadClassArray[ANY_NUMBER];
- //le_uint16 substCount;
- //SubstitutionLookupRecord substLookupRecordArray[ANY_NUMBER];
-};
-
-// NOTE: This isn't a subclass of GlyphSubstitutionSubtable 'cause
-// it has arrays of coverage tables instead of a single coverage table...
-//
-// NOTE: Multiple variable size arrays!!
-struct ChainingContextualSubstitutionFormat3Subtable
-{
- le_uint16 substFormat;
- le_uint16 backtrackGlyphCount;
- Offset backtrackCoverageTableOffsetArray[ANY_NUMBER];
- //le_uint16 inputGlyphCount;
- //Offset inputCoverageTableOffsetArray[ANY_NUMBER];
- //le_uint16 lookaheadGlyphCount;
- //le_uint16 lookaheadCoverageTableOffsetArray[ANY_NUMBER];
- //le_uint16 substCount;
- //SubstitutionLookupRecord substLookupRecord[ANY_NUMBER];
-
- le_uint32 process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/CoverageTables.cpp b/Build/source/libs/icu-xetex/layout/CoverageTables.cpp
deleted file mode 100644
index 3b8cd5b31df..00000000000
--- a/Build/source/libs/icu-xetex/layout/CoverageTables.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "CoverageTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_int32 CoverageTable::getGlyphCoverage(LEGlyphID glyphID) const
-{
- switch(SWAPW(coverageFormat))
- {
- case 0:
- return -1;
-
- case 1:
- {
- const CoverageFormat1Table *f1Table = (const CoverageFormat1Table *) this;
-
- return f1Table->getGlyphCoverage(glyphID);
- }
-
- case 2:
- {
- const CoverageFormat2Table *f2Table = (const CoverageFormat2Table *) this;
-
- return f2Table->getGlyphCoverage(glyphID);
- }
-
- default:
- return -1;
- }
-}
-
-le_int32 CoverageFormat1Table::getGlyphCoverage(LEGlyphID glyphID) const
-{
- TTGlyphID ttGlyphID = (TTGlyphID) LE_GET_GLYPH(glyphID);
- le_uint16 count = SWAPW(glyphCount);
- le_uint8 bit = OpenTypeUtilities::highBit(count);
- le_uint16 power = 1 << bit;
- le_uint16 extra = count - power;
- le_uint16 probe = power;
- le_uint16 index = 0;
-
- if (SWAPW(glyphArray[extra]) <= ttGlyphID) {
- index = extra;
- }
-
- while (probe > (1 << 0)) {
- probe >>= 1;
-
- if (SWAPW(glyphArray[index + probe]) <= ttGlyphID) {
- index += probe;
- }
- }
-
- if (SWAPW(glyphArray[index]) == ttGlyphID) {
- return index;
- }
-
- return -1;
-}
-
-le_int32 CoverageFormat2Table::getGlyphCoverage(LEGlyphID glyphID) const
-{
- TTGlyphID ttGlyphID = (TTGlyphID) LE_GET_GLYPH(glyphID);
- le_uint16 count = SWAPW(rangeCount);
- le_int32 rangeIndex =
- OpenTypeUtilities::getGlyphRangeIndex(ttGlyphID, rangeRecordArray, count);
-
- if (rangeIndex < 0) {
- return -1;
- }
-
- TTGlyphID firstInRange = SWAPW(rangeRecordArray[rangeIndex].firstGlyph);
- le_uint16 startCoverageIndex = SWAPW(rangeRecordArray[rangeIndex].rangeValue);
-
- return startCoverageIndex + (ttGlyphID - firstInRange);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/CoverageTables.h b/Build/source/libs/icu-xetex/layout/CoverageTables.h
deleted file mode 100644
index 5e9dbaa15a7..00000000000
--- a/Build/source/libs/icu-xetex/layout/CoverageTables.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __COVERAGETABLES_H
-#define __COVERAGETABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct CoverageTable
-{
- le_uint16 coverageFormat;
-
- le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
-};
-
-struct CoverageFormat1Table : CoverageTable
-{
- le_uint16 glyphCount;
- TTGlyphID glyphArray[ANY_NUMBER];
-
- le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
-};
-
-struct CoverageFormat2Table : CoverageTable
-{
- le_uint16 rangeCount;
- GlyphRangeRecord rangeRecordArray[ANY_NUMBER];
-
- le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.cpp b/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.cpp
deleted file mode 100644
index 40c38fa49ce..00000000000
--- a/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "CursiveAttachmentSubtables.h"
-#include "AnchorTables.h"
-#include "GlyphIterator.h"
-#include "OpenTypeUtilities.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 CursiveAttachmentSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyphID = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyphID);
- le_uint16 eeCount = SWAPW(entryExitCount);
-
- if (coverageIndex < 0 || coverageIndex >= eeCount) {
- glyphIterator->setCursiveGlyph();
- return 0;
- }
-
- LEPoint entryAnchor, exitAnchor;
- Offset entryOffset = SWAPW(entryExitRecords[coverageIndex].entryAnchor);
- Offset exitOffset = SWAPW(entryExitRecords[coverageIndex].exitAnchor);
-
- if (entryOffset != 0) {
- const AnchorTable *entryAnchorTable = (const AnchorTable *) ((char *) this + entryOffset);
-
- entryAnchorTable->getAnchor(glyphID, fontInstance, entryAnchor);
- glyphIterator->setCursiveEntryPoint(entryAnchor);
- }
-
- if (exitOffset != 0) {
- const AnchorTable *exitAnchorTable = (const AnchorTable *) ((char *) this + exitOffset);
-
- exitAnchorTable->getAnchor(glyphID, fontInstance, exitAnchor);
- glyphIterator->setCursiveExitPoint(exitAnchor);
- }
-
- return 1;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.h b/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.h
deleted file mode 100644
index 5eefb2f9888..00000000000
--- a/Build/source/libs/icu-xetex/layout/CursiveAttachmentSubtables.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __CURSIVEATTACHMENTSUBTABLES_H
-#define __CURSIVEATTACHMENTSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-class GlyphIterator;
-
-struct EntryExitRecord
-{
- Offset entryAnchor;
- Offset exitAnchor;
-};
-
-struct CursiveAttachmentSubtable : GlyphPositioningSubtable
-{
- le_uint16 entryExitCount;
- EntryExitRecord entryExitRecords[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h b/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h
deleted file mode 100644
index d9aafdcb867..00000000000
--- a/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __DEFAULTCHARMAPPER_H
-#define __DEFAULTCHARMAPPER_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * This class is an instance of LECharMapper which
- * implements control character filtering and bidi
- * mirroring.
- *
- * @see LECharMapper
- */
-class DefaultCharMapper : public UMemory, public LECharMapper
-{
-private:
- le_bool fFilterControls;
- le_bool fMirror;
-
- static const LEUnicode32 controlChars[];
-
- static const le_int32 controlCharsCount;
-
- static const LEUnicode32 mirroredChars[];
- static const LEUnicode32 srahCderorrim[];
-
- static const le_int32 mirroredCharsCount;
-
-public:
- DefaultCharMapper(le_bool filterControls, le_bool mirror)
- : fFilterControls(filterControls), fMirror(mirror)
- {
- // nothing
- };
-
- ~DefaultCharMapper()
- {
- // nada
- };
-
- LEUnicode32 mapChar(LEUnicode32 ch) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/DeviceTables.cpp b/Build/source/libs/icu-xetex/layout/DeviceTables.cpp
deleted file mode 100644
index 4945c25caec..00000000000
--- a/Build/source/libs/icu-xetex/layout/DeviceTables.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * @(#)DeviceTables.cpp 1.5 00/03/15
- *
- * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "DeviceTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-const le_uint16 DeviceTable::fieldMasks[] = {0x0003, 0x000F, 0x00FF};
-const le_uint16 DeviceTable::fieldSignBits[] = {0x0002, 0x0008, 0x0080};
-const le_uint16 DeviceTable::fieldBits[] = { 2, 4, 8};
-
-le_int16 DeviceTable::getAdjustment(le_uint16 ppem) const
-{
- le_uint16 start = SWAPW(startSize);
- le_uint16 format = SWAPW(deltaFormat) - 1;
- le_int16 result = 0;
-
- if (ppem >= start && ppem <= SWAPW(endSize) && format < 3) {
- le_uint16 sizeIndex = ppem - start;
- le_uint16 bits = fieldBits[format];
- le_uint16 count = 16 / bits;
- le_uint16 word = SWAPW(deltaValues[sizeIndex / count]);
- le_uint16 fieldIndex = sizeIndex % count;
- le_uint16 shift = 16 - (bits * (fieldIndex + 1));
- le_uint16 field = (word >> shift) & fieldMasks[format];
-
- result = field;
-
- if ((field & fieldSignBits[format]) != 0) {
- result |= ~ fieldMasks[format];
- }
- }
-
- return result;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/DeviceTables.h b/Build/source/libs/icu-xetex/layout/DeviceTables.h
deleted file mode 100644
index 864bba1ad11..00000000000
--- a/Build/source/libs/icu-xetex/layout/DeviceTables.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * @(#)DeviceTables.h 1.5 00/03/15
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __DEVICETABLES_H
-#define __DEVICETABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct DeviceTable
-{
- le_uint16 startSize;
- le_uint16 endSize;
- le_uint16 deltaFormat;
- le_uint16 deltaValues[ANY_NUMBER];
-
- le_int16 getAdjustment(le_uint16 ppem) const;
-
-private:
- static const le_uint16 fieldMasks[];
- static const le_uint16 fieldSignBits[];
- static const le_uint16 fieldBits[];
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/ExtensionSubtables.cpp b/Build/source/libs/icu-xetex/layout/ExtensionSubtables.cpp
deleted file mode 100644
index 4a6ac4fd571..00000000000
--- a/Build/source/libs/icu-xetex/layout/ExtensionSubtables.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 2002 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "LookupProcessor.h"
-#include "ExtensionSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-// read a 32-bit value that might only be 16-bit-aligned in memory
-#define READ_LONG(code) (le_uint32)((SWAPW(*(le_uint16*)&code) << 16) + SWAPW(*(((le_uint16*)&code) + 1)))
-
-// FIXME: should look at the format too... maybe have a sub-class for it?
-le_uint32 ExtensionSubtable::process(const LookupProcessor *lookupProcessor, le_uint16 lookupType,
- GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- le_uint16 elt = SWAPW(extensionLookupType);
-
- if (elt != lookupType) {
- le_uint32 extOffset = READ_LONG(extensionOffset);
- LookupSubtable *subtable = (LookupSubtable *) ((char *) this + extOffset);
-
- return lookupProcessor->applySubtable(subtable, elt, glyphIterator, fontInstance);
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ExtensionSubtables.h b/Build/source/libs/icu-xetex/layout/ExtensionSubtables.h
deleted file mode 100644
index f522b9ebf33..00000000000
--- a/Build/source/libs/icu-xetex/layout/ExtensionSubtables.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 2002-2003 - All Rights Reserved
- *
- */
-
-#ifndef __EXTENSIONSUBTABLES_H
-#define __EXTENSIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "LookupProcessor.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct ExtensionSubtable //: GlyphSubstitutionSubtable
-{
- le_uint16 substFormat;
- le_uint16 extensionLookupType;
- le_uint32 extensionOffset;
-
- le_uint32 process(const LookupProcessor *lookupProcessor, le_uint16 lookupType,
- GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/Features.cpp b/Build/source/libs/icu-xetex/layout/Features.cpp
deleted file mode 100644
index e1c81a1ac9b..00000000000
--- a/Build/source/libs/icu-xetex/layout/Features.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * @(#)Features.cpp 1.4 00/03/15
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeUtilities.h"
-#include "OpenTypeTables.h"
-#include "Features.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-const FeatureTable *FeatureListTable::getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const
-{
- if (featureIndex >= SWAPW(featureCount)) {
- return 0;
- }
-
- Offset featureTableOffset = featureRecordArray[featureIndex].featureTableOffset;
-
- *featureTag = SWAPT(featureRecordArray[featureIndex].featureTag);
-
- return (const FeatureTable *) ((char *) this + SWAPW(featureTableOffset));
-}
-
-/*
- * Note: according to the OpenType Spec. v 1.4, the entries in the Feature
- * List Table are sorted alphabetically by feature tag; however, there seem
- * to be some fonts which have an unsorted list; that's why the binary search
- * is #if 0'd out and replaced by a linear search.
- *
- * Also note: as of ICU 2.6, this method isn't called anyhow...
- */
-const FeatureTable *FeatureListTable::getFeatureTable(LETag featureTag) const
-{
-#if 0
- Offset featureTableOffset =
- OpenTypeUtilities::getTagOffset(featureTag, (TagAndOffsetRecord *) featureRecordArray, SWAPW(featureCount));
-
- if (featureTableOffset == 0) {
- return 0;
- }
-
- return (const FeatureTable *) ((char *) this + SWAPW(featureTableOffset));
-#else
- int count = SWAPW(featureCount);
-
- for (int i = 0; i < count; i += 1) {
- if (SWAPT(featureRecordArray[i].featureTag) == featureTag) {
- return (const FeatureTable *) ((char *) this + SWAPW(featureRecordArray[i].featureTableOffset));
- }
- }
-
- return 0;
-#endif
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/Features.h b/Build/source/libs/icu-xetex/layout/Features.h
deleted file mode 100644
index 47563d9d433..00000000000
--- a/Build/source/libs/icu-xetex/layout/Features.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __FEATURES_H
-#define __FEATURES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct FeatureRecord
-{
- ATag featureTag;
- Offset featureTableOffset;
-};
-
-struct FeatureTable
-{
- Offset featureParamsOffset;
- le_uint16 lookupCount;
- le_uint16 lookupListIndexArray[ANY_NUMBER];
-};
-
-struct FeatureListTable
-{
- le_uint16 featureCount;
- FeatureRecord featureRecordArray[ANY_NUMBER];
-
- const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
-
- const FeatureTable *getFeatureTable(LETag featureTag) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.cpp b/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.cpp
deleted file mode 100644
index 344e07ab286..00000000000
--- a/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "GDEFMarkFilter.h"
-#include "GlyphDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-GDEFMarkFilter::GDEFMarkFilter(const GlyphDefinitionTableHeader *gdefTable)
-{
- classDefTable = gdefTable->getGlyphClassDefinitionTable();
-}
-
-GDEFMarkFilter::~GDEFMarkFilter()
-{
- // nothing to do?
-}
-
-le_bool GDEFMarkFilter::accept(LEGlyphID glyph) const
-{
- le_int32 glyphClass = classDefTable->getGlyphClass(glyph);
-
- return glyphClass == gcdMarkGlyph;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.h b/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.h
deleted file mode 100644
index 5ae5b45fdfc..00000000000
--- a/Build/source/libs/icu-xetex/layout/GDEFMarkFilter.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __GDEFMARKFILTER__H
-#define __GDEFMARKFILTER__H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "GlyphDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-class GDEFMarkFilter : public UMemory, public LEGlyphFilter
-{
-private:
- const GlyphClassDefinitionTable *classDefTable;
-
- GDEFMarkFilter(const GDEFMarkFilter &other); // forbid copying of this class
- GDEFMarkFilter &operator=(const GDEFMarkFilter &other); // forbid copying of this class
-
-public:
- GDEFMarkFilter(const GlyphDefinitionTableHeader *gdefTable);
- virtual ~GDEFMarkFilter();
-
- virtual le_bool accept(LEGlyphID glyph) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp
deleted file mode 100644
index 84327019b50..00000000000
--- a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LayoutEngine.h"
-#include "GXLayoutEngine.h"
-#include "LEGlyphStorage.h"
-
-#include "MorphTables.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(GXLayoutEngine)
-
-GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable)
- : LayoutEngine(fontInstance, scriptCode, languageCode, 0), fMorphTable(morphTable)
-{
- // nothing else to do?
-}
-
-GXLayoutEngine::~GXLayoutEngine()
-{
- reset();
-}
-
-// apply 'mort' table
-le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- mapCharsToGlyphs(chars, offset, count, FALSE, rightToLeft, TRUE, glyphStorage, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- fMorphTable->process(glyphStorage);
-
- return count;
-}
-
-// apply positional tables
-void GXLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool /*reverse*/,
- LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- // FIXME: no positional processing yet...
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.h b/Build/source/libs/icu-xetex/layout/GXLayoutEngine.h
deleted file mode 100644
index faa511ab1ab..00000000000
--- a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.h
+++ /dev/null
@@ -1,125 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __GXLAYOUTENGINE_H
-#define __GXLAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LayoutEngine.h"
-
-#include "MorphTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-class LEGlyphStorage;
-
-/**
- * This class implements layout for QuickDraw GX or Apple Advanced Typograyph (AAT)
- * fonts. A font is a GX or AAT font if it contains a 'mort' table. See Apple's
- * TrueType Reference Manual (http://fonts.apple.com/TTRefMan/index.html) for details.
- * Information about 'mort' tables is in the chapter titled "Font Files."
- *
- * @internal
- */
-class GXLayoutEngine : public LayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of GXLayoutEngine for
- * a particular font, script and language. It takes the 'mort' table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the 'mort' table to know that it has a
- * GX font.
- *
- * Note: GX and AAT fonts don't contain any script and language specific tables, so
- * the script and language are ignored.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param morphTable - the 'mort' table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~GXLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * The address of the 'mort' table
- *
- * @internal
- */
- const MorphTableHeader *fMorphTable;
-
- /**
- * This method does GX layout using the font's 'mort' table. It converts the
- * input character codes to glyph indices using mapCharsToGlyphs, and then
- * applies the 'mort' table.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the glyph index array
- *
- * @internal
- */
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method adjusts the glyph positions using the font's
- * 'kern', 'trak', 'bsln', 'opbd' and 'just' tables.
- *
- * Input parameters:
- * @param glyphStorage - the object holding the glyph storage. The positions will be updated as needed.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @internal
- */
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.cpp
deleted file mode 100644
index a51e6ba0813..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphDefinitionTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-const GlyphClassDefinitionTable *GlyphDefinitionTableHeader::getGlyphClassDefinitionTable() const
-{
- return (const GlyphClassDefinitionTable *) ((char *) this + SWAPW(glyphClassDefOffset));
-}
-
-const AttachmentListTable *GlyphDefinitionTableHeader::getAttachmentListTable() const
-{
- return (const AttachmentListTable *) ((char *) this + SWAPW(attachListOffset));
-}
-
-const LigatureCaretListTable *GlyphDefinitionTableHeader::getLigatureCaretListTable() const
-{
- return (const LigatureCaretListTable *) ((char *) this + SWAPW(ligCaretListOffset));
-}
-
-const MarkAttachClassDefinitionTable *GlyphDefinitionTableHeader::getMarkAttachClassDefinitionTable() const
-{
- return (const MarkAttachClassDefinitionTable *) ((char *) this + SWAPW(MarkAttachClassDefOffset));
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.h b/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.h
deleted file mode 100644
index e4cbbb6e1f5..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphDefinitionTables.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHDEFINITIONTABLES_H
-#define __GLYPHDEFINITIONTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "ClassDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-typedef ClassDefinitionTable GlyphClassDefinitionTable;
-
-enum GlyphClassDefinitions
-{
- gcdNoGlyphClass = 0,
- gcdSimpleGlyph = 1,
- gcdLigatureGlyph = 2,
- gcdMarkGlyph = 3,
- gcdComponentGlyph = 4
-};
-
-struct AttachmentListTable
-{
- Offset coverageTableOffset;
- le_uint16 glyphCount;
- Offset attachPointTableOffsetArray[ANY_NUMBER];
-};
-
-struct AttachPointTable
-{
- le_uint16 pointCount;
- le_uint16 pointIndexArray[ANY_NUMBER];
-};
-
-struct LigatureCaretListTable
-{
- Offset coverageTableOffset;
- le_uint16 ligGlyphCount;
- Offset ligGlyphTableOffsetArray[ANY_NUMBER];
-};
-
-struct LigatureGlyphTable
-{
- le_uint16 caretCount;
- Offset caretValueTableOffsetArray[ANY_NUMBER];
-};
-
-struct CaretValueTable
-{
- le_uint16 caretValueFormat;
-};
-
-struct CaretValueFormat1Table : CaretValueTable
-{
- le_int16 coordinate;
-};
-
-struct CaretValueFormat2Table : CaretValueTable
-{
- le_uint16 caretValuePoint;
-};
-
-struct CaretValueFormat3Table : CaretValueTable
-{
- le_int16 coordinate;
- Offset deviceTableOffset;
-};
-
-typedef ClassDefinitionTable MarkAttachClassDefinitionTable;
-
-struct GlyphDefinitionTableHeader
-{
- fixed32 version;
- Offset glyphClassDefOffset;
- Offset attachListOffset;
- Offset ligCaretListOffset;
- Offset MarkAttachClassDefOffset;
-
- const GlyphClassDefinitionTable *getGlyphClassDefinitionTable() const;
- const AttachmentListTable *getAttachmentListTable()const ;
- const LigatureCaretListTable *getLigatureCaretListTable() const;
- const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp b/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp
deleted file mode 100644
index fda7511724f..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositionAdjustments.h"
-#include "GlyphIterator.h"
-#include "LEGlyphStorage.h"
-#include "Lookups.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
- FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
- : direction(1), position(-1), nextLimit(-1), prevLimit(-1),
- glyphStorage(theGlyphStorage), glyphPositionAdjustments(theGlyphPositionAdjustments),
- srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask), featureParam(0),
- glyphClassDefinitionTable(NULL), markAttachClassDefinitionTable(NULL)
-
-{
- le_int32 glyphCount = glyphStorage.getGlyphCount();
-
- if (theGlyphDefinitionTableHeader != NULL) {
- glyphClassDefinitionTable = theGlyphDefinitionTableHeader->getGlyphClassDefinitionTable();
- markAttachClassDefinitionTable = theGlyphDefinitionTableHeader->getMarkAttachClassDefinitionTable();
- }
-
- nextLimit = glyphCount;
-
- if (rightToLeft) {
- direction = -1;
- position = glyphCount;
- nextLimit = -1;
- prevLimit = glyphCount;
- }
-}
-
-GlyphIterator::GlyphIterator(GlyphIterator &that)
- : glyphStorage(that.glyphStorage)
-{
- direction = that.direction;
- position = that.position;
- nextLimit = that.nextLimit;
- prevLimit = that.prevLimit;
-
- glyphPositionAdjustments = that.glyphPositionAdjustments;
- srcIndex = that.srcIndex;
- destIndex = that.destIndex;
- lookupFlags = that.lookupFlags;
- featureMask = that.featureMask;
- featureParam = that.featureParam;
- glyphClassDefinitionTable = that.glyphClassDefinitionTable;
- markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
-}
-
-GlyphIterator::GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 newFeatureParam)
- : glyphStorage(that.glyphStorage)
-{
- direction = that.direction;
- position = that.position;
- nextLimit = that.nextLimit;
- prevLimit = that.prevLimit;
-
- glyphPositionAdjustments = that.glyphPositionAdjustments;
- srcIndex = that.srcIndex;
- destIndex = that.destIndex;
- lookupFlags = that.lookupFlags;
- featureMask = newFeatureMask;
- featureParam = newFeatureParam;
- glyphClassDefinitionTable = that.glyphClassDefinitionTable;
- markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
-}
-
-GlyphIterator::GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags)
- : glyphStorage(that.glyphStorage)
-{
- direction = that.direction;
- position = that.position;
- nextLimit = that.nextLimit;
- prevLimit = that.prevLimit;
-
- glyphPositionAdjustments = that.glyphPositionAdjustments;
- srcIndex = that.srcIndex;
- destIndex = that.destIndex;
- lookupFlags = newLookupFlags;
- featureMask = that.featureMask;
- featureParam = that.featureParam;
- glyphClassDefinitionTable = that.glyphClassDefinitionTable;
- markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
-}
-
-GlyphIterator::~GlyphIterator()
-{
- // nothing to do, right?
-}
-
-void GlyphIterator::reset(le_uint16 newLookupFlags, FeatureMask newFeatureMask)
-{
- position = prevLimit;
- featureMask = newFeatureMask;
- featureParam = 0;
- lookupFlags = newLookupFlags;
-}
-
-LEGlyphID *GlyphIterator::insertGlyphs(le_int32 count)
-{
- return glyphStorage.insertGlyphs(position, count);
-}
-
-le_int32 GlyphIterator::applyInsertions()
-{
- le_int32 newGlyphCount = glyphStorage.applyInsertions();
-
- if (direction < 0) {
- prevLimit = newGlyphCount;
- } else {
- nextLimit = newGlyphCount;
- }
-
- return newGlyphCount;
-}
-
-le_int32 GlyphIterator::getCurrStreamPosition() const
-{
- return position;
-}
-
-le_int32 GlyphIterator::getFeatureParam() const
-{
- return featureParam;
-}
-
-le_bool GlyphIterator::isRightToLeft() const
-{
- return direction < 0;
-}
-
-le_bool GlyphIterator::ignoresMarks() const
-{
- return (lookupFlags & lfIgnoreMarks) != 0;
-}
-
-le_bool GlyphIterator::baselineIsLogicalEnd() const
-{
- return (lookupFlags & lfBaselineIsLogicalEnd) != 0;
-}
-
-LEGlyphID GlyphIterator::getCurrGlyphID() const
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return 0xFFFF;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return 0xFFFF;
- }
- }
-
- return glyphStorage[position];
-}
-
-void GlyphIterator::getCursiveEntryPoint(LEPoint &entryPoint) const
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->getEntryPoint(position, entryPoint);
-}
-
-void GlyphIterator::getCursiveExitPoint(LEPoint &exitPoint) const
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->getExitPoint(position, exitPoint);
-}
-
-void GlyphIterator::setCurrGlyphID(TTGlyphID glyphID)
-{
- LEGlyphID glyph = glyphStorage[position];
-
- glyphStorage[position] = LE_SET_GLYPH(glyph, glyphID);
-}
-
-void GlyphIterator::setCurrStreamPosition(le_int32 newPosition)
-{
- if (direction < 0) {
- if (newPosition >= prevLimit) {
- position = prevLimit;
- return;
- }
-
- if (newPosition <= nextLimit) {
- position = nextLimit;
- return;
- }
- } else {
- if (newPosition <= prevLimit) {
- position = prevLimit;
- return;
- }
-
- if (newPosition >= nextLimit) {
- position = nextLimit;
- return;
- }
- }
-
- position = newPosition - direction;
- next();
-}
-
-void GlyphIterator::setCurrGlyphBaseOffset(le_int32 baseOffset)
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->setBaseOffset(position, baseOffset);
-}
-
-void GlyphIterator::adjustCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
- float xAdvanceAdjust, float yAdvanceAdjust)
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->adjustXPlacement(position, xPlacementAdjust);
- glyphPositionAdjustments->adjustYPlacement(position, yPlacementAdjust);
- glyphPositionAdjustments->adjustXAdvance(position, xAdvanceAdjust);
- glyphPositionAdjustments->adjustYAdvance(position, yAdvanceAdjust);
-}
-
-void GlyphIterator::setCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
- float xAdvanceAdjust, float yAdvanceAdjust)
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->setXPlacement(position, xPlacementAdjust);
- glyphPositionAdjustments->setYPlacement(position, yPlacementAdjust);
- glyphPositionAdjustments->setXAdvance(position, xAdvanceAdjust);
- glyphPositionAdjustments->setYAdvance(position, yAdvanceAdjust);
-}
-
-void GlyphIterator::setCursiveEntryPoint(LEPoint &entryPoint)
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->setEntryPoint(position, entryPoint, baselineIsLogicalEnd());
-}
-
-void GlyphIterator::setCursiveExitPoint(LEPoint &exitPoint)
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->setExitPoint(position, exitPoint, baselineIsLogicalEnd());
-}
-
-void GlyphIterator::setCursiveGlyph()
-{
- if (direction < 0) {
- if (position <= nextLimit || position >= prevLimit) {
- return;
- }
- } else {
- if (position <= prevLimit || position >= nextLimit) {
- return;
- }
- }
-
- glyphPositionAdjustments->setCursiveGlyph(position, baselineIsLogicalEnd());
-}
-
-le_bool GlyphIterator::filterGlyph(le_uint32 index) const
-{
- LEGlyphID glyphID = glyphStorage[index];
- le_int32 glyphClass = gcdNoGlyphClass;
-
- if (LE_GET_GLYPH(glyphID) >= 0xFFFE) {
- return TRUE;
- }
-
- if (glyphClassDefinitionTable != NULL) {
- glyphClass = glyphClassDefinitionTable->getGlyphClass(glyphID);
- }
-
- switch (glyphClass)
- {
- case gcdNoGlyphClass:
- return FALSE;
-
- case gcdSimpleGlyph:
- return (lookupFlags & lfIgnoreBaseGlyphs) != 0;
-
- case gcdLigatureGlyph:
- return (lookupFlags & lfIgnoreLigatures) != 0;
-
- case gcdMarkGlyph:
- {
- if ((lookupFlags & lfIgnoreMarks) != 0) {
- return TRUE;
- }
-
- le_uint16 markAttachType = (lookupFlags & lfMarkAttachTypeMask) >> lfMarkAttachTypeShift;
-
- if ((markAttachType != 0) && (markAttachClassDefinitionTable != NULL)) {
- return markAttachClassDefinitionTable->getGlyphClass(glyphID) != markAttachType;
- }
-
- return FALSE;
- }
-
- case gcdComponentGlyph:
- return (lookupFlags & lfIgnoreBaseGlyphs) != 0;
-
- default:
- return FALSE;
- }
-}
-
-le_bool GlyphIterator::hasFeatureTag()
-{
- featureParam = 0;
-
- if (featureMask == 0) {
- return TRUE;
- }
-
- LEErrorCode success = LE_NO_ERROR;
- FeatureMask fm = glyphStorage.getAuxData(position, success);
-
- if ((fm & featureMask) != 0) {
- const le_int32 *paramList = (const le_int32 *) glyphStorage.getAuxParam(position, success);
- if (paramList != NULL) {
- fm = featureMask;
- while ((fm & 0x80000000UL) == 0) {
- ++paramList;
- fm <<= 1;
- }
- featureParam = *paramList;
- }
- return TRUE;
- }
-
- return FALSE;
-}
-
-le_bool GlyphIterator::findFeatureTag()
-{
- while (nextInternal()) {
- if (hasFeatureTag()) {
- prevInternal();
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-
-le_bool GlyphIterator::nextInternal(le_uint32 delta)
-{
- le_int32 newPosition = position;
-
- while (newPosition != nextLimit && delta > 0) {
- do {
- newPosition += direction;
- } while (newPosition != nextLimit && filterGlyph(newPosition));
-
- delta -= 1;
- }
-
- position = newPosition;
-
- return position != nextLimit;
-}
-
-le_bool GlyphIterator::next(le_uint32 delta)
-{
- return nextInternal(delta) && hasFeatureTag();
-}
-
-le_bool GlyphIterator::prevInternal(le_uint32 delta)
-{
- le_int32 newPosition = position;
-
- while (newPosition != prevLimit && delta > 0) {
- do {
- newPosition -= direction;
- } while (newPosition != prevLimit && filterGlyph(newPosition));
-
- delta -= 1;
- }
-
- position = newPosition;
-
- return position != prevLimit;
-}
-
-le_bool GlyphIterator::prev(le_uint32 delta)
-{
- return prevInternal(delta) && hasFeatureTag();
-}
-
-le_int32 GlyphIterator::getMarkComponent(le_int32 markPosition) const
-{
- le_int32 component = 0;
- le_int32 posn;
-
- for (posn = position; posn != markPosition; posn += direction) {
- if (glyphStorage[posn] == 0xFFFE) {
- component += 1;
- }
- }
-
- return component;
-}
-
-// This is basically prevInternal except that it
-// doesn't take a delta argument, and it doesn't
-// filter out 0xFFFE glyphs.
-le_bool GlyphIterator::findMark2Glyph()
-{
- le_int32 newPosition = position;
-
- do {
- newPosition -= direction;
- } while (newPosition != prevLimit && glyphStorage[newPosition] != 0xFFFE && filterGlyph(newPosition));
-
- position = newPosition;
-
- return position != prevLimit;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphIterator.h b/Build/source/libs/icu-xetex/layout/GlyphIterator.h
deleted file mode 100644
index b03ce63c832..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphIterator.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHITERATOR_H
-#define __GLYPHITERATOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "GlyphDefinitionTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-class GlyphPositionAdjustments;
-
-class GlyphIterator : public UMemory {
-public:
- GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
- FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
-
- GlyphIterator(GlyphIterator &that);
-
- GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 featureParam = 0);
-
- GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags);
-
- virtual ~GlyphIterator();
-
- void reset(le_uint16 newLookupFlags, LETag newFeatureTag);
-
- le_bool next(le_uint32 delta = 1);
- le_bool prev(le_uint32 delta = 1);
- le_bool findFeatureTag();
-
- le_bool isRightToLeft() const;
- le_bool ignoresMarks() const;
-
- le_bool baselineIsLogicalEnd() const;
-
- LEGlyphID getCurrGlyphID() const;
- le_int32 getCurrStreamPosition() const;
-
- le_int32 getMarkComponent(le_int32 markPosition) const;
- le_bool findMark2Glyph();
-
- le_int32 getFeatureParam() const;
-
- void getCursiveEntryPoint(LEPoint &entryPoint) const;
- void getCursiveExitPoint(LEPoint &exitPoint) const;
-
- void setCurrGlyphID(TTGlyphID glyphID);
- void setCurrStreamPosition(le_int32 position);
- void setCurrGlyphBaseOffset(le_int32 baseOffset);
- void adjustCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
- float xAdvanceAdjust, float yAdvanceAdjust);
-
- void setCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
- float xAdvanceAdjust, float yAdvanceAdjust);
-
- void setCursiveEntryPoint(LEPoint &entryPoint);
- void setCursiveExitPoint(LEPoint &exitPoint);
- void setCursiveGlyph();
-
- LEGlyphID *insertGlyphs(le_int32 count);
- le_int32 applyInsertions();
-
-private:
- le_bool filterGlyph(le_uint32 index) const;
- le_bool hasFeatureTag();
- le_bool nextInternal(le_uint32 delta = 1);
- le_bool prevInternal(le_uint32 delta = 1);
-
- le_int32 direction;
- le_int32 position;
- le_int32 nextLimit;
- le_int32 prevLimit;
-
- LEGlyphStorage &glyphStorage;
- GlyphPositionAdjustments *glyphPositionAdjustments;
-
- le_int32 srcIndex;
- le_int32 destIndex;
- le_uint16 lookupFlags;
- FeatureMask featureMask;
-
- le_int32 featureParam;
- const GlyphClassDefinitionTable *glyphClassDefinitionTable;
- const MarkAttachClassDefinitionTable *markAttachClassDefinitionTable;
-
- GlyphIterator &operator=(const GlyphIterator &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphLookupTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphLookupTables.cpp
deleted file mode 100644
index fdc646fe4f8..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphLookupTables.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "ScriptAndLanguage.h"
-#include "GlyphLookupTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_bool GlyphLookupTableHeader::coversScript(LETag scriptTag) const
-{
- const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
-
- return scriptListOffset != 0 && scriptListTable->findScript(scriptTag) != NULL;
-}
-
-le_bool GlyphLookupTableHeader::coversScriptAndLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch) const
-{
- const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
- const LangSysTable *langSysTable = scriptListTable->findLanguage(scriptTag, languageTag, exactMatch);
-
- // FIXME: could check featureListOffset, lookupListOffset, and lookup count...
- // Note: don't have to SWAPW langSysTable->featureCount to check for non-zero.
- return langSysTable != NULL && langSysTable->featureCount != 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphLookupTables.h b/Build/source/libs/icu-xetex/layout/GlyphLookupTables.h
deleted file mode 100644
index 65642d02e28..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphLookupTables.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHLOOKUPTABLES_H
-#define __GLYPHLOOKUPTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct GlyphLookupTableHeader
-{
- fixed32 version;
- Offset scriptListOffset;
- Offset featureListOffset;
- Offset lookupListOffset;
-
- le_bool coversScript(LETag scriptTag) const;
- le_bool coversScriptAndLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
-};
-
-U_NAMESPACE_END
-
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.cpp b/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.cpp
deleted file mode 100644
index c7e57ef1329..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "GlyphPositionAdjustments.h"
-#include "LEGlyphStorage.h"
-#include "LEFontInstance.h"
-
-U_NAMESPACE_BEGIN
-
-#define CHECK_ALLOCATE_ARRAY(array, type, size) \
- if (array == NULL) { \
- array = (type *) new type[size]; \
- }
-
-GlyphPositionAdjustments::GlyphPositionAdjustments(le_int32 glyphCount)
- : fGlyphCount(glyphCount), fEntryExitPoints(NULL), fAdjustments(NULL)
-{
- fAdjustments = (Adjustment *) new Adjustment[glyphCount];
-}
-
-GlyphPositionAdjustments::~GlyphPositionAdjustments()
-{
- delete[] fEntryExitPoints;
- delete[] fAdjustments;
-}
-
-const LEPoint *GlyphPositionAdjustments::getEntryPoint(le_int32 index, LEPoint &entryPoint) const
-{
- if (fEntryExitPoints == NULL) {
- return NULL;
- }
-
- return fEntryExitPoints[index].getEntryPoint(entryPoint);
-}
-
-const LEPoint *GlyphPositionAdjustments::getExitPoint(le_int32 index, LEPoint &exitPoint)const
-{
- if (fEntryExitPoints == NULL) {
- return NULL;
- }
-
- return fEntryExitPoints[index].getExitPoint(exitPoint);
-}
-
-void GlyphPositionAdjustments::setEntryPoint(le_int32 index, LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
-{
- CHECK_ALLOCATE_ARRAY(fEntryExitPoints, EntryExitPoint, fGlyphCount);
-
- fEntryExitPoints[index].setEntryPoint(newEntryPoint, baselineIsLogicalEnd);
-}
-
-void GlyphPositionAdjustments::setExitPoint(le_int32 index, LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
-{
- CHECK_ALLOCATE_ARRAY(fEntryExitPoints, EntryExitPoint, fGlyphCount);
-
- fEntryExitPoints[index].setExitPoint(newExitPoint, baselineIsLogicalEnd);
-}
-
-void GlyphPositionAdjustments::setCursiveGlyph(le_int32 index, le_bool baselineIsLogicalEnd)
-{
- CHECK_ALLOCATE_ARRAY(fEntryExitPoints, EntryExitPoint, fGlyphCount);
-
- fEntryExitPoints[index].setCursiveGlyph(baselineIsLogicalEnd);
-}
-
-void GlyphPositionAdjustments::applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft, const LEFontInstance *fontInstance)
-{
- if (! hasCursiveGlyphs()) {
- return;
- }
-
- le_int32 start = 0, end = fGlyphCount, dir = 1;
- le_int32 firstExitPoint = -1, lastExitPoint = -1;
- LEPoint entryAnchor, exitAnchor, pixels;
- LEGlyphID lastExitGlyphID = 0;
- float baselineAdjustment = 0;
-
- // This removes a possible warning about
- // using exitAnchor before it's been initialized.
- exitAnchor.fX = exitAnchor.fY = 0;
-
- if (rightToLeft) {
- start = fGlyphCount - 1;
- end = -1;
- dir = -1;
- }
-
- for (le_int32 i = start; i != end; i += dir) {
- LEGlyphID glyphID = glyphStorage[i];
-
- if (isCursiveGlyph(i)) {
- if (lastExitPoint >= 0 && getEntryPoint(i, entryAnchor) != NULL) {
- float anchorDiffX = exitAnchor.fX - entryAnchor.fX;
- float anchorDiffY = exitAnchor.fY - entryAnchor.fY;
-
- baselineAdjustment += anchorDiffY;
- adjustYPlacement(i, baselineAdjustment);
-
- if (rightToLeft) {
- LEPoint secondAdvance;
-
- fontInstance->getGlyphAdvance(glyphID, pixels);
- fontInstance->pixelsToUnits(pixels, secondAdvance);
-
- adjustXAdvance(i, -(anchorDiffX + secondAdvance.fX));
- } else {
- LEPoint firstAdvance;
-
- fontInstance->getGlyphAdvance(lastExitGlyphID, pixels);
- fontInstance->pixelsToUnits(pixels, firstAdvance);
-
- adjustXAdvance(lastExitPoint, anchorDiffX - firstAdvance.fX);
- }
- }
-
- lastExitPoint = i;
-
- if (getExitPoint(i, exitAnchor) != NULL) {
- if (firstExitPoint < 0) {
- firstExitPoint = i;
- }
-
- lastExitGlyphID = glyphID;
- } else {
- if (baselineIsLogicalEnd(i) && firstExitPoint >= 0 && lastExitPoint >= 0) {
- le_int32 limit = lastExitPoint + dir;
-
- for (le_int32 j = firstExitPoint; j != limit; j += dir) {
- if (isCursiveGlyph(j)) {
- adjustYPlacement(j, -baselineAdjustment);
- }
- }
- }
-
- firstExitPoint = lastExitPoint = -1;
- baselineAdjustment = 0;
- }
- }
- }
-}
-
-LEPoint *GlyphPositionAdjustments::EntryExitPoint::getEntryPoint(LEPoint &entryPoint) const
-{
- if (fFlags & EEF_HAS_ENTRY_POINT) {
- entryPoint = fEntryPoint;
- return &entryPoint;
- }
-
- return NULL;
-}
-
-LEPoint *GlyphPositionAdjustments::EntryExitPoint::getExitPoint(LEPoint &exitPoint) const
-{
- if (fFlags & EEF_HAS_EXIT_POINT) {
- exitPoint = fExitPoint;
- return &exitPoint;
- }
-
- return NULL;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h b/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h
deleted file mode 100644
index 31146e56f9b..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHPOSITIONADJUSTMENTS_H
-#define __GLYPHPOSITIONADJUSTMENTS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-class LEFontInstance;
-
-class GlyphPositionAdjustments : public UMemory
-{
-private:
- class Adjustment : public UMemory {
- public:
-
- inline Adjustment();
- inline Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff = -1);
- inline ~Adjustment();
-
- inline float getXPlacement() const;
- inline float getYPlacement() const;
- inline float getXAdvance() const;
- inline float getYAdvance() const;
-
- inline le_int32 getBaseOffset() const;
-
- inline void setXPlacement(float newXPlacement);
- inline void setYPlacement(float newYPlacement);
- inline void setXAdvance(float newXAdvance);
- inline void setYAdvance(float newYAdvance);
-
- inline void setBaseOffset(le_int32 newBaseOffset);
-
- inline void adjustXPlacement(float xAdjustment);
- inline void adjustYPlacement(float yAdjustment);
- inline void adjustXAdvance(float xAdjustment);
- inline void adjustYAdvance(float yAdjustment);
-
- private:
- float xPlacement;
- float yPlacement;
- float xAdvance;
- float yAdvance;
-
- le_int32 baseOffset;
-
- // allow copying of this class because all of its fields are simple types
- };
-
- class EntryExitPoint : public UMemory
- {
- public:
- inline EntryExitPoint();
- inline ~EntryExitPoint();
-
- inline le_bool isCursiveGlyph() const;
- inline le_bool baselineIsLogicalEnd() const;
-
- LEPoint *getEntryPoint(LEPoint &entryPoint) const;
- LEPoint *getExitPoint(LEPoint &exitPoint) const;
-
- inline void setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd);
- inline void setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd);
- inline void setCursiveGlyph(le_bool baselineIsLogicalEnd);
-
- private:
- enum EntryExitFlags
- {
- EEF_HAS_ENTRY_POINT = 0x80000000L,
- EEF_HAS_EXIT_POINT = 0x40000000L,
- EEF_IS_CURSIVE_GLYPH = 0x20000000L,
- EEF_BASELINE_IS_LOGICAL_END = 0x10000000L
- };
-
- le_uint32 fFlags;
- LEPoint fEntryPoint;
- LEPoint fExitPoint;
- };
-
- le_int32 fGlyphCount;
- EntryExitPoint *fEntryExitPoints;
- Adjustment *fAdjustments;
-
- GlyphPositionAdjustments();
-
-public:
- GlyphPositionAdjustments(le_int32 glyphCount);
- ~GlyphPositionAdjustments();
-
- inline le_bool hasCursiveGlyphs() const;
- inline le_bool isCursiveGlyph(le_int32 index) const;
- inline le_bool baselineIsLogicalEnd(le_int32 index) const;
-
- const LEPoint *getEntryPoint(le_int32 index, LEPoint &entryPoint) const;
- const LEPoint *getExitPoint(le_int32 index, LEPoint &exitPoint) const;
-
- inline float getXPlacement(le_int32 index) const;
- inline float getYPlacement(le_int32 index) const;
- inline float getXAdvance(le_int32 index) const;
- inline float getYAdvance(le_int32 index) const;
-
- inline le_int32 getBaseOffset(le_int32 index) const;
-
- inline void setXPlacement(le_int32 index, float newXPlacement);
- inline void setYPlacement(le_int32 index, float newYPlacement);
- inline void setXAdvance(le_int32 index, float newXAdvance);
- inline void setYAdvance(le_int32 index, float newYAdvance);
-
- inline void setBaseOffset(le_int32 index, le_int32 newBaseOffset);
-
- inline void adjustXPlacement(le_int32 index, float xAdjustment);
- inline void adjustYPlacement(le_int32 index, float yAdjustment);
- inline void adjustXAdvance(le_int32 index, float xAdjustment);
- inline void adjustYAdvance(le_int32 index, float yAdjustment);
-
- void setEntryPoint(le_int32 index, LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd);
- void setExitPoint(le_int32 index, LEPoint &newExitPoint, le_bool baselineIsLogicalEnd);
- void setCursiveGlyph(le_int32 index, le_bool baselineIsLogicalEnd);
-
- void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft, const LEFontInstance *fontInstance);
-};
-
-inline GlyphPositionAdjustments::Adjustment::Adjustment()
- : xPlacement(0), yPlacement(0), xAdvance(0), yAdvance(0), baseOffset(-1)
-{
- // nothing else to do!
-}
-
-inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff)
- : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv), baseOffset(baseOff)
-{
- // nothing else to do!
-}
-
-inline GlyphPositionAdjustments::Adjustment::~Adjustment()
-{
- // nothing to do!
-}
-
-inline float GlyphPositionAdjustments::Adjustment::getXPlacement() const
-{
- return xPlacement;
-}
-
-inline float GlyphPositionAdjustments::Adjustment::getYPlacement() const
-{
- return yPlacement;
-}
-
-inline float GlyphPositionAdjustments::Adjustment::getXAdvance() const
-{
- return xAdvance;
-}
-
-inline float GlyphPositionAdjustments::Adjustment::getYAdvance() const
-{
- return yAdvance;
-}
-
-inline le_int32 GlyphPositionAdjustments::Adjustment::getBaseOffset() const
-{
- return baseOffset;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::setXPlacement(float newXPlacement)
-{
- xPlacement = newXPlacement;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::setYPlacement(float newYPlacement)
-{
- yPlacement = newYPlacement;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::setXAdvance(float newXAdvance)
-{
- xAdvance = newXAdvance;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::setYAdvance(float newYAdvance)
-{
- yAdvance = newYAdvance;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::setBaseOffset(le_int32 newBaseOffset)
-{
- baseOffset = newBaseOffset;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::adjustXPlacement(float xAdjustment)
-{
- xPlacement += xAdjustment;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::adjustYPlacement(float yAdjustment)
-{
- yPlacement += yAdjustment;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::adjustXAdvance(float xAdjustment)
-{
- xAdvance += xAdjustment;
-}
-
-inline void GlyphPositionAdjustments::Adjustment::adjustYAdvance(float yAdjustment)
-{
- yAdvance += yAdjustment;
-}
-
-inline GlyphPositionAdjustments::EntryExitPoint::EntryExitPoint()
- : fFlags(0)
-{
- fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fExitPoint.fY = 0;
-}
-
-inline GlyphPositionAdjustments::EntryExitPoint::~EntryExitPoint()
-{
- // nothing special to do
-}
-
-inline le_bool GlyphPositionAdjustments::EntryExitPoint::isCursiveGlyph() const
-{
- return (fFlags & EEF_IS_CURSIVE_GLYPH) != 0;
-}
-
-inline le_bool GlyphPositionAdjustments::EntryExitPoint::baselineIsLogicalEnd() const
-{
- return (fFlags & EEF_BASELINE_IS_LOGICAL_END) != 0;
-}
-
-inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
-{
- if (baselineIsLogicalEnd) {
- fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
- } else {
- fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH);
- }
-
- fEntryPoint = newEntryPoint;
-}
-
-inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
-{
- if (baselineIsLogicalEnd) {
- fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
- } else {
- fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH);
- }
-
- fExitPoint = newExitPoint;
-}
-
-inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(le_bool baselineIsLogicalEnd)
-{
- if (baselineIsLogicalEnd) {
- fFlags |= (EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
- } else {
- fFlags |= EEF_IS_CURSIVE_GLYPH;
- }
-}
-
-inline le_bool GlyphPositionAdjustments::isCursiveGlyph(le_int32 index) const
-{
- return fEntryExitPoints != NULL && fEntryExitPoints[index].isCursiveGlyph();
-}
-
-inline le_bool GlyphPositionAdjustments::baselineIsLogicalEnd(le_int32 index) const
-{
- return fEntryExitPoints != NULL && fEntryExitPoints[index].baselineIsLogicalEnd();
-}
-
-inline float GlyphPositionAdjustments::getXPlacement(le_int32 index) const
-{
- return fAdjustments[index].getXPlacement();
-}
-
-inline float GlyphPositionAdjustments::getYPlacement(le_int32 index) const
-{
- return fAdjustments[index].getYPlacement();
-}
-
-inline float GlyphPositionAdjustments::getXAdvance(le_int32 index) const
-{
- return fAdjustments[index].getXAdvance();
-}
-
-inline float GlyphPositionAdjustments::getYAdvance(le_int32 index) const
-{
- return fAdjustments[index].getYAdvance();
-}
-
-
-inline le_int32 GlyphPositionAdjustments::getBaseOffset(le_int32 index) const
-{
- return fAdjustments[index].getBaseOffset();
-}
-
-inline void GlyphPositionAdjustments::setXPlacement(le_int32 index, float newXPlacement)
-{
- fAdjustments[index].setXPlacement(newXPlacement);
-}
-
-inline void GlyphPositionAdjustments::setYPlacement(le_int32 index, float newYPlacement)
-{
- fAdjustments[index].setYPlacement(newYPlacement);
-}
-
-inline void GlyphPositionAdjustments::setXAdvance(le_int32 index, float newXAdvance)
-{
- fAdjustments[index].setXAdvance(newXAdvance);
-}
-
-inline void GlyphPositionAdjustments::setYAdvance(le_int32 index, float newYAdvance)
-{
- fAdjustments[index].setYAdvance(newYAdvance);
-}
-
-inline void GlyphPositionAdjustments::setBaseOffset(le_int32 index, le_int32 newBaseOffset)
-{
- fAdjustments[index].setBaseOffset(newBaseOffset);
-}
-
-inline void GlyphPositionAdjustments::adjustXPlacement(le_int32 index, float xAdjustment)
-{
- fAdjustments[index].adjustXPlacement(xAdjustment);
-}
-
-inline void GlyphPositionAdjustments::adjustYPlacement(le_int32 index, float yAdjustment)
-{
- fAdjustments[index].adjustYPlacement(yAdjustment);
-}
-
-inline void GlyphPositionAdjustments::adjustXAdvance(le_int32 index, float xAdjustment)
-{
- fAdjustments[index].adjustXAdvance(xAdjustment);
-}
-
-inline void GlyphPositionAdjustments::adjustYAdvance(le_int32 index, float yAdjustment)
-{
- fAdjustments[index].adjustYAdvance(yAdjustment);
-}
-
-inline le_bool GlyphPositionAdjustments::hasCursiveGlyphs() const
-{
- return fEntryExitPoints != NULL;
-}
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp
deleted file mode 100644
index b9187b4a295..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-#include "GlyphPosnLookupProc.h"
-#include "CursiveAttachmentSubtables.h"
-#include "LEGlyphStorage.h"
-#include "GlyphPositionAdjustments.h"
-
-U_NAMESPACE_BEGIN
-
-void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
- LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
-{
- GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder);
-
- processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance);
-
- glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h
deleted file mode 100644
index a07c8c26716..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHPOSITIONINGTABLES_H
-#define __GLYPHPOSITIONINGTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "GlyphLookupTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-class LEGlyphStorage;
-class LEGlyphFilter;
-class GlyphPositionAdjustments;
-struct GlyphDefinitionTableHeader;
-
-struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
-{
- void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
- le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
-};
-
-enum GlyphPositioningSubtableTypes
-{
- gpstSingle = 1,
- gpstPair = 2,
- gpstCursive = 3,
- gpstMarkToBase = 4,
- gpstMarkToLigature = 5,
- gpstMarkToMark = 6,
- gpstContext = 7,
- gpstChainedContext = 8,
- gpstExtension = 9
-};
-
-typedef LookupSubtable GlyphPositioningSubtable;
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp
deleted file mode 100644
index 6f923a1389c..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Features.h"
-#include "Lookups.h"
-#include "ScriptAndLanguage.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-#include "SinglePositioningSubtables.h"
-#include "PairPositioningSubtables.h"
-#include "CursiveAttachmentSubtables.h"
-#include "MarkToBasePosnSubtables.h"
-#include "MarkToLigaturePosnSubtables.h"
-#include "MarkToMarkPosnSubtables.h"
-//#include "ContextualPositioningSubtables.h"
-#include "ContextualSubstSubtables.h"
-#include "ExtensionSubtables.h"
-#include "LookupProcessor.h"
-#include "GlyphPosnLookupProc.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-// Aside from the names, the contextual positioning subtables are
-// the same as the contextual substitution subtables.
-typedef ContextualSubstitutionSubtable ContextualPositioningSubtable;
-typedef ChainingContextualSubstitutionSubtable ChainingContextualPositioningSubtable;
-
-GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor(
- const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
- : LookupProcessor(
- (char *) glyphPositioningTableHeader,
- SWAPW(glyphPositioningTableHeader->scriptListOffset),
- SWAPW(glyphPositioningTableHeader->featureListOffset),
- SWAPW(glyphPositioningTableHeader->lookupListOffset),
- scriptTag, languageTag, featureMap, featureMapCount, featureOrder)
-{
- // anything?
-}
-
-GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor()
-{
-}
-
-le_uint32 GlyphPositioningLookupProcessor::applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType,
- GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- le_uint32 delta = 0;
-
- switch(lookupType)
- {
- case 0:
- break;
-
- case gpstSingle:
- {
- const SinglePositioningSubtable *subtable = (const SinglePositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstPair:
- {
- const PairPositioningSubtable *subtable = (const PairPositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstCursive:
- {
- const CursiveAttachmentSubtable *subtable = (const CursiveAttachmentSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstMarkToBase:
- {
- const MarkToBasePositioningSubtable *subtable = (const MarkToBasePositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstMarkToLigature:
- {
- const MarkToLigaturePositioningSubtable *subtable = (const MarkToLigaturePositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstMarkToMark:
- {
- const MarkToMarkPositioningSubtable *subtable = (const MarkToMarkPositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fontInstance);
- break;
- }
-
- case gpstContext:
- {
- const ContextualPositioningSubtable *subtable = (const ContextualPositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(this, glyphIterator, fontInstance);
- break;
- }
-
- case gpstChainedContext:
- {
- const ChainingContextualPositioningSubtable *subtable = (const ChainingContextualPositioningSubtable *) lookupSubtable;
-
- delta = subtable->process(this, glyphIterator, fontInstance);
- break;
- }
-
- case gpstExtension:
- {
- const ExtensionSubtable *subtable = (const ExtensionSubtable *) lookupSubtable;
-
- delta = subtable->process(this, lookupType, glyphIterator, fontInstance);
- break;
- }
-
- default:
- break;
- }
-
- return delta;
-}
-
-GlyphPositioningLookupProcessor::~GlyphPositioningLookupProcessor()
-{
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h
deleted file mode 100644
index ee3606565d3..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
-#define __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "Features.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-
-U_NAMESPACE_BEGIN
-
-class GlyphPositioningLookupProcessor : public LookupProcessor
-{
-public:
- GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
-
- virtual ~GlyphPositioningLookupProcessor();
-
- virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const;
-
-protected:
- GlyphPositioningLookupProcessor();
-
-private:
-
- GlyphPositioningLookupProcessor(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
- GlyphPositioningLookupProcessor &operator=(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp
deleted file mode 100644
index eb25680cce1..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Features.h"
-#include "Lookups.h"
-#include "ScriptAndLanguage.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "SingleSubstitutionSubtables.h"
-#include "MultipleSubstSubtables.h"
-#include "AlternateSubstSubtables.h"
-#include "LigatureSubstSubtables.h"
-#include "ContextualSubstSubtables.h"
-#include "ExtensionSubtables.h"
-#include "LookupProcessor.h"
-#include "GlyphSubstLookupProc.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor(
- const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
- : LookupProcessor(
- (char *) glyphSubstitutionTableHeader,
- SWAPW(glyphSubstitutionTableHeader->scriptListOffset),
- SWAPW(glyphSubstitutionTableHeader->featureListOffset),
- SWAPW(glyphSubstitutionTableHeader->lookupListOffset),
- scriptTag, languageTag, featureMap, featureMapCount, featureOrder), fFilter(filter)
-{
- // anything?
-}
-
-GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor()
-{
-}
-
-le_uint32 GlyphSubstitutionLookupProcessor::applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType,
- GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- le_uint32 delta = 0;
-
- switch(lookupType)
- {
- case 0:
- break;
-
- case gsstSingle:
- {
- const SingleSubstitutionSubtable *subtable = (const SingleSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fFilter);
- break;
- }
-
- case gsstMultiple:
- {
- const MultipleSubstitutionSubtable *subtable = (const MultipleSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fFilter);
- break;
- }
-
- case gsstAlternate:
- {
- const AlternateSubstitutionSubtable *subtable = (const AlternateSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fFilter);
- break;
- }
-
- case gsstLigature:
- {
- const LigatureSubstitutionSubtable *subtable = (const LigatureSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(glyphIterator, fFilter);
- break;
- }
-
- case gsstContext:
- {
- const ContextualSubstitutionSubtable *subtable = (const ContextualSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(this, glyphIterator, fontInstance);
- break;
- }
-
- case gsstChainingContext:
- {
- const ChainingContextualSubstitutionSubtable *subtable = (const ChainingContextualSubstitutionSubtable *) lookupSubtable;
-
- delta = subtable->process(this, glyphIterator, fontInstance);
- break;
- }
-
- case gsstExtension:
- {
- const ExtensionSubtable *subtable = (const ExtensionSubtable *) lookupSubtable;
-
- delta = subtable->process(this, lookupType, glyphIterator, fontInstance);
- break;
- }
-
- default:
- break;
- }
-
- return delta;
-}
-
-GlyphSubstitutionLookupProcessor::~GlyphSubstitutionLookupProcessor()
-{
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h
deleted file mode 100644
index d8c5684a03b..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
-#define __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "Features.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-
-U_NAMESPACE_BEGIN
-
-class GlyphSubstitutionLookupProcessor : public LookupProcessor
-{
-public:
- GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
-
- virtual ~GlyphSubstitutionLookupProcessor();
-
- virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const;
-
-protected:
- GlyphSubstitutionLookupProcessor();
-
-private:
- const LEGlyphFilter *fFilter;
-
- GlyphSubstitutionLookupProcessor(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
- GlyphSubstitutionLookupProcessor &operator=(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp
deleted file mode 100644
index 661b30f3ab5..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphSubstLookupProc.h"
-#include "ScriptAndLanguage.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
-{
- GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder);
-
- return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h
deleted file mode 100644
index 620da29c932..00000000000
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __GLYPHSUBSTITUTIONTABLES_H
-#define __GLYPHSUBSTITUTIONTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "GlyphLookupTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-class LEGlyphFilter;
-struct GlyphDefinitionTableHeader;
-
-struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
-{
- le_int32 process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEGlyphFilter *filter,
- const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
-};
-
-enum GlyphSubstitutionSubtableTypes
-{
- gsstSingle = 1,
- gsstMultiple = 2,
- gsstAlternate = 3,
- gsstLigature = 4,
- gsstContext = 5,
- gsstChainingContext = 6,
- gsstExtension = 7,
- gsstReverseChaining = 8
-};
-
-typedef LookupSubtable GlyphSubstitutionSubtable;
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp
deleted file mode 100644
index ae0d9dc7d4d..00000000000
--- a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * HanLayoutEngine.cpp: OpenType processing for Han fonts.
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LELanguages.h"
-
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-#include "HanLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "LEGlyphStorage.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HanOpenTypeLayoutEngine)
-
-#define loclFeatureTag LE_LOCL_FEATURE_TAG
-#define smplFeatureTag LE_SMPL_FEATURE_TAG
-#define tradFeatureTag LE_TRAD_FEATURE_TAG
-
-#define loclFeatureMask 0x80000000UL
-#define smplFeatureMask 0x40000000UL
-#define tradFeatureMask 0x20000000UL
-
-static const FeatureMap featureMap[] =
-{
- {loclFeatureTag, loclFeatureMask},
- {smplFeatureTag, smplFeatureMask},
- {tradFeatureTag, tradFeatureMask}
-};
-
-static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-
-#define features (loclFeatureMask)
-
-HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
-{
- fFeatureMap = featureMap;
- fFeatureMapCount = featureMapCount;
-}
-
-HanOpenTypeLayoutEngine::~HanOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
- LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(count, FALSE, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- // FIXME: do we want to add the 'trad' feature for 'ZHT' and the
- // 'smpl' feature for 'ZHS'? If we do this, we can remove the exact
- // flag from the language tag lookups, so we can use these features
- // with the default LangSys...
- for (le_int32 i = 0; i < count; i += 1) {
- glyphStorage.setAuxData(i, features, NULL, success);
- }
-
- return count;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.h b/Build/source/libs/icu-xetex/layout/HanLayoutEngine.h
deleted file mode 100644
index 6f683e1e286..00000000000
--- a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.h
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/*
- * HanLayoutEngine.h: OpenType processing for Han fonts.
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
- */
-
-#ifndef __HANLAYOUTENGINE_H
-#define __HANLAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-
-#include "GlyphSubstitutionTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-/**
- * This class implements OpenType layout for Han fonts. It overrides
- * the characerProcessing method to assign the correct OpenType feature
- * tags for the CJK language-specific forms.
- *
- * @internal
- */
-class HanOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of HanOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has a
- * Han OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~HanOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Han OpenType character processing. It assigns the OpenType feature
- * tags to the characters to generate the correct language-specific variants.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param glyphStorage - the object holding the glyph storage. The char index and auxillary data arrays will be set.
- *
- * Output parameters:
- * @param outChars - the output character arrayt
- * @param charIndices - the output character index array
- * @param featureTags - the output feature tag array
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp
deleted file mode 100644
index 0782b85c7e8..00000000000
--- a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * HangulLayoutEngine.cpp: OpenType processing for Han fonts.
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved.
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LELanguages.h"
-
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-#include "HangulLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "LEGlyphStorage.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HangulOpenTypeLayoutEngine)
-
-
-#define FEATURE_MAP(name) {name ## FeatureTag, name ## FeatureMask}
-
-#define LJMO_FIRST 0x1100
-#define LJMO_LAST 0x1159
-#define LJMO_FILL 0x115F
-#define LJMO_COUNT 19
-
-#define VJMO_FIRST 0x1161
-#define VJMO_LAST 0x11A2
-#define VJMO_FILL 0x1160
-#define VJMO_COUNT 21
-
-#define TJMO_FIRST 0x11A7
-#define TJMO_LAST 0x11F9
-#define TJMO_COUNT 28
-
-#define HSYL_FIRST 0xAC00
-#define HSYL_COUNT 11172
-#define HSYL_LVCNT (VJMO_COUNT * TJMO_COUNT)
-
-// Character classes
-enum
-{
- CC_L = 0,
- CC_V,
- CC_T,
- CC_LV,
- CC_LVT,
- CC_X,
- CC_COUNT
-};
-
-// Action flags
-#define AF_L 1
-#define AF_V 2
-#define AF_T 4
-
-// Actions
-#define a_N 0
-#define a_L (AF_L)
-#define a_V (AF_V)
-#define a_T (AF_T)
-#define a_VT (AF_V | AF_T)
-#define a_LV (AF_L | AF_V)
-#define a_LVT (AF_L | AF_V | AF_T)
-
-typedef struct
-{
- int32_t newState;
- int32_t actionFlags;
-} StateTransition;
-
-static const StateTransition stateTable[][CC_COUNT] =
-{
-// L V T LV LVT X
- { {1, a_L}, {2, a_LV}, {3, a_LVT}, {2, a_LV}, {3, a_LVT}, {4, a_T}}, // 0 - start
- { {1, a_L}, {2, a_V}, {3, a_VT}, {2, a_LV}, {3, a_LVT}, {-1, a_V}}, // 1 - L+
- {{-1, a_N}, {2, a_V}, {3, a_T}, {-1, a_N}, {-1, a_N}, {-1, a_N}}, // 2 - L+V+
- {{-1, a_N}, {-1, a_N}, {3, a_T}, {-1, a_N}, {-1, a_N}, {-1, a_N}}, // 3 - L+V+T*
- {{-1, a_N}, {-1, a_N}, {-1, a_N}, {-1, a_N}, {-1, a_N}, {4, a_T}} // 4 - X+
-};
-
-
-#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-#define ljmoFeatureTag LE_LJMO_FEATURE_TAG
-#define vjmoFeatureTag LE_VJMO_FEATURE_TAG
-#define tjmoFeatureTag LE_TJMO_FEATURE_TAG
-
-#define ccmpFeatureMask 0x80000000UL
-#define ljmoFeatureMask 0x40000000UL
-#define vjmoFeatureMask 0x20000000UL
-#define tjmoFeatureMask 0x10000000UL
-
-static const FeatureMap featureMap[] =
-{
- {ccmpFeatureTag, ccmpFeatureMask},
- {ljmoFeatureTag, ljmoFeatureMask},
- {vjmoFeatureTag, vjmoFeatureMask},
- {tjmoFeatureTag, tjmoFeatureMask}
-};
-
-static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-
-#define nullFeatures 0
-#define ljmoFeatures (ccmpFeatureMask | ljmoFeatureMask)
-#define vjmoFeatures (ccmpFeatureMask | vjmoFeatureMask | ljmoFeatureMask | tjmoFeatureMask)
-#define tjmoFeatures (ccmpFeatureMask | tjmoFeatureMask | ljmoFeatureMask | vjmoFeatureMask)
-
-static le_int32 compose(LEUnicode lead, LEUnicode vowel, LEUnicode trail, LEUnicode &syllable)
-{
- le_int32 lIndex = lead - LJMO_FIRST;
- le_int32 vIndex = vowel - VJMO_FIRST;
- le_int32 tIndex = trail - TJMO_FIRST;
- le_int32 result = 3;
-
- if ((lIndex < 0 || lIndex >= LJMO_COUNT ) || (vIndex < 0 || vIndex >= VJMO_COUNT)) {
- return 0;
- }
-
- if (tIndex <= 0 || tIndex >= TJMO_COUNT) {
- tIndex = 0;
- result = 2;
- }
-
- syllable = (LEUnicode) ((lIndex * VJMO_COUNT + vIndex) * TJMO_COUNT + tIndex + HSYL_FIRST);
-
- return result;
-}
-
-static le_int32 decompose(LEUnicode syllable, LEUnicode &lead, LEUnicode &vowel, LEUnicode &trail)
-{
- le_int32 sIndex = syllable - HSYL_FIRST;
-
- if (sIndex < 0 || sIndex >= HSYL_COUNT) {
- return 0;
- }
-
- lead = LJMO_FIRST + (sIndex / HSYL_LVCNT);
- vowel = VJMO_FIRST + (sIndex % HSYL_LVCNT) / TJMO_COUNT;
- trail = TJMO_FIRST + (sIndex % TJMO_COUNT);
-
- if (trail == TJMO_FIRST) {
- return 2;
- }
-
- return 3;
-}
-
-static le_int32 getCharClass(LEUnicode ch, LEUnicode &lead, LEUnicode &vowel, LEUnicode &trail)
-{
- lead = LJMO_FILL;
- vowel = VJMO_FILL;
- trail = TJMO_FIRST;
-
- if (ch >= LJMO_FIRST && ch <= LJMO_LAST) {
- lead = ch;
- return CC_L;
- }
-
- if (ch >= VJMO_FIRST && ch <= VJMO_LAST) {
- vowel = ch;
- return CC_V;
- }
-
- if (ch > TJMO_FIRST && ch <= TJMO_LAST) {
- trail = ch;
- return CC_T;
- }
-
- le_int32 c = decompose(ch, lead, vowel, trail);
-
- if (c == 2) {
- return CC_LV;
- }
-
- if (c == 3) {
- return CC_LVT;
- }
-
- trail = ch;
- return CC_X;
-}
-
-HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags, gsubTable)
-{
- fFeatureMap = featureMap;
- fFeatureMapCount = featureMapCount;
- fFeatureOrder = TRUE;
-}
-
-HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
- le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags)
-{
- fFeatureMap = featureMap;
- fFeatureMapCount = featureMapCount;
- fFeatureOrder = TRUE;
-}
-
-HangulOpenTypeLayoutEngine::~HangulOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-le_int32 HangulOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 worstCase = count * 3;
-
- outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- return 0;
- }
-
- le_int32 outCharCount = 0;
- le_int32 limit = offset + count;
- le_int32 i = offset;
-
- while (i < limit) {
- le_int32 state = 0;
- le_int32 inStart = i;
- le_int32 outStart = outCharCount;
-
- while( i < limit) {
- LEUnicode lead = 0;
- LEUnicode vowel = 0;
- LEUnicode trail = 0;
- int32_t chClass = getCharClass(chars[i], lead, vowel, trail);
- const StateTransition transition = stateTable[state][chClass];
-
- if (chClass == CC_X) {
- /* Any character of type X will be stored as a trail jamo */
- if ((transition.actionFlags & AF_T) != 0) {
- outChars[outCharCount] = trail;
- glyphStorage.setCharIndex(outCharCount, i-offset, success);
- glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
- }
- } else {
- /* Any Hangul will be fully decomposed. Output the decomposed characters. */
- if ((transition.actionFlags & AF_L) != 0) {
- outChars[outCharCount] = lead;
- glyphStorage.setCharIndex(outCharCount, i-offset, success);
- glyphStorage.setAuxData(outCharCount++, ljmoFeatures, NULL, success);
- }
-
- if ((transition.actionFlags & AF_V) != 0) {
- outChars[outCharCount] = vowel;
- glyphStorage.setCharIndex(outCharCount, i-offset, success);
- glyphStorage.setAuxData(outCharCount++, vjmoFeatures, NULL, success);
- }
-
- if ((transition.actionFlags & AF_T) != 0) {
- outChars[outCharCount] = trail;
- glyphStorage.setCharIndex(outCharCount, i-offset, success);
- glyphStorage.setAuxData(outCharCount++, tjmoFeatures, NULL, success);
- }
- }
-
- state = transition.newState;
-
- /* Negative next state means stop. */
- if (state < 0) {
- break;
- }
-
- i += 1;
- }
-
- le_int32 inLength = i - inStart;
- le_int32 outLength = outCharCount - outStart;
-
- /*
- * See if the syllable can be composed into a single character. There are 5
- * possible cases:
- *
- * Input Decomposed to Compose to
- * LV L, V LV
- * LVT L, V, T LVT
- * L, V L, V LV, DEL
- * LV, T L, V, T LVT, DEL
- * L, V, T L, V, T LVT, DEL, DEL
- */
- if ((inLength >= 1 && inLength <= 3) && (outLength == 2 || outLength == 3)) {
- LEUnicode syllable = 0x0000;
- LEUnicode lead = outChars[outStart];
- LEUnicode vowel = outChars[outStart + 1];
- LEUnicode trail = outLength == 3? outChars[outStart + 2] : TJMO_FIRST;
-
- /*
- * If the composition consumes the whole decomposed syllable,
- * we can use it.
- */
- if (compose(lead, vowel, trail, syllable) == outLength) {
- outCharCount = outStart;
- outChars[outCharCount] = syllable;
- glyphStorage.setCharIndex(outCharCount, inStart-offset, success);
- glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
-
- /*
- * Replace the rest of the input characters with DEL.
- */
- for(le_int32 d = inStart + 1; d < i; d += 1) {
- outChars[outCharCount] = 0xFFFF;
- glyphStorage.setCharIndex(outCharCount, d - offset, success);
- glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
- }
- }
- }
- }
-
- glyphStorage.adoptGlyphCount(outCharCount);
- return outCharCount;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h
deleted file mode 100644
index e77c3b97644..00000000000
--- a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h
+++ /dev/null
@@ -1,125 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#ifndef __HANGULAYOUTENGINE_H
-#define __HANGULAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LEGlyphFilter.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-class MPreFixups;
-class LEGlyphStorage;
-
-/**
- * This class implements OpenType layout for Old Hangul OpenType fonts, as
- * specified by Microsoft in "Creating and Supporting OpenType Fonts for
- * The Korean Hangul Script" (http://www.microsoft.com/typography/otfntdev/hangulot/default.htm)
- *
- * This class overrides the characterProcessing method to do Hangul character processing.
- * (See the MS spec. for more details)
- *
- * @internal
- */
-class HangulOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of HangulOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * Hangul OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~HangulOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Hangul OpenType character processing. It assigns the OpenType feature
- * tags to the characters, and may compose a character sequence into a modern Hangul syllable,
- * or decompose a modern Hangul syllable if it forms part of an old Hangul syllable.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
- * the auxillary data array will be set to the feature tags.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/HindiFeatureTags.h b/Build/source/libs/icu-xetex/layout/HindiFeatureTags.h
deleted file mode 100644
index de78f485239..00000000000
--- a/Build/source/libs/icu-xetex/layout/HindiFeatureTags.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __HINDIFEATURETAGS_H
-#define __HINDIFEATURETAGS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "jni.h"
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-const LETag oopsFeatureTag = 0x6F6F7073; // 'oops'
-
-const LETag nuktFeatureTag = 0x6E756B74; // 'nukt'
-const LETag akhnFeatureTag = 0x616B686E; // 'akhn'
-const LETag rphfFeatureTag = 0x72706866; // 'rphf'
-const LETag blwfFeatureTag = 0x626C7766; // 'blwf'
-const LETag halfFeatureTag = 0x68616C66; // 'half'
-const LETag pstfFeatureTag = 0x70737466; // 'pstf'
-const LETag vatuFeatureTag = 0x76617475; // 'vatu'
-const LETag presFeatureTag = 0x70726573; // 'pres'
-const LETag blwsFeatureTag = 0x626C7773; // 'blws'
-const LETag abvsFeatureTag = 0x61627673; // 'abvs'
-const LETag pstsFeatureTag = 0x70737473; // 'psts'
-const LETag halnFeatureTag = 0x68616C6E; // 'haln'
-
-const LETag blwmFeatureTag = 0x626C776D; // 'blwm'
-const LETag abvmFeatureTag = 0x6162766D; // 'abvm'
-const LETag distFeatureTag = 0x64697374; // 'dist'
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp b/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp
deleted file mode 100644
index a190afa7591..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "IndicReordering.h"
-
-U_NAMESPACE_BEGIN
-
-// Split matra table indices
-#define _x1 (1 << CF_INDEX_SHIFT)
-#define _x2 (2 << CF_INDEX_SHIFT)
-#define _x3 (3 << CF_INDEX_SHIFT)
-#define _x4 (4 << CF_INDEX_SHIFT)
-#define _x5 (5 << CF_INDEX_SHIFT)
-#define _x6 (6 << CF_INDEX_SHIFT)
-#define _x7 (7 << CF_INDEX_SHIFT)
-#define _x8 (8 << CF_INDEX_SHIFT)
-#define _x9 (9 << CF_INDEX_SHIFT)
-
-// simple classes
-#define _xx (CC_RESERVED)
-#define _ma (CC_VOWEL_MODIFIER | CF_POS_ABOVE)
-#define _mp (CC_VOWEL_MODIFIER | CF_POS_AFTER)
-#define _sa (CC_STRESS_MARK | CF_POS_ABOVE)
-#define _sb (CC_STRESS_MARK | CF_POS_BELOW)
-#define _iv (CC_INDEPENDENT_VOWEL)
-#define _i2 (CC_INDEPENDENT_VOWEL_2)
-#define _i3 (CC_INDEPENDENT_VOWEL_3)
-#define _ct (CC_CONSONANT | CF_CONSONANT)
-#define _cn (CC_CONSONANT_WITH_NUKTA | CF_CONSONANT)
-#define _nu (CC_NUKTA)
-#define _dv (CC_DEPENDENT_VOWEL)
-#define _dl (_dv | CF_POS_BEFORE)
-#define _db (_dv | CF_POS_BELOW)
-#define _da (_dv | CF_POS_ABOVE)
-#define _dr (_dv | CF_POS_AFTER)
-#define _lm (_dv | CF_LENGTH_MARK)
-#define _l1 (CC_SPLIT_VOWEL_PIECE_1 | CF_POS_BEFORE)
-#define _a1 (CC_SPLIT_VOWEL_PIECE_1 | CF_POS_ABOVE)
-#define _b2 (CC_SPLIT_VOWEL_PIECE_2 | CF_POS_BELOW)
-#define _r2 (CC_SPLIT_VOWEL_PIECE_2 | CF_POS_AFTER)
-#define _m2 (CC_SPLIT_VOWEL_PIECE_2 | CF_LENGTH_MARK)
-#define _m3 (CC_SPLIT_VOWEL_PIECE_3 | CF_LENGTH_MARK)
-#define _vr (CC_VIRAMA)
-
-// split matras
-#define _s1 (_dv | _x1)
-#define _s2 (_dv | _x2)
-#define _s3 (_dv | _x3)
-#define _s4 (_dv | _x4)
-#define _s5 (_dv | _x5)
-#define _s6 (_dv | _x6)
-#define _s7 (_dv | _x7)
-#define _s8 (_dv | _x8)
-#define _s9 (_dv | _x9)
-
-// consonants with special forms
-// NOTE: this assumes that no consonants with nukta have
-// special forms... (Bengali RA?)
-#define _bb (_ct | CF_BELOW_BASE)
-#define _pb (_ct | CF_POST_BASE)
-#define _vt (_bb | CF_VATTU)
-#define _rv (_vt | CF_REPH)
-#define _rp (_pb | CF_REPH)
-#define _rb (_bb | CF_REPH)
-
-//
-// Character class tables
-//
-static const IndicClassTable::CharClass devaCharClasses[] =
-{
- _xx, _ma, _ma, _mp, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, // 0900 - 090F
- _iv, _iv, _iv, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0910 - 091F
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _cn, _ct, _ct, _ct, _ct, _ct, _ct, // 0920 - 092F
- _rv, _cn, _ct, _ct, _cn, _ct, _ct, _ct, _ct, _ct, _xx, _xx, _nu, _xx, _dr, _dl, // 0930 - 093F
- _dr, _db, _db, _db, _db, _da, _da, _da, _da, _dr, _dr, _dr, _dr, _vr, _xx, _xx, // 0940 - 094F
- _xx, _sa, _sb, _sa, _sa, _xx, _xx, _xx, _cn, _cn, _cn, _cn, _cn, _cn, _cn, _cn, // 0950 - 095F
- _iv, _iv, _db, _db, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0960 - 096F
- _xx // 0970
-};
-
-static const IndicClassTable::CharClass bengCharClasses[] =
-{
- _xx, _ma, _mp, _mp, _xx, _i2, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _i2, // 0980 - 098F
- _iv, _xx, _xx, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0990 - 099F
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _bb, _ct, _ct, _pb, // 09A0 - 09AF
- _rv, _xx, _ct, _xx, _xx, _xx, _ct, _ct, _ct, _ct, _xx, _xx, _nu, _xx, _r2, _dl, // 09B0 - 09BF
- _dr, _db, _db, _db, _db, _xx, _xx, _l1, _dl, _xx, _xx, _s1, _s2, _vr, _xx, _xx, // 09C0 - 09CF
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _cn, _cn, _xx, _cn, // 09D0 - 09DF
- _iv, _iv, _dv, _dv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 09E0 - 09EF
- _ct, _ct, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 09F0 - 09FA
-};
-
-static const IndicClassTable::CharClass punjCharClasses[] =
-{
- _xx, _ma, _ma, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _xx, _iv, // 0A00 - 0A0F
- _iv, _xx, _xx, _i3, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0A10 - 0A1F
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _bb, // 0A20 - 0A2F
- _vt, _xx, _ct, _cn, _xx, _bb, _cn, _xx, _ct, _bb, _xx, _xx, _nu, _xx, _dr, _dl, // 0A30 - 0A3F
- _dr, _b2, _db, _xx, _xx, _xx, _xx, _da, _da, _xx, _xx, _a1, _da, _vr, _xx, _xx, // 0A40 - 0A4F
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _cn, _cn, _cn, _ct, _xx, _cn, _xx, // 0A50 - 0A5F
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0A60 - 0A6F
- _ma, _ma, _xx, _xx, _xx // 0A70 - 0A74
-};
-
-static const IndicClassTable::CharClass gujrCharClasses[] =
-{
- _xx, _ma, _ma, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _xx, _iv, // 0A80 - 0A8F
- _iv, _iv, _xx, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0A90 - 0A9F
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _ct, // 0AA0 - 0AAF
- _rv, _xx, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _xx, _xx, _nu, _xx, _dr, _dl, // 0AB0 - 0ABF
- _dr, _db, _db, _db, _db, _da, _xx, _da, _da, _dr, _xx, _dr, _dr, _vr, _xx, _xx, // 0AC0 - 0ACF
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0AD0 - 0ADF
- _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0AE0 - 0AEF
-};
-
-static const IndicClassTable::CharClass oryaCharClasses[] =
-{
- _xx, _ma, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _iv, // 0B00 - 0B0F
- _iv, _xx, _xx, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0B10 - 0B1F
- _ct, _ct, _ct, _ct, _bb, _ct, _ct, _ct, _bb, _xx, _ct, _ct, _bb, _bb, _bb, _pb, // 0B20 - 0B2F
- _rb, _xx, _bb, _bb, _xx, _ct, _ct, _ct, _ct, _ct, _xx, _xx, _nu, _xx, _r2, _da, // 0B30 - 0B3F
- _dr, _db, _db, _db, _xx, _xx, _xx, _l1, _s1, _xx, _xx, _s2, _s3, _vr, _xx, _xx, // 0B40 - 0B4F
- _xx, _xx, _xx, _xx, _xx, _xx, _m2, _m2, _xx, _xx, _xx, _xx, _cn, _cn, _xx, _cn, // 0B50 - 0B5F
- _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0B60 - 0B6F
- _xx, _ct // 0B70 - 0B71
-};
-
-static const IndicClassTable::CharClass tamlCharClasses[] =
-{
- _xx, _xx, _ma, _xx, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _iv, _iv, // 0B80 - 0B8F
- _iv, _xx, _iv, _iv, _iv, _ct, _xx, _xx, _xx, _ct, _ct, _xx, _ct, _xx, _ct, _ct, // 0B90 - 0B9F
- _xx, _xx, _xx, _ct, _ct, _xx, _xx, _xx, _ct, _ct, _ct, _xx, _xx, _xx, _ct, _ct, // 0BA0 - 0BAF
- _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _r2, _dr, // 0BB0 - 0BBF
- _da, _dr, _dr, _xx, _xx, _xx, _l1, _l1, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, // 0BC0 - 0BCF
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0BD0 - 0BDF
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0BE0 - 0BEF
- _xx, _xx, _xx // 0BF0 - 0BF2
-};
-
-// FIXME: Should some of the bb's be pb's? (KA, NA, MA, YA, VA, etc. (approx 13))
-static const IndicClassTable::CharClass teluCharClasses[] =
-{
- _xx, _mp, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, // 0C00 - 0C0F
- _iv, _xx, _iv, _iv, _iv, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, // 0C10 - 0C1F
- _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _bb, // 0C20 - 0C2F
- _bb, _ct, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _xx, _xx, _xx, _xx, _da, _da, // 0C30 - 0C3F
- _da, _dr, _dr, _dr, _dr, _xx, _a1, _da, _s1, _xx, _da, _da, _da, _vr, _xx, _xx, // 0C40 - 0C4F
- _xx, _xx, _xx, _xx, _xx, _da, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0C50 - 0C5F
- _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0C60 - 0C6F
-};
-
-// U+CC3 and U+CC4 are _lm here not _dr since the Kannada rendering
-// rules want them below and to the right of the entire cluster
-//
-// There's some information about this in:
-//
-// http://brahmi.sourceforge.net/docs/KannadaComputing.html
-static const IndicClassTable::CharClass kndaCharClasses[] =
-{
- _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, // 0C80 - 0C8F
- _iv, _xx, _iv, _iv, _iv, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, // 0C90 - 0C9F
- _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _bb, // 0CA0 - 0CAF
- _rb, _ct, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _xx, _xx, _xx, _xx, _dr, _da, // 0CB0 - 0CBF
- _s1, _dr, _r2, _lm, _lm, _xx, _a1, _s2, _s3, _xx, _s4, _s5, _da, _vr, _xx, _xx, // 0CC0 - 0CCF
- _xx, _xx, _xx, _xx, _xx, _m3, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _ct, _xx, // 0CD0 - 0CDF
- _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0CE0 - 0CEF
-};
-
-// FIXME: this is correct for old-style Malayalam (MAL) but not for reformed Malayalam (MLR)
-// FIXME: should there be a REPH for old-style Malayalam?
-static const IndicClassTable::CharClass mlymCharClasses[] =
-{
- _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, // 0D00 - 0D0F
- _iv, _xx, _iv, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _bb, // 0D10 - 0D1F
- _ct, _ct, _ct, _bb, _ct, _bb, _bb, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _pb, // 0D20 - 0D2F
- _pb, _cn, _bb, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _r2, _dr, // 0D30 - 0D3F
- _dr, _dr, _dr, _dr, _xx, _xx, _l1, _l1, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, // 0D40 - 0D4F
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0D50 - 0D5F
- _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0D60 - 0D6F
-};
-
-static const IndicClassTable::CharClass sinhCharClasses[] =
-{
- _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, // 0D80 - 0D8F
- _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _ct, _ct, _ct, _ct, _ct, _ct, // 0D90 - 0D9F
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0DA0 - 0DAF
- _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _xx, _xx, // 0DB0 - 0DBF
- _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _vr, _xx, _xx, _xx, _xx, _dr, // 0DC0 - 0DCF
- _dr, _dr, _da, _da, _db, _xx, _db, _xx, _dr, _dl, _s1, _dl, _s2, _s3, _s4, _dr, // 0DD0 - 0DDF
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0DE0 - 0DEF
- _xx, _xx, _dr, _dr, _xx // 0DF0 - 0DF4
-};
-
-//
-// Split matra tables
-//
-static const SplitMatra bengSplitTable[] = {{0x09C7, 0x09BE}, {0x09C7, 0x09D7}};
-
-static const SplitMatra oryaSplitTable[] = {{0x0B47, 0x0B56}, {0x0B47, 0x0B3E}, {0x0B47, 0x0B57}};
-
-static const SplitMatra tamlSplitTable[] = {{0x0BC6, 0x0BBE}, {0x0BC7, 0x0BBE}, {0x0BC6, 0x0BD7}};
-
-static const SplitMatra teluSplitTable[] = {{0x0C46, 0x0C56}};
-
-static const SplitMatra kndaSplitTable[] = {{0x0CBF, 0x0CD5}, {0x0CC6, 0x0CD5}, {0x0CC6, 0x0CD6}, {0x0CC6, 0x0CC2},
- {0x0CC6, 0x0CC2, 0x0CD5}};
-
-static const SplitMatra mlymSplitTable[] = {{0x0D46, 0x0D3E}, {0x0D47, 0x0D3E}, {0x0D46, 0x0D57}};
-
-
-static const SplitMatra sinhSplitTable[] = {{0x0DD9, 0x0DCA}, {0x0DD9, 0x0DCF}, {0x0DD9, 0x0DCF,0x0DCA},
- {0x0DD9, 0x0DDF}};
-//
-// Script Flags
-//
-
-// FIXME: post 'GSUB' reordering of MATRA_PRE's for Malayalam and Tamil
-// FIXME: reformed Malayalam needs to reorder VATTU to before base glyph...
-// FIXME: eyelash RA only for Devanagari??
-#define DEVA_SCRIPT_FLAGS (SF_EYELASH_RA | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define BENG_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define PUNJ_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define GUJR_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define ORYA_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3)
-#define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3)
-#define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
-#define SINH_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT)
-
-//
-// Indic Class Tables
-//
-static const IndicClassTable devaClassTable = {0x0900, 0x0970, 2, DEVA_SCRIPT_FLAGS, devaCharClasses, NULL};
-
-static const IndicClassTable bengClassTable = {0x0980, 0x09FA, 3, BENG_SCRIPT_FLAGS, bengCharClasses, bengSplitTable};
-
-static const IndicClassTable punjClassTable = {0x0A00, 0x0A74, 2, PUNJ_SCRIPT_FLAGS, punjCharClasses, NULL};
-
-static const IndicClassTable gujrClassTable = {0x0A80, 0x0AEF, 2, GUJR_SCRIPT_FLAGS, gujrCharClasses, NULL};
-
-static const IndicClassTable oryaClassTable = {0x0B00, 0x0B71, 3, ORYA_SCRIPT_FLAGS, oryaCharClasses, oryaSplitTable};
-
-static const IndicClassTable tamlClassTable = {0x0B80, 0x0BF2, 3, TAML_SCRIPT_FLAGS, tamlCharClasses, tamlSplitTable};
-
-static const IndicClassTable teluClassTable = {0x0C00, 0x0C6F, 3, TELU_SCRIPT_FLAGS, teluCharClasses, teluSplitTable};
-
-static const IndicClassTable kndaClassTable = {0x0C80, 0x0CEF, 4, KNDA_SCRIPT_FLAGS, kndaCharClasses, kndaSplitTable};
-
-static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable};
-
-static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 3, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
-
-//
-// IndicClassTable addresses
-//
-static const IndicClassTable * const indicClassTables[scriptCodeCount] = {
- NULL, /* 'zyyy' (COMMON) */
- NULL, /* 'qaai' (INHERITED) */
- NULL, /* 'arab' (ARABIC) */
- NULL, /* 'armn' (ARMENIAN) */
- &bengClassTable, /* 'beng' (BENGALI) */
- NULL, /* 'bopo' (BOPOMOFO) */
- NULL, /* 'cher' (CHEROKEE) */
- NULL, /* 'copt' (COPTIC) */
- NULL, /* 'cyrl' (CYRILLIC) */
- NULL, /* 'dsrt' (DESERET) */
- &devaClassTable, /* 'deva' (DEVANAGARI) */
- NULL, /* 'ethi' (ETHIOPIC) */
- NULL, /* 'geor' (GEORGIAN) */
- NULL, /* 'goth' (GOTHIC) */
- NULL, /* 'grek' (GREEK) */
- &gujrClassTable, /* 'gujr' (GUJARATI) */
- &punjClassTable, /* 'guru' (GURMUKHI) */
- NULL, /* 'hani' (HAN) */
- NULL, /* 'hang' (HANGUL) */
- NULL, /* 'hebr' (HEBREW) */
- NULL, /* 'hira' (HIRAGANA) */
- &kndaClassTable, /* 'knda' (KANNADA) */
- NULL, /* 'kata' (KATAKANA) */
- NULL, /* 'khmr' (KHMER) */
- NULL, /* 'laoo' (LAO) */
- NULL, /* 'latn' (LATIN) */
- &mlymClassTable, /* 'mlym' (MALAYALAM) */
- NULL, /* 'mong' (MONGOLIAN) */
- NULL, /* 'mymr' (MYANMAR) */
- NULL, /* 'ogam' (OGHAM) */
- NULL, /* 'ital' (OLD-ITALIC) */
- &oryaClassTable, /* 'orya' (ORIYA) */
- NULL, /* 'runr' (RUNIC) */
- &sinhClassTable, /* 'sinh' (SINHALA) */
- NULL, /* 'syrc' (SYRIAC) */
- &tamlClassTable, /* 'taml' (TAMIL) */
- &teluClassTable, /* 'telu' (TELUGU) */
- NULL, /* 'thaa' (THAANA) */
- NULL, /* 'thai' (THAI) */
- NULL, /* 'tibt' (TIBETAN) */
- NULL, /* 'cans' (CANADIAN-ABORIGINAL) */
- NULL, /* 'yiii' (YI) */
- NULL, /* 'tglg' (TAGALOG) */
- NULL, /* 'hano' (HANUNOO) */
- NULL, /* 'buhd' (BUHID) */
- NULL, /* 'tagb' (TAGBANWA) */
- NULL, /* 'brai' (BRAILLE) */
- NULL, /* 'cprt' (CYPRIOT) */
- NULL, /* 'limb' (LIMBU) */
- NULL, /* 'linb' (LINEAR_B) */
- NULL, /* 'osma' (OSMANYA) */
- NULL, /* 'shaw' (SHAVIAN) */
- NULL, /* 'tale' (TAI_LE) */
- NULL, /* 'ugar' (UGARITIC) */
- NULL, /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
- NULL, /* 'bugi' (BUGINESE) */
- NULL, /* 'glag' (GLAGOLITIC) */
- NULL, /* 'khar' (KHAROSHTHI) */
- NULL, /* 'sylo' (SYLOTI_NAGRI) */
- NULL, /* 'talu' (NEW_TAI_LUE) */
- NULL, /* 'tfng' (TIFINAGH) */
- NULL, /* 'xpeo' (OLD_PERSIAN) */
- NULL, /* 'bali' (BALINESE) */
- NULL, /* 'batk' (BATK) */
- NULL, /* 'blis' (BLIS) */
- NULL, /* 'brah' (BRAH) */
- NULL, /* 'cham' (CHAM) */
- NULL, /* 'cirt' (CIRT) */
- NULL, /* 'cyrs' (CYRS) */
- NULL, /* 'egyd' (EGYD) */
- NULL, /* 'egyh' (EGYH) */
- NULL, /* 'egyp' (EGYP) */
- NULL, /* 'geok' (GEOK) */
- NULL, /* 'hans' (HANS) */
- NULL, /* 'hant' (HANT) */
- NULL, /* 'hmng' (HMNG) */
- NULL, /* 'hung' (HUNG) */
- NULL, /* 'inds' (INDS) */
- NULL, /* 'java' (JAVA) */
- NULL, /* 'kali' (KALI) */
- NULL, /* 'latf' (LATF) */
- NULL, /* 'latg' (LATG) */
- NULL, /* 'lepc' (LEPC) */
- NULL, /* 'lina' (LINA) */
- NULL, /* 'mand' (MAND) */
- NULL, /* 'maya' (MAYA) */
- NULL, /* 'mero' (MERO) */
- NULL, /* 'nko ' (NKO) */
- NULL, /* 'orkh' (ORKH) */
- NULL, /* 'perm' (PERM) */
- NULL, /* 'phag' (PHAGS_PA) */
- NULL, /* 'phnx' (PHOENICIAN) */
- NULL, /* 'plrd' (PLRD) */
- NULL, /* 'roro' (RORO) */
- NULL, /* 'sara' (SARA) */
- NULL, /* 'syre' (SYRE) */
- NULL, /* 'syrj' (SYRJ) */
- NULL, /* 'syrn' (SYRN) */
- NULL, /* 'teng' (TENG) */
- NULL, /* 'vai ' (VAII) */
- NULL, /* 'visp' (VISP) */
- NULL, /* 'xsux' (CUNEIFORM) */
- NULL, /* 'zxxx' (ZXXX) */
- NULL /* 'zzzz' (UNKNOWN) */
-};
-
-IndicClassTable::CharClass IndicClassTable::getCharClass(LEUnicode ch) const
-{
- if (ch == C_SIGN_ZWJ) {
- return CF_CONSONANT | CC_ZERO_WIDTH_MARK;
- }
-
- if (ch == C_SIGN_ZWNJ) {
- return CC_ZERO_WIDTH_MARK;
- }
-
- if (ch < firstChar || ch > lastChar) {
- return CC_RESERVED;
- }
-
- return classTable[ch - firstChar];
-}
-
-const IndicClassTable *IndicClassTable::getScriptClassTable(le_int32 scriptCode)
-{
- if (scriptCode < 0 || scriptCode >= scriptCodeCount) {
- return NULL;
- }
-
- return indicClassTables[scriptCode];
-}
-
-le_int32 IndicReordering::getWorstCaseExpansion(le_int32 scriptCode)
-{
- const IndicClassTable *classTable = IndicClassTable::getScriptClassTable(scriptCode);
-
- if (classTable == NULL) {
- return 1;
- }
-
- return classTable->getWorstCaseExpansion();
-}
-
-le_bool IndicReordering::getFilterZeroWidth(le_int32 scriptCode)
-{
- const IndicClassTable *classTable = IndicClassTable::getScriptClassTable(scriptCode);
-
- if (classTable == NULL) {
- return TRUE;
- }
-
- return classTable->getFilterZeroWidth();
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp
deleted file mode 100644
index ec83e73e462..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-#include "IndicLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-#include "GDEFMarkFilter.h"
-#include "LEGlyphStorage.h"
-
-#include "IndicReordering.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicOpenTypeLayoutEngine)
-
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable), fMPreFixups(NULL)
-{
- fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-
- fFilterZeroWidth = IndicReordering::getFilterZeroWidth(fScriptCode);
-}
-
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fMPreFixups(NULL)
-{
- fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-IndicOpenTypeLayoutEngine::~IndicOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-// Input: characters, tags
-// Output: glyphs, char indices
-le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 retCount = OpenTypeLayoutEngine::glyphProcessing(chars, offset, count, max, rightToLeft, glyphStorage, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- IndicReordering::adjustMPres(fMPreFixups, glyphStorage);
-
- return retCount;
-}
-
-// Input: characters
-// Output: characters, char indices, tags
-// Returns: output character count
-le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 worstCase = count * IndicReordering::getWorstCaseExpansion(fScriptCode);
-
- outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- return 0;
- }
-
- // NOTE: assumes this allocates featureTags...
- // (probably better than doing the worst case stuff here...)
- le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups);
-
- glyphStorage.adoptGlyphCount(outCharCount);
- return outCharCount;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.h b/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.h
deleted file mode 100644
index af0f4c97f47..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.h
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __INDICLAYOUTENGINE_H
-#define __INDICLAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LEGlyphFilter.h"
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-class MPreFixups;
-class LEGlyphStorage;
-
-/**
- * This class implements OpenType layout for Indic OpenType fonts, as
- * specified by Microsoft in "Creating and Supporting OpenType Fonts for
- * Indic Scripts" (http://www.microsoft.com/typography/otspec/indicot/default.htm)
- *
- * This class overrides the characterProcessing method to do Indic character processing
- * and reordering, and the glyphProcessing method to implement post-GSUB processing for
- * left matras. (See the MS spec. for more details)
- *
- * @internal
- */
-class IndicOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of IndicOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * Indic OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~IndicOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Indic OpenType character processing. It assigns the OpenType feature
- * tags to the characters, and may generate output characters which have been reordered. For
- * some Indic scripts, it may also split some vowels, resulting in more output characters
- * than input characters.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
- * the auxillary data array will be set to the feature tags.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method does character to glyph mapping, applies the GSUB table and applies
- * any post GSUB fixups for left matras. It calls OpenTypeLayoutEngine::glyphProcessing
- * to do the character to glyph mapping, and apply the GSUB table.
- *
- * Note that in the case of "canned" GSUB tables, the output glyph indices may be
- * "fake" glyph indices that need to be converted to "real" glyph indices by the
- * glyphPostProcessing method.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param featureTags - the feature tag array
- * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the output glyph index array
- *
- * Note: if the character index array was already set by the characterProcessing
- * method, this method won't change it.
- *
- * @internal
- */
- virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-private:
-
- MPreFixups *fMPreFixups;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/IndicRearrangement.h b/Build/source/libs/icu-xetex/layout/IndicRearrangement.h
deleted file mode 100644
index 48b1d08adae..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicRearrangement.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __INDICREARRANGEMENT_H
-#define __INDICREARRANGEMENT_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "StateTables.h"
-#include "MorphTables.h"
-#include "MorphStateTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct IndicRearrangementSubtableHeader : MorphStateTableHeader
-{
-};
-
-enum IndicRearrangementFlags
-{
- irfMarkFirst = 0x8000,
- irfDontAdvance = 0x4000,
- irfMarkLast = 0x2000,
- irfReserved = 0x1FF0,
- irfVerbMask = 0x000F
-};
-
-enum IndicRearrangementVerb
-{
- irvNoAction = 0x0000, /* no action */
- irvxA = 0x0001, /* Ax => xA */
- irvDx = 0x0002, /* xD => Dx */
- irvDxA = 0x0003, /* AxD => DxA */
-
- irvxAB = 0x0004, /* ABx => xAB */
- irvxBA = 0x0005, /* ABx => xBA */
- irvCDx = 0x0006, /* xCD => CDx */
- irvDCx = 0x0007, /* xCD => DCx */
-
- irvCDxA = 0x0008, /* AxCD => CDxA */
- irvDCxA = 0x0009, /* AxCD => DCxA */
- irvDxAB = 0x000A, /* ABxD => DxAB */
- irvDxBA = 0x000B, /* ABxD => DxBA */
-
- irvCDxAB = 0x000C, /* ABxCD => CDxAB */
- irvCDxBA = 0x000D, /* ABxCD => CDxBA */
- irvDCxAB = 0x000E, /* ABxCD => DCxAB */
- irvDCxBA = 0x000F /* ABxCD => DCxBA */
-};
-
-struct IndicRearrangementStateEntry : StateEntry
-{
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.cpp b/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.cpp
deleted file mode 100644
index 92202450705..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.cpp
+++ /dev/null
@@ -1,398 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "StateTables.h"
-#include "MorphStateTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "IndicRearrangementProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicRearrangementProcessor)
-
-IndicRearrangementProcessor::IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : StateTableProcessor(morphSubtableHeader)
-{
- indicRearrangementSubtableHeader = (const IndicRearrangementSubtableHeader *) morphSubtableHeader;
- entryTable = (const IndicRearrangementStateEntry *) ((char *) &stateTableHeader->stHeader + entryTableOffset);
-}
-
-IndicRearrangementProcessor::~IndicRearrangementProcessor()
-{
-}
-
-void IndicRearrangementProcessor::beginStateTable()
-{
- firstGlyph = 0;
- lastGlyph = 0;
-}
-
-ByteOffset IndicRearrangementProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
-{
- const IndicRearrangementStateEntry *entry = &entryTable[index];
- ByteOffset newState = SWAPW(entry->newStateOffset);
- IndicRearrangementFlags flags = (IndicRearrangementFlags) SWAPW(entry->flags);
-
- if (flags & irfMarkFirst) {
- firstGlyph = currGlyph;
- }
-
- if (flags & irfMarkLast) {
- lastGlyph = currGlyph;
- }
-
- doRearrangementAction(glyphStorage, (IndicRearrangementVerb) (flags & irfVerbMask));
-
- if (!(flags & irfDontAdvance)) {
- // XXX: Should handle reverse too...
- currGlyph += 1;
- }
-
- return newState;
-}
-
-void IndicRearrangementProcessor::endStateTable()
-{
-}
-
-void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const
-{
- LEGlyphID a, b, c, d;
- le_int32 ia, ib, ic, id, ix, x;
- LEErrorCode success = LE_NO_ERROR;
-
- switch(verb)
- {
- case irvNoAction:
- break;
-
- case irvxA:
- a = glyphStorage[firstGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- x = firstGlyph + 1;
-
- while (x <= lastGlyph) {
- glyphStorage[x - 1] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x - 1, ix, success);
- x += 1;
- }
-
- glyphStorage[lastGlyph] = a;
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvDx:
- d = glyphStorage[lastGlyph];
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = lastGlyph - 1;
-
- while (x >= firstGlyph) {
- glyphStorage[x + 1] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x + 1, ix, success);
- x -= 1;
- }
-
- glyphStorage[firstGlyph] = d;
- glyphStorage.setCharIndex(firstGlyph, id, success);
- break;
-
- case irvDxA:
- a = glyphStorage[firstGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
-
- glyphStorage[firstGlyph] = glyphStorage[lastGlyph];
- glyphStorage[lastGlyph] = a;
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvxAB:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- x = firstGlyph + 2;
-
- while (x <= lastGlyph) {
- glyphStorage[x - 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x - 2, ix, success);
- x += 1;
- }
-
- glyphStorage[lastGlyph - 1] = a;
- glyphStorage[lastGlyph] = b;
-
- glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
- glyphStorage.setCharIndex(lastGlyph, ib, success);
- break;
-
- case irvxBA:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- x = firstGlyph + 2;
-
- while (x <= lastGlyph) {
- glyphStorage[x - 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x - 2, ix, success);
- x += 1;
- }
-
- glyphStorage[lastGlyph - 1] = b;
- glyphStorage[lastGlyph] = a;
-
- glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvCDx:
- c = glyphStorage[lastGlyph - 1];
- d = glyphStorage[lastGlyph];
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = lastGlyph - 2;
-
- while (x >= firstGlyph) {
- glyphStorage[x + 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x + 2, ix, success);
- x -= 1;
- }
-
- glyphStorage[firstGlyph] = c;
- glyphStorage[firstGlyph + 1] = d;
-
- glyphStorage.setCharIndex(firstGlyph, ic, success);
- glyphStorage.setCharIndex(firstGlyph + 1, id, success);
- break;
-
- case irvDCx:
- c = glyphStorage[lastGlyph - 1];
- d = glyphStorage[lastGlyph];
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = lastGlyph - 2;
-
- while (x >= firstGlyph) {
- glyphStorage[x + 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x + 2, ix, success);
- x -= 1;
- }
-
- glyphStorage[firstGlyph] = d;
- glyphStorage[firstGlyph + 1] = c;
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
- break;
-
- case irvCDxA:
- a = glyphStorage[firstGlyph];
- c = glyphStorage[lastGlyph - 1];
- d = glyphStorage[lastGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = lastGlyph - 2;
-
- while (x > firstGlyph) {
- glyphStorage[x + 1] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x + 1, ix, success);
- x -= 1;
- }
-
- glyphStorage[firstGlyph] = c;
- glyphStorage[firstGlyph + 1] = d;
- glyphStorage[lastGlyph] = a;
-
- glyphStorage.setCharIndex(firstGlyph, ic, success);
- glyphStorage.setCharIndex(firstGlyph + 1, id, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvDCxA:
- a = glyphStorage[firstGlyph];
- c = glyphStorage[lastGlyph - 1];
- d = glyphStorage[lastGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = lastGlyph - 2;
-
- while (x > firstGlyph) {
- glyphStorage[x + 1] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x + 1, ix, success);
- x -= 1;
- }
-
- glyphStorage[firstGlyph] = d;
- glyphStorage[firstGlyph + 1] = c;
- glyphStorage[lastGlyph] = a;
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvDxAB:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
- d = glyphStorage[lastGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = firstGlyph + 2;
-
- while (x < lastGlyph) {
- glyphStorage[x - 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x - 2, ix, success);
- x += 1;
- }
-
- glyphStorage[firstGlyph] = d;
- glyphStorage[lastGlyph - 1] = a;
- glyphStorage[lastGlyph] = b;
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
- glyphStorage.setCharIndex(lastGlyph, ib, success);
- break;
-
- case irvDxBA:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
- d = glyphStorage[lastGlyph];
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
- x = firstGlyph + 2;
-
- while (x < lastGlyph) {
- glyphStorage[x - 2] = glyphStorage[x];
- ix = glyphStorage.getCharIndex(x, success);
- glyphStorage.setCharIndex(x - 2, ix, success);
- x += 1;
- }
-
- glyphStorage[firstGlyph] = d;
- glyphStorage[lastGlyph - 1] = b;
- glyphStorage[lastGlyph] = a;
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvCDxAB:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
-
- glyphStorage[firstGlyph] = glyphStorage[lastGlyph - 1];
- glyphStorage[firstGlyph + 1] = glyphStorage[lastGlyph];
-
- glyphStorage[lastGlyph - 1] = a;
- glyphStorage[lastGlyph] = b;
-
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
-
- glyphStorage.setCharIndex(firstGlyph, ic, success);
- glyphStorage.setCharIndex(firstGlyph + 1, id, success);
-
- glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
- glyphStorage.setCharIndex(lastGlyph, ib, success);
- break;
-
- case irvCDxBA:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
-
- glyphStorage[firstGlyph] = glyphStorage[lastGlyph - 1];
- glyphStorage[firstGlyph + 1] = glyphStorage[lastGlyph];
-
- glyphStorage[lastGlyph - 1] = b;
- glyphStorage[lastGlyph] = a;
-
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
-
- glyphStorage.setCharIndex(firstGlyph, ic, success);
- glyphStorage.setCharIndex(firstGlyph + 1, id, success);
-
- glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- case irvDCxAB:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
-
- glyphStorage[firstGlyph] = glyphStorage[lastGlyph];
- glyphStorage[firstGlyph + 1] = glyphStorage[lastGlyph - 1];
-
- glyphStorage[lastGlyph - 1] = a;
- glyphStorage[lastGlyph] = b;
-
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
-
- glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
- glyphStorage.setCharIndex(lastGlyph, ib, success);
- break;
-
- case irvDCxBA:
- a = glyphStorage[firstGlyph];
- b = glyphStorage[firstGlyph + 1];
-
- glyphStorage[firstGlyph] = glyphStorage[lastGlyph];
- glyphStorage[firstGlyph + 1] = glyphStorage[lastGlyph - 1];
-
- glyphStorage[lastGlyph - 1] = b;
- glyphStorage[lastGlyph] = a;
-
- ia = glyphStorage.getCharIndex(firstGlyph, success);
- ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
- ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
- id = glyphStorage.getCharIndex(lastGlyph, success);
-
- glyphStorage.setCharIndex(firstGlyph, id, success);
- glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
-
- glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
- glyphStorage.setCharIndex(lastGlyph, ia, success);
- break;
-
- default:
- break;
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.h b/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.h
deleted file mode 100644
index 0cb46ddfccc..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicRearrangementProcessor.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __INDICREARRANGEMENTPROCESSOR_H
-#define __INDICREARRANGEMENTPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "IndicRearrangement.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class IndicRearrangementProcessor : public StateTableProcessor
-{
-public:
- virtual void beginStateTable();
-
- virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index);
-
- virtual void endStateTable();
-
- void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const;
-
- IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader);
- virtual ~IndicRearrangementProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
- le_int32 firstGlyph;
- le_int32 lastGlyph;
-
- const IndicRearrangementStateEntry *entryTable;
- const IndicRearrangementSubtableHeader *indicRearrangementSubtableHeader;
-
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/IndicReordering.cpp b/Build/source/libs/icu-xetex/layout/IndicReordering.cpp
deleted file mode 100644
index 184afa3848a..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicReordering.cpp
+++ /dev/null
@@ -1,731 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "IndicReordering.h"
-#include "LEGlyphStorage.h"
-#include "MPreFixups.h"
-
-U_NAMESPACE_BEGIN
-
-#define loclFeatureTag LE_LOCL_FEATURE_TAG
-#define initFeatureTag LE_INIT_FEATURE_TAG
-#define nuktFeatureTag LE_NUKT_FEATURE_TAG
-#define akhnFeatureTag LE_AKHN_FEATURE_TAG
-#define rphfFeatureTag LE_RPHF_FEATURE_TAG
-#define blwfFeatureTag LE_BLWF_FEATURE_TAG
-#define halfFeatureTag LE_HALF_FEATURE_TAG
-#define pstfFeatureTag LE_PSTF_FEATURE_TAG
-#define vatuFeatureTag LE_VATU_FEATURE_TAG
-#define presFeatureTag LE_PRES_FEATURE_TAG
-#define blwsFeatureTag LE_BLWS_FEATURE_TAG
-#define abvsFeatureTag LE_ABVS_FEATURE_TAG
-#define pstsFeatureTag LE_PSTS_FEATURE_TAG
-#define halnFeatureTag LE_HALN_FEATURE_TAG
-
-#define blwmFeatureTag LE_BLWM_FEATURE_TAG
-#define abvmFeatureTag LE_ABVM_FEATURE_TAG
-#define distFeatureTag LE_DIST_FEATURE_TAG
-
-#define loclFeatureMask 0x80000000UL
-#define rphfFeatureMask 0x40000000UL
-#define blwfFeatureMask 0x20000000UL
-#define halfFeatureMask 0x10000000UL
-#define pstfFeatureMask 0x08000000UL
-#define nuktFeatureMask 0x04000000UL
-#define akhnFeatureMask 0x02000000UL
-#define vatuFeatureMask 0x01000000UL
-#define presFeatureMask 0x00800000UL
-#define blwsFeatureMask 0x00400000UL
-#define abvsFeatureMask 0x00200000UL
-#define pstsFeatureMask 0x00100000UL
-#define halnFeatureMask 0x00080000UL
-#define blwmFeatureMask 0x00040000UL
-#define abvmFeatureMask 0x00020000UL
-#define distFeatureMask 0x00010000UL
-#define initFeatureMask 0x00008000UL
-
-class IndicReorderingOutput : public UMemory {
-private:
- le_int32 fOutIndex;
- LEUnicode *fOutChars;
-
- LEGlyphStorage &fGlyphStorage;
-
- LEUnicode fMpre;
- le_int32 fMpreIndex;
-
- LEUnicode fMbelow;
- le_int32 fMbelowIndex;
-
- LEUnicode fMabove;
- le_int32 fMaboveIndex;
-
- LEUnicode fMpost;
- le_int32 fMpostIndex;
-
- LEUnicode fLengthMark;
- le_int32 fLengthMarkIndex;
-
- LEUnicode fVirama;
- le_int32 fViramaIndex;
-
- FeatureMask fMatraFeatures;
-
- le_int32 fMPreOutIndex;
- MPreFixups *fMPreFixups;
-
- LEUnicode fVMabove;
- LEUnicode fVMpost;
- le_int32 fVMIndex;
- FeatureMask fVMFeatures;
-
- LEUnicode fSMabove;
- LEUnicode fSMbelow;
- le_int32 fSMIndex;
- FeatureMask fSMFeatures;
-
- void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
- {
- // FIXME: check if already set, or if not a matra...
- if (IndicClassTable::isLengthMark(matraClass)) {
- fLengthMark = matra;
- fLengthMarkIndex = matraIndex;
- } else if (IndicClassTable::isVirama(matraClass)) {
- fVirama = matra;
- fViramaIndex = matraIndex;
- } else {
- switch (matraClass & CF_POS_MASK) {
- case CF_POS_BEFORE:
- fMpre = matra;
- fMpreIndex = matraIndex;
- break;
-
- case CF_POS_BELOW:
- fMbelow = matra;
- fMbelowIndex = matraIndex;
- break;
-
- case CF_POS_ABOVE:
- fMabove = matra;
- fMaboveIndex = matraIndex;
- break;
-
- case CF_POS_AFTER:
- fMpost = matra;
- fMpostIndex = matraIndex;
- break;
-
- default:
- // can't get here...
- break;
- }
- }
- }
-
-public:
- IndicReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage, MPreFixups *mpreFixups)
- : fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage),
- fMpre(0), fMpreIndex(0), fMbelow(0), fMbelowIndex(0), fMabove(0), fMaboveIndex(0),
- fMpost(0), fMpostIndex(0), fLengthMark(0), fLengthMarkIndex(0), fVirama(0), fViramaIndex(0),
- fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
- fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
- {
- // nothing else to do...
- }
-
- ~IndicReorderingOutput()
- {
- // nothing to do here...
- }
-
- void reset()
- {
- fMpre = fMbelow = fMabove = fMpost = fLengthMark = fVirama = 0;
- fMPreOutIndex = -1;
-
- fVMabove = fVMpost = 0;
- fSMabove = fSMbelow = 0;
- }
-
- void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures)
- {
- LEErrorCode success = LE_NO_ERROR;
-
- fOutChars[fOutIndex] = ch;
-
- fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
- fGlyphStorage.setAuxData(fOutIndex, charFeatures, NULL, success);
-
- fOutIndex += 1;
- }
-
- le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex, FeatureMask matraFeatures, le_bool wordStart)
- {
- IndicClassTable::CharClass matraClass = classTable->getCharClass(matra);
-
- fMatraFeatures = matraFeatures;
-
- if (wordStart) {
- fMatraFeatures |= initFeatureMask;
- }
-
- if (IndicClassTable::isMatra(matraClass)) {
- if (IndicClassTable::isSplitMatra(matraClass)) {
- const SplitMatra *splitMatra = classTable->getSplitMatra(matraClass);
- int i;
-
- for (i = 0; i < 3 && (*splitMatra)[i] != 0; i += 1) {
- LEUnicode piece = (*splitMatra)[i];
- IndicClassTable::CharClass pieceClass = classTable->getCharClass(piece);
-
- saveMatra(piece, matraIndex, pieceClass);
- }
- } else {
- saveMatra(matra, matraIndex, matraClass);
- }
-
- return TRUE;
- }
-
- return FALSE;
- }
-
- void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier, le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
- {
- IndicClassTable::CharClass vmClass = classTable->getCharClass(vowelModifier);
-
- fVMIndex = vowelModifierIndex;
- fVMFeatures = vowelModifierFeatures;
-
- if (IndicClassTable::isVowelModifier(vmClass)) {
- switch (vmClass & CF_POS_MASK) {
- case CF_POS_ABOVE:
- fVMabove = vowelModifier;
- break;
-
- case CF_POS_AFTER:
- fVMpost = vowelModifier;
- break;
-
- default:
- // FIXME: this is an error...
- break;
- }
- }
- }
-
- void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark, le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
- {
- IndicClassTable::CharClass smClass = classTable->getCharClass(stressMark);
-
- fSMIndex = stressMarkIndex;
- fSMFeatures = stressMarkFeatures;
-
- if (IndicClassTable::isStressMark(smClass)) {
- switch (smClass & CF_POS_MASK) {
- case CF_POS_ABOVE:
- fSMabove = stressMark;
- break;
-
- case CF_POS_BELOW:
- fSMbelow = stressMark;
- break;
-
- default:
- // FIXME: this is an error...
- break;
- }
- }
- }
-
- void noteBaseConsonant()
- {
- if (fMPreFixups != NULL && fMPreOutIndex >= 0) {
- fMPreFixups->add(fOutIndex, fMPreOutIndex);
- }
- }
-
- // Handles virama in Sinhala split vowels.
- void writeVirama()
- {
- if (fVirama != 0) {
- writeChar(fVirama, fViramaIndex, fMatraFeatures);
- }
- }
-
- void writeMpre()
- {
- if (fMpre != 0) {
- fMPreOutIndex = fOutIndex;
- writeChar(fMpre, fMpreIndex, fMatraFeatures);
- }
- }
-
- void writeMbelow()
- {
- if (fMbelow != 0) {
- writeChar(fMbelow, fMbelowIndex, fMatraFeatures);
- }
- }
-
- void writeMabove()
- {
- if (fMabove != 0) {
- writeChar(fMabove, fMaboveIndex, fMatraFeatures);
- }
- }
-
- void writeMpost()
- {
- if (fMpost != 0) {
- writeChar(fMpost, fMpostIndex, fMatraFeatures);
- }
- }
-
- void writeLengthMark()
- {
- if (fLengthMark != 0) {
- writeChar(fLengthMark, fLengthMarkIndex, fMatraFeatures);
- }
- }
-
- void writeVMabove()
- {
- if (fVMabove != 0) {
- writeChar(fVMabove, fVMIndex, fVMFeatures);
- }
- }
-
- void writeVMpost()
- {
- if (fVMpost != 0) {
- writeChar(fVMpost, fVMIndex, fVMFeatures);
- }
- }
-
- void writeSMabove()
- {
- if (fSMabove != 0) {
- writeChar(fSMabove, fSMIndex, fSMFeatures);
- }
- }
-
- void writeSMbelow()
- {
- if (fSMbelow != 0) {
- writeChar(fSMbelow, fSMIndex, fSMFeatures);
- }
- }
-
- le_int32 getOutputIndex()
- {
- return fOutIndex;
- }
-};
-
-enum
-{
- C_DOTTED_CIRCLE = 0x25CC
-};
-
-// TODO: Find better names for these!
-#define tagArray4 (loclFeatureMask | nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask)
-#define tagArray3 (pstfFeatureMask | tagArray4)
-#define tagArray2 (halfFeatureMask | tagArray3)
-#define tagArray1 (blwfFeatureMask | tagArray2)
-#define tagArray0 (rphfFeatureMask | tagArray1)
-
-static const FeatureMap featureMap[] =
-{
- {loclFeatureTag, loclFeatureMask},
- {initFeatureTag, initFeatureMask},
- {nuktFeatureTag, nuktFeatureMask},
- {akhnFeatureTag, akhnFeatureMask},
- {rphfFeatureTag, rphfFeatureMask},
- {blwfFeatureTag, blwfFeatureMask},
- {halfFeatureTag, halfFeatureMask},
- {pstfFeatureTag, pstfFeatureMask},
- {vatuFeatureTag, vatuFeatureMask},
- {presFeatureTag, presFeatureMask},
- {blwsFeatureTag, blwsFeatureMask},
- {abvsFeatureTag, abvsFeatureMask},
- {pstsFeatureTag, pstsFeatureMask},
- {halnFeatureTag, halnFeatureMask},
- {blwmFeatureTag, blwmFeatureMask},
- {abvmFeatureTag, abvmFeatureMask},
- {distFeatureTag, distFeatureMask}
-};
-
-static const le_int32 featureCount = LE_ARRAY_SIZE(featureMap);
-
-static const le_int8 stateTable[][CC_COUNT] =
-{
-// xx vm sm iv i2 i3 ct cn nu dv s1 s2 s3 vr zw
- { 1, 6, 1, 5, 8, 11, 3, 2, 1, 5, 9, 5, 5, 1, 1}, // 0 - ground state
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 1 - exit state
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, 12}, // 2 - consonant with nukta
- {-1, 6, 1, -1, -1, -1, -1, -1, 2, 5, 9, 5, 5, 4, 12}, // 3 - consonant
- {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, 7}, // 4 - consonant virama
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 5 - dependent vowels
- {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - vowel mark
- {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, -1}, // 7 - consonant virama ZWJ, consonant ZWJ virama
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1}, // 8 - independent vowels that can take a virama
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 5, -1, -1}, // 9 - first part of split vowel
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1}, // 10 - second part of split vowel
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, -1}, // 11 - independent vowels that can take an iv
- {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1} // 12 - consonant ZWJ (TODO: Take everything else that can be after a consonant?)
-};
-
-
-const FeatureMap *IndicReordering::getFeatureMap(le_int32 &count)
-{
- count = featureCount;
-
- return featureMap;
-}
-
-le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
-{
- le_int32 cursor = prev;
- le_int8 state = 0;
-
- while (cursor < charCount) {
- IndicClassTable::CharClass charClass = classTable->getCharClass(chars[cursor]);
-
- state = stateTable[state][charClass & CF_CLASS_MASK];
-
- if (state < 0) {
- break;
- }
-
- cursor += 1;
- }
-
- return cursor;
-}
-
-le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage,
- MPreFixups **outMPreFixups)
-{
- MPreFixups *mpreFixups = NULL;
- const IndicClassTable *classTable = IndicClassTable::getScriptClassTable(scriptCode);
-
- if (classTable->scriptFlags & SF_MPRE_FIXUP) {
- mpreFixups = new MPreFixups(charCount);
- }
-
- IndicReorderingOutput output(outChars, glyphStorage, mpreFixups);
- le_int32 i, prev = 0;
- le_bool lastInWord = FALSE;
-
- while (prev < charCount) {
- le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
- le_int32 matra, markStart = syllable;
-
- output.reset();
-
- if (classTable->isStressMark(chars[markStart - 1])) {
- markStart -= 1;
- output.noteStressMark(classTable, chars[markStart], markStart, tagArray1);
- }
-
- if (markStart != prev && classTable->isVowelModifier(chars[markStart - 1])) {
- markStart -= 1;
- output.noteVowelModifier(classTable, chars[markStart], markStart, tagArray1);
- }
-
- matra = markStart - 1;
-
- while (output.noteMatra(classTable, chars[matra], matra, tagArray1, !lastInWord) && matra != prev) {
- matra -= 1;
- }
-
- lastInWord = TRUE;
-
- switch (classTable->getCharClass(chars[prev]) & CF_CLASS_MASK) {
- case CC_RESERVED:
- lastInWord = FALSE;
- /* fall through */
-
- case CC_INDEPENDENT_VOWEL:
- case CC_ZERO_WIDTH_MARK:
- for (i = prev; i < syllable; i += 1) {
- output.writeChar(chars[i], i, tagArray1);
- }
-
- break;
-
- case CC_NUKTA:
- case CC_VIRAMA:
- output.writeChar(C_DOTTED_CIRCLE, prev, tagArray1);
- output.writeChar(chars[prev], prev, tagArray1);
- break;
-
- case CC_DEPENDENT_VOWEL:
- case CC_SPLIT_VOWEL_PIECE_1:
- case CC_SPLIT_VOWEL_PIECE_2:
- case CC_SPLIT_VOWEL_PIECE_3:
- case CC_VOWEL_MODIFIER:
- case CC_STRESS_MARK:
- output.writeMpre();
-
- output.writeChar(C_DOTTED_CIRCLE, prev, tagArray1);
-
- output.writeMbelow();
- output.writeSMbelow();
- output.writeMabove();
-
- if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) != 0) {
- output.writeMpost();
- }
-
- if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) != 0) {
- output.writeVMabove();
- output.writeSMabove(); // FIXME: there are no SM's in these scripts...
- }
-
- if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) == 0) {
- output.writeMpost();
- }
-
- output.writeLengthMark();
- output.writeVirama();
-
- if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) == 0) {
- output.writeVMabove();
- output.writeSMabove();
- }
-
- output.writeVMpost();
- break;
-
- case CC_INDEPENDENT_VOWEL_2:
- case CC_INDEPENDENT_VOWEL_3:
- case CC_CONSONANT:
- case CC_CONSONANT_WITH_NUKTA:
- {
- le_uint32 length = markStart - prev;
- le_int32 lastConsonant = markStart - 1;
- le_int32 baseLimit = prev;
-
- // Check for REPH at front of syllable
- if (length > 2 && classTable->isReph(chars[prev]) && classTable->isVirama(chars[prev + 1])) {
- baseLimit += 2;
-
- // Check for eyelash RA, if the script supports it
- if ((classTable->scriptFlags & SF_EYELASH_RA) != 0 &&
- chars[baseLimit] == C_SIGN_ZWJ) {
- if (length > 3) {
- baseLimit += 1;
- } else {
- baseLimit -= 2;
- }
- }
- }
-
- while (lastConsonant > baseLimit && !classTable->isConsonant(chars[lastConsonant])) {
- lastConsonant -= 1;
- }
-
- le_int32 baseConsonant = lastConsonant;
- le_int32 postBase = lastConsonant + 1;
- le_int32 postBaseLimit = classTable->scriptFlags & SF_POST_BASE_LIMIT_MASK;
- le_bool seenVattu = FALSE;
- le_bool seenBelowBaseForm = FALSE;
-
- if (postBase < markStart && classTable->isNukta(chars[postBase])) {
- postBase += 1;
- }
-
- while (baseConsonant > baseLimit) {
- IndicClassTable::CharClass charClass = classTable->getCharClass(chars[baseConsonant]);
-
- if (IndicClassTable::isConsonant(charClass)) {
- if (postBaseLimit == 0 || seenVattu ||
- (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
- !IndicClassTable::hasPostOrBelowBaseForm(charClass)) {
- break;
- }
-
- seenVattu = IndicClassTable::isVattu(charClass);
-
- if (IndicClassTable::hasPostBaseForm(charClass)) {
- if (seenBelowBaseForm) {
- break;
- }
-
- postBase = baseConsonant;
- } else if (IndicClassTable::hasBelowBaseForm(charClass)) {
- seenBelowBaseForm = TRUE;
- }
-
- postBaseLimit -= 1;
- }
-
- baseConsonant -= 1;
- }
-
- // Write Mpre
- output.writeMpre();
-
- // Write eyelash RA
- // NOTE: baseLimit == prev + 3 iff eyelash RA present...
- if (baseLimit == prev + 3) {
- output.writeChar(chars[prev], prev, tagArray2);
- output.writeChar(chars[prev + 1], prev + 1, tagArray2);
- output.writeChar(chars[prev + 2], prev + 2, tagArray2);
- }
-
- // write any pre-base consonants
- le_bool supressVattu = TRUE;
-
- for (i = baseLimit; i < baseConsonant; i += 1) {
- LEUnicode ch = chars[i];
- // Don't put 'blwf' on first consonant.
- FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
- IndicClassTable::CharClass charClass = classTable->getCharClass(ch);
-
- if (IndicClassTable::isConsonant(charClass)) {
- if (IndicClassTable::isVattu(charClass) && supressVattu) {
- features = tagArray4;
- }
-
- supressVattu = IndicClassTable::isVattu(charClass);
- } else if (IndicClassTable::isVirama(charClass) && chars[i + 1] == C_SIGN_ZWNJ)
- {
- features = tagArray4;
- }
-
- output.writeChar(ch, i, features);
- }
-
- le_int32 bcSpan = baseConsonant + 1;
-
- if (bcSpan < markStart && classTable->isNukta(chars[bcSpan])) {
- bcSpan += 1;
- }
-
- if (baseConsonant == lastConsonant && bcSpan < markStart && classTable->isVirama(chars[bcSpan])) {
- bcSpan += 1;
-
- if (bcSpan < markStart && chars[bcSpan] == C_SIGN_ZWNJ) {
- bcSpan += 1;
- }
- }
-
- // note the base consonant for post-GSUB fixups
- output.noteBaseConsonant();
-
- // write base consonant
- for (i = baseConsonant; i < bcSpan; i += 1) {
- output.writeChar(chars[i], i, tagArray4);
- }
-
- if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) != 0) {
- output.writeMbelow();
- output.writeSMbelow(); // FIXME: there are no SMs in these scripts...
- output.writeMabove();
- output.writeMpost();
- }
-
- // write below-base consonants
- if (baseConsonant != lastConsonant) {
- for (i = bcSpan + 1; i < postBase; i += 1) {
- output.writeChar(chars[i], i, tagArray1);
- }
-
- if (postBase > lastConsonant) {
- // write halant that was after base consonant
- output.writeChar(chars[bcSpan], bcSpan, tagArray1);
- }
- }
-
- // write Mbelow, SMbelow, Mabove
- if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) == 0) {
- output.writeMbelow();
- output.writeSMbelow();
- output.writeMabove();
- }
-
- if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) != 0) {
- if (baseLimit == prev + 2) {
- output.writeChar(chars[prev], prev, tagArray0);
- output.writeChar(chars[prev + 1], prev + 1, tagArray0);
- }
-
- output.writeVMabove();
- output.writeSMabove(); // FIXME: there are no SM's in these scripts...
- }
-
- // write post-base consonants
- // FIXME: does this put the right tags on post-base consonants?
- if (baseConsonant != lastConsonant) {
- if (postBase <= lastConsonant) {
- for (i = postBase; i <= lastConsonant; i += 1) {
- output.writeChar(chars[i], i, tagArray3);
- }
-
- // write halant that was after base consonant
- output.writeChar(chars[bcSpan], bcSpan, tagArray1);
- }
-
- // write the training halant, if there is one
- if (lastConsonant < matra && classTable->isVirama(chars[matra])) {
- output.writeChar(chars[matra], matra, tagArray4);
- }
- }
-
- // write Mpost
- if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) == 0) {
- output.writeMpost();
- }
-
- output.writeLengthMark();
- output.writeVirama();
-
- // write reph
- if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) == 0) {
- if (baseLimit == prev + 2) {
- output.writeChar(chars[prev], prev, tagArray0);
- output.writeChar(chars[prev + 1], prev + 1, tagArray0);
- }
-
- output.writeVMabove();
- output.writeSMabove();
- }
-
- output.writeVMpost();
-
- break;
- }
-
- default:
- break;
- }
-
- prev = syllable;
- }
-
- *outMPreFixups = mpreFixups;
-
- return output.getOutputIndex();
-}
-
-void IndicReordering::adjustMPres(MPreFixups *mpreFixups, LEGlyphStorage &glyphStorage)
-{
- if (mpreFixups != NULL) {
- mpreFixups->apply(glyphStorage);
-
- delete mpreFixups;
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/IndicReordering.h b/Build/source/libs/icu-xetex/layout/IndicReordering.h
deleted file mode 100644
index 5a1938e9158..00000000000
--- a/Build/source/libs/icu-xetex/layout/IndicReordering.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __INDICREORDERING_H
-#define __INDICREORDERING_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-// Characters that get refered to by name...
-#define C_SIGN_ZWNJ 0x200C
-#define C_SIGN_ZWJ 0x200D
-
-// Character class values
-#define CC_RESERVED 0U
-#define CC_VOWEL_MODIFIER 1U
-#define CC_STRESS_MARK 2U
-#define CC_INDEPENDENT_VOWEL 3U
-#define CC_INDEPENDENT_VOWEL_2 4U
-#define CC_INDEPENDENT_VOWEL_3 5U
-#define CC_CONSONANT 6U
-#define CC_CONSONANT_WITH_NUKTA 7U
-#define CC_NUKTA 8U
-#define CC_DEPENDENT_VOWEL 9U
-#define CC_SPLIT_VOWEL_PIECE_1 10U
-#define CC_SPLIT_VOWEL_PIECE_2 11U
-#define CC_SPLIT_VOWEL_PIECE_3 12U
-#define CC_VIRAMA 13U
-#define CC_ZERO_WIDTH_MARK 14U
-#define CC_COUNT 15U
-
-// Character class flags
-#define CF_CLASS_MASK 0x0000FFFFU
-
-#define CF_CONSONANT 0x80000000U
-
-#define CF_REPH 0x40000000U
-#define CF_VATTU 0x20000000U
-#define CF_BELOW_BASE 0x10000000U
-#define CF_POST_BASE 0x08000000U
-#define CF_LENGTH_MARK 0x04000000U
-
-#define CF_POS_BEFORE 0x00300000U
-#define CF_POS_BELOW 0x00200000U
-#define CF_POS_ABOVE 0x00100000U
-#define CF_POS_AFTER 0x00000000U
-#define CF_POS_MASK 0x00300000U
-
-#define CF_INDEX_MASK 0x000F0000U
-#define CF_INDEX_SHIFT 16
-
-// Script flag bits
-#define SF_MATRAS_AFTER_BASE 0x80000000U
-#define SF_REPH_AFTER_BELOW 0x40000000U
-#define SF_EYELASH_RA 0x20000000U
-#define SF_MPRE_FIXUP 0x10000000U
-#define SF_FILTER_ZERO_WIDTH 0x08000000U
-
-#define SF_POST_BASE_LIMIT_MASK 0x0000FFFFU
-#define SF_NO_POST_BASE_LIMIT 0x00007FFFU
-
-typedef LEUnicode SplitMatra[3];
-
-class MPreFixups;
-class LEGlyphStorage;
-
-struct IndicClassTable
-{
- typedef le_uint32 CharClass;
- typedef le_uint32 ScriptFlags;
-
- LEUnicode firstChar;
- LEUnicode lastChar;
- le_int32 worstCaseExpansion;
- ScriptFlags scriptFlags;
- const CharClass *classTable;
- const SplitMatra *splitMatraTable;
-
- inline le_int32 getWorstCaseExpansion() const;
- inline le_bool getFilterZeroWidth() const;
-
- CharClass getCharClass(LEUnicode ch) const;
-
- inline const SplitMatra *getSplitMatra(CharClass charClass) const;
-
- inline le_bool isVowelModifier(LEUnicode ch) const;
- inline le_bool isStressMark(LEUnicode ch) const;
- inline le_bool isConsonant(LEUnicode ch) const;
- inline le_bool isReph(LEUnicode ch) const;
- inline le_bool isVirama(LEUnicode ch) const;
- inline le_bool isNukta(LEUnicode ch) const;
- inline le_bool isVattu(LEUnicode ch) const;
- inline le_bool isMatra(LEUnicode ch) const;
- inline le_bool isSplitMatra(LEUnicode ch) const;
- inline le_bool isLengthMark(LEUnicode ch) const;
- inline le_bool hasPostOrBelowBaseForm(LEUnicode ch) const;
- inline le_bool hasPostBaseForm(LEUnicode ch) const;
- inline le_bool hasBelowBaseForm(LEUnicode ch) const;
-
- inline static le_bool isVowelModifier(CharClass charClass);
- inline static le_bool isStressMark(CharClass charClass);
- inline static le_bool isConsonant(CharClass charClass);
- inline static le_bool isReph(CharClass charClass);
- inline static le_bool isVirama(CharClass charClass);
- inline static le_bool isNukta(CharClass charClass);
- inline static le_bool isVattu(CharClass charClass);
- inline static le_bool isMatra(CharClass charClass);
- inline static le_bool isSplitMatra(CharClass charClass);
- inline static le_bool isLengthMark(CharClass charClass);
- inline static le_bool hasPostOrBelowBaseForm(CharClass charClass);
- inline static le_bool hasPostBaseForm(CharClass charClass);
- inline static le_bool hasBelowBaseForm(CharClass charClass);
-
- static const IndicClassTable *getScriptClassTable(le_int32 scriptCode);
-};
-
-class IndicReordering /* not : public UObject because all methods are static */ {
-public:
- static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
-
- static le_bool getFilterZeroWidth(le_int32 scriptCode);
-
- static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage,
- MPreFixups **outMPreFixups);
-
- static void adjustMPres(MPreFixups *mpreFixups, LEGlyphStorage &glyphStorage);
-
- static const FeatureMap *getFeatureMap(le_int32 &count);
-
-private:
- // do not instantiate
- IndicReordering();
-
- static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
-
-};
-
-inline le_int32 IndicClassTable::getWorstCaseExpansion() const
-{
- return worstCaseExpansion;
-}
-
-inline le_bool IndicClassTable::getFilterZeroWidth() const
-{
- return (scriptFlags & SF_FILTER_ZERO_WIDTH) != 0;
-}
-
-inline const SplitMatra *IndicClassTable::getSplitMatra(CharClass charClass) const
-{
- le_int32 index = (charClass & CF_INDEX_MASK) >> CF_INDEX_SHIFT;
-
- return &splitMatraTable[index - 1];
-}
-
-inline le_bool IndicClassTable::isVowelModifier(CharClass charClass)
-{
- return (charClass & CF_CLASS_MASK) == CC_VOWEL_MODIFIER;
-}
-
-inline le_bool IndicClassTable::isStressMark(CharClass charClass)
-{
- return (charClass & CF_CLASS_MASK) == CC_STRESS_MARK;
-}
-
-inline le_bool IndicClassTable::isConsonant(CharClass charClass)
-{
- return (charClass & CF_CONSONANT) != 0;
-}
-
-inline le_bool IndicClassTable::isReph(CharClass charClass)
-{
- return (charClass & CF_REPH) != 0;
-}
-
-inline le_bool IndicClassTable::isNukta(CharClass charClass)
-{
- return (charClass & CF_CLASS_MASK) == CC_NUKTA;
-}
-
-inline le_bool IndicClassTable::isVirama(CharClass charClass)
-{
- return (charClass & CF_CLASS_MASK) == CC_VIRAMA;
-}
-
-inline le_bool IndicClassTable::isVattu(CharClass charClass)
-{
- return (charClass & CF_VATTU) != 0;
-}
-
-inline le_bool IndicClassTable::isMatra(CharClass charClass)
-{
- charClass &= CF_CLASS_MASK;
-
- return charClass >= CC_DEPENDENT_VOWEL && charClass <= CC_SPLIT_VOWEL_PIECE_3;
-}
-
-inline le_bool IndicClassTable::isSplitMatra(CharClass charClass)
-{
- return (charClass & CF_INDEX_MASK) != 0;
-}
-
-inline le_bool IndicClassTable::isLengthMark(CharClass charClass)
-{
- return (charClass & CF_LENGTH_MARK) != 0;
-}
-
-inline le_bool IndicClassTable::hasPostOrBelowBaseForm(CharClass charClass)
-{
- return (charClass & (CF_POST_BASE | CF_BELOW_BASE)) != 0;
-}
-
-inline le_bool IndicClassTable::hasPostBaseForm(CharClass charClass)
-{
- return (charClass & CF_POST_BASE) != 0;
-}
-
-inline le_bool IndicClassTable::hasBelowBaseForm(CharClass charClass)
-{
- return (charClass & CF_BELOW_BASE) != 0;
-}
-
-inline le_bool IndicClassTable::isVowelModifier(LEUnicode ch) const
-{
- return isVowelModifier(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isStressMark(LEUnicode ch) const
-{
- return isStressMark(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isConsonant(LEUnicode ch) const
-{
- return isConsonant(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isReph(LEUnicode ch) const
-{
- return isReph(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isVirama(LEUnicode ch) const
-{
- return isVirama(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isNukta(LEUnicode ch) const
-{
- return isNukta(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isVattu(LEUnicode ch) const
-{
- return isVattu(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isMatra(LEUnicode ch) const
-{
- return isMatra(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isSplitMatra(LEUnicode ch) const
-{
- return isSplitMatra(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::isLengthMark(LEUnicode ch) const
-{
- return isLengthMark(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::hasPostOrBelowBaseForm(LEUnicode ch) const
-{
- return hasPostOrBelowBaseForm(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::hasPostBaseForm(LEUnicode ch) const
-{
- return hasPostBaseForm(getCharClass(ch));
-}
-
-inline le_bool IndicClassTable::hasBelowBaseForm(LEUnicode ch) const
-{
- return hasBelowBaseForm(getCharClass(ch));
-}
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/KernTable.cpp b/Build/source/libs/icu-xetex/layout/KernTable.cpp
deleted file mode 100644
index 7ba46ee9504..00000000000
--- a/Build/source/libs/icu-xetex/layout/KernTable.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * @(#)KernTable.cpp 1.1 04/10/13
- *
- * (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
- *
- */
-
-#include "KernTable.h"
-#include "LEFontInstance.h"
-#include "LEGlyphStorage.h"
-
-#include "LESwaps.h"
-
-#include <stdio.h>
-
-#define DEBUG 0
-
-U_NAMESPACE_BEGIN
-
-struct PairInfo {
- le_uint16 left;
- le_uint16 right;
- le_int16 value; // fword, kern value in funits
- le_uint32 key() const { return ((le_uint32)SWAPW(left) << 16) | SWAPW(right); }
-};
-#define KERN_PAIRINFO_SIZE 6
-
-struct Subtable_0 {
- le_uint16 nPairs;
- le_uint16 searchRange;
- le_uint16 entrySelector;
- le_uint16 rangeShift;
-};
-#define KERN_SUBTABLE_0_HEADER_SIZE 8
-
-// Kern table version 0 only
-struct SubtableHeader {
- le_uint16 version;
- le_uint16 length;
- le_uint16 coverage;
-};
-#define KERN_SUBTABLE_HEADER_SIZE 6
-
-// Version 0 only, version 1 has different layout
-struct KernTableHeader {
- le_uint16 version;
- le_uint16 nTables;
-};
-#define KERN_TABLE_HEADER_SIZE 4
-
-#define COVERAGE_HORIZONTAL 0x1
-#define COVERAGE_MINIMUM 0x2
-#define COVERAGE_CROSS 0x4
-#define COVERAGE_OVERRIDE 0x8
-
-/*
- * This implementation has support for only one subtable, so if the font has
- * multiple subtables, only the first will be used. If this turns out to
- * be a problem in practice we should add it.
- *
- * This also supports only version 0 of the kern table header, only
- * Apple supports the latter.
- *
- * This implementation isn't careful about the kern table flags, and
- * might invoke kerning when it is not supposed to. That too I'm
- * leaving for a bug fix.
- *
- * TODO: support multiple subtables
- * TODO: respect header flags
- */
-KernTable::KernTable(const LEFontInstance* font, const void* tableData)
- : pairs(0), font(font)
-{
- const KernTableHeader* header = (const KernTableHeader*)tableData;
- if (header == 0) {
-#if DEBUG
- fprintf(stderr, "no kern data\n");
-#endif
- return;
- }
-
-#if DEBUG
- // dump first 32 bytes of header
- for (int i = 0; i < 64; ++i) {
- fprintf(stderr, "%0.2x ", ((const char*)tableData)[i]&0xff);
- if (((i+1)&0xf) == 0) {
- fprintf(stderr, "\n");
- } else if (((i+1)&0x7) == 0) {
- fprintf(stderr, " ");
- }
- }
-#endif
-
- if (header->version == 0 && SWAPW(header->nTables) > 0) {
- const SubtableHeader* subhead = (const SubtableHeader*)((char*)tableData + KERN_TABLE_HEADER_SIZE);
- if (subhead->version == 0) {
- coverage = SWAPW(subhead->coverage);
- if (coverage & COVERAGE_HORIZONTAL) { // only handle horizontal kerning
- const Subtable_0* table = (const Subtable_0*)((char*)subhead + KERN_SUBTABLE_HEADER_SIZE);
- nPairs = SWAPW(table->nPairs);
-#if 0 // don't trust these fields as some old TTF fonts have bad data here
- searchRange = SWAPW(table->searchRange);
- entrySelector = SWAPW(table->entrySelector);
- rangeShift = SWAPW(table->rangeShift);
-#else // recompute the binary search header fields
- if (nPairs == 0) { // this probably shouldn't happen
- searchRange = entrySelector = 0;
- } else {
- searchRange = 1;
- entrySelector = 0;
- while (searchRange * 2 <= nPairs) {
- searchRange *= 2;
- entrySelector += 1;
- }
- }
- rangeShift = (nPairs - searchRange) * KERN_PAIRINFO_SIZE;
- searchRange *= KERN_PAIRINFO_SIZE;
-#endif
- pairs = (const PairInfo*)((char*)table + KERN_SUBTABLE_0_HEADER_SIZE);
-
-#if DEBUG
- fprintf(stderr, "coverage: %0.4x nPairs: %d pairs 0x%x\n", coverage, nPairs, pairs);
- fprintf(stderr, " searchRange: %d entrySelector: %d rangeShift: %d\n", searchRange, entrySelector, rangeShift);
-
- {
- // dump part of the pair list
- char ids[256];
- for (int i = 256; --i >= 0;) {
- LEGlyphID id = font->mapCharToGlyph(i);
- if (id < 256) {
- ids[id] = (char)i;
- }
- }
-
- const PairInfo* p = pairs;
- for (i = 0; i < nPairs; ++i, p = (const PairInfo*)((char*)p+KERN_PAIRINFO_SIZE)) {
- le_uint16 left = SWAPW(p->left);
- le_uint16 right = SWAPW(p->right);
- if (left < 256 && right < 256) {
- char c = ids[left];
- if (c > 0x20 && c < 0x7f) {
- fprintf(stderr, "%c/", c & 0xff);
- } else {
- fprintf(stderr, "%0.2x/", c & 0xff);
- }
- c = ids[right];
- if (c > 0x20 && c < 0x7f) {
- fprintf(stderr, "%c ", c & 0xff);
- } else {
- fprintf(stderr, "%0.2x ", c & 0xff);
- }
- }
- }
- }
-#endif
- }
- }
- }
-}
-
-
-/*
- * Process the glyph positions. The positions array has two floats for each
- * glyph, plus a trailing pair to mark the end of the last glyph.
- */
-void KernTable::process(LEGlyphStorage& storage)
-{
- if (pairs) {
- LEErrorCode success = LE_NO_ERROR;
-
- le_uint32 key = storage[0]; // no need to mask off high bits
- float adjust = 0;
- for (int i = 1, e = storage.getGlyphCount(); i < e; ++i) {
- key = key << 16 | (storage[i] & 0xffff);
-
- // argh, to do a binary search, we need to have the pair list in sorted order
- // but it is not in sorted order on win32 platforms because of the endianness difference
- // so either I have to swap the element each time I examine it, or I have to swap
- // all the elements ahead of time and store them in the font
- // The key() accessor on PairInfo handles the swapping if needed
-
- const PairInfo* p = pairs;
- const PairInfo* tp = (const PairInfo*)((char*)p + rangeShift);
- if (key > tp->key()) {
- p = tp;
- }
-
-#if DEBUG
- fprintf(stderr, "binary search for %0.8x\n", key);
-#endif
-
- le_uint32 probe = searchRange;
- while (probe > KERN_PAIRINFO_SIZE) {
- probe >>= 1;
- tp = (const PairInfo*)((char*)p + probe);
- le_uint32 tkey = tp->key();
-#if DEBUG
- fprintf(stdout, " %.3d (%0.8x)\n", ((char*)tp - (char*)pairs)/KERN_PAIRINFO_SIZE, tkey);
-#endif
- if (tkey <= key) {
- if (tkey == key) {
- le_int16 value = SWAPW(tp->value);
-#if DEBUG
- fprintf(stdout, "binary found kerning pair %x:%x at %d, value: 0x%x (%g)\n",
- storage[i-1], storage[i], i, value & 0xffff, font->xUnitsToPoints(value));
- fflush(stdout);
-#endif
- adjust += font->xUnitsToPoints(value);
- break;
- }
- p = tp;
- }
- }
-
- storage.adjustPosition(i, adjust, 0, success);
- }
- storage.adjustPosition(storage.getGlyphCount(), adjust, 0, success);
- }
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu-xetex/layout/KernTable.h b/Build/source/libs/icu-xetex/layout/KernTable.h
deleted file mode 100644
index b8322cf1fe6..00000000000
--- a/Build/source/libs/icu-xetex/layout/KernTable.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * @(#)KernTable.h 1.1 04/10/13
- *
- * (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
- *
- */
-
-#ifndef __KERNTABLE_H
-#define __KERNTABLE_H
-
-#ifndef __LETYPES_H
-#include "LETypes.h"
-#endif
-
-#include "LETypes.h"
-//#include "LEFontInstance.h"
-//#include "LEGlyphStorage.h"
-
-#include <stdio.h>
-
-U_NAMESPACE_BEGIN
-struct PairInfo;
-class LEFontInstance;
-class LEGlyphStorage;
-
-/**
- * Windows type 0 kerning table support only for now.
- */
-class U_LAYOUT_API KernTable
-{
- private:
- le_uint16 coverage;
- le_uint16 nPairs;
- const PairInfo* pairs;
- const LEFontInstance* font;
- le_uint16 searchRange;
- le_uint16 entrySelector;
- le_uint16 rangeShift;
-
- public:
- KernTable(const LEFontInstance* font, const void* tableData);
-
- /*
- * Process the glyph positions.
- */
- void process(LEGlyphStorage& storage);
-};
-
-U_NAMESPACE_END
-
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp
deleted file mode 100644
index 7538eac5568..00000000000
--- a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * This file is a modification of the ICU file IndicLayoutEngine.cpp
- * by Jens Herden and Javier Sola for Khmer language
- *
- */
-
-
-#include "OpenTypeLayoutEngine.h"
-#include "KhmerLayoutEngine.h"
-#include "LEGlyphStorage.h"
-#include "KhmerReordering.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(KhmerOpenTypeLayoutEngine)
-
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
-{
- fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
-{
- fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-KhmerOpenTypeLayoutEngine::~KhmerOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-// Input: characters
-// Output: characters, char indices, tags
-// Returns: output character count
-le_int32 KhmerOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 worstCase = count * 3; // worst case is 3 for Khmer TODO check if 2 is enough
-
- outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- return 0;
- }
-
- // NOTE: assumes this allocates featureTags...
- // (probably better than doing the worst case stuff here...)
- le_int32 outCharCount = KhmerReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage);
-
- glyphStorage.adoptGlyphCount(outCharCount);
- return outCharCount;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.h b/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.h
deleted file mode 100644
index 56b79e975ed..00000000000
--- a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.h
+++ /dev/null
@@ -1,129 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * This file is a modification of the ICU file IndicLayoutEngine.h
- * by Jens Herden and Javier Sola for Khmer language
- *
- */
-
-#ifndef __KHMERLAYOUTENGINE_H
-#define __KHMERLAYOUTENGINE_H
-
-// #include "LETypes.h"
-// #include "LEFontInstance.h"
-// #include "LEGlyphFilter.h"
-// #include "LayoutEngine.h"
-// #include "OpenTypeLayoutEngine.h"
-
-// #include "GlyphSubstitutionTables.h"
-// #include "GlyphDefinitionTables.h"
-// #include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-// class MPreFixups;
-// class LEGlyphStorage;
-
-/**
- * This class implements OpenType layout for Khmer OpenType fonts, as
- * specified by Microsoft in "Creating and Supporting OpenType Fonts for
- * Khmer Scripts" (http://www.microsoft.com/typography/otspec/indicot/default.htm) TODO: change url
- *
- * This class overrides the characterProcessing method to do Khmer character processing
- * and reordering (See the MS spec. for more details)
- *
- * @internal
- */
-class KhmerOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of KhmerOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * Khmer OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~KhmerOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Khmer OpenType character processing. It assigns the OpenType feature
- * tags to the characters, and may generate output characters which have been reordered.
- * It may also split some vowels, resulting in more output characters than input characters.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
- * the auxillary data array will be set to the feature tags.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp b/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp
deleted file mode 100644
index 4f1c442a825..00000000000
--- a/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- * This file is a modification of the ICU file IndicReordering.cpp
- * by Jens Herden and Javier Sola for Khmer language
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "KhmerReordering.h"
-#include "LEGlyphStorage.h"
-
-
-U_NAMESPACE_BEGIN
-
-// Characters that get refered to by name...
-enum
-{
- C_SIGN_ZWNJ = 0x200C,
- C_SIGN_ZWJ = 0x200D,
- C_DOTTED_CIRCLE = 0x25CC,
- C_RO = 0x179A,
- C_VOWEL_AA = 0x17B6,
- C_SIGN_NIKAHIT = 0x17C6,
- C_VOWEL_E = 0x17C1,
- C_COENG = 0x17D2
-};
-
-
-enum
-{
- // simple classes, they are used in the statetable (in this file) to control the length of a syllable
- // they are also used to know where a character should be placed (location in reference to the base character)
- // and also to know if a character, when independtly displayed, should be displayed with a dotted-circle to
- // indicate error in syllable construction
- _xx = KhmerClassTable::CC_RESERVED,
- _sa = KhmerClassTable::CC_SIGN_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_POS_ABOVE,
- _sp = KhmerClassTable::CC_SIGN_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE| KhmerClassTable::CF_POS_AFTER,
- _c1 = KhmerClassTable::CC_CONSONANT | KhmerClassTable::CF_CONSONANT,
- _c2 = KhmerClassTable::CC_CONSONANT2 | KhmerClassTable::CF_CONSONANT,
- _c3 = KhmerClassTable::CC_CONSONANT3 | KhmerClassTable::CF_CONSONANT,
- _rb = KhmerClassTable::CC_ROBAT | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE,
- _cs = KhmerClassTable::CC_CONSONANT_SHIFTER | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_SHIFTER,
- _dl = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BEFORE | KhmerClassTable::CF_DOTTED_CIRCLE,
- _db = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BELOW | KhmerClassTable::CF_DOTTED_CIRCLE,
- _da = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_ABOVE_VOWEL,
- _dr = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE,
- _co = KhmerClassTable::CC_COENG | KhmerClassTable::CF_COENG | KhmerClassTable::CF_DOTTED_CIRCLE,
-
- // split vowel
- _va = _da | KhmerClassTable::CF_SPLIT_VOWEL,
- _vr = _dr | KhmerClassTable::CF_SPLIT_VOWEL
-};
-
-
-// Character class tables
-// _xx character does not combine into syllable, such as numbers, puntuation marks, non-Khmer signs...
-// _sa Sign placed above the base
-// _sp Sign placed after the base
-// _c1 Consonant of type 1 or independent vowel (independent vowels behave as type 1 consonants)
-// _c2 Consonant of type 2 (only RO)
-// _c3 Consonant of type 3
-// _rb Khmer sign robat u17CC. combining mark for subscript consonants
-// _cd Consonant-shifter
-// _dl Dependent vowel placed before the base (left of the base)
-// _db Dependent vowel placed below the base
-// _da Dependent vowel placed above the base
-// _dr Dependent vowel placed behind the base (right of the base)
-// _co Khmer combining mark COENG u17D2, combines with the consonant or independent vowel following
-// it to create a subscript consonant or independent vowel
-// _va Khmer split vowel in wich the first part is before the base and the second one above the base
-// _vr Khmer split vowel in wich the first part is before the base and the second one behind (right of) the base
-
-static const KhmerClassTable::CharClass khmerCharClasses[] =
-{
- _c1, _c1, _c1, _c3, _c1, _c1, _c1, _c1, _c3, _c1, _c1, _c1, _c1, _c3, _c1, _c1, // 1780 - 178F
- _c1, _c1, _c1, _c1, _c3, _c1, _c1, _c1, _c1, _c3, _c2, _c1, _c1, _c1, _c3, _c3, // 1790 - 179F
- _c1, _c3, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, _c1, // 17A0 - 17AF
- _c1, _c1, _c1, _c1, _dr, _dr, _dr, _da, _da, _da, _da, _db, _db, _db, _va, _vr, // 17B0 - 17BF
- _vr, _dl, _dl, _dl, _vr, _vr, _sa, _sp, _sp, _cs, _cs, _sa, _rb, _sa, _sa, _sa, // 17C0 - 17CF
- _sa, _sa, _co, _sa, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _sa, _xx, _xx, // 17D0 - 17DF
-};
-
-
-//
-// Khmer Class Tables
-//
-
-//
-// The range of characters defined in the above table is defined here. FOr Khmer 1780 to 17DF
-// Even if the Khmer range is bigger, all other characters are not combinable, and therefore treated
-// as _xx
-static const KhmerClassTable khmerClassTable = {0x1780, 0x17df, khmerCharClasses};
-
-
-// Below we define how a character in the input string is either in the khmerCharClasses table
-// (in which case we get its type back), a ZWJ or ZWNJ (two characters that may appear
-// within the syllable, but are not in the table) we also get their type back, or an unknown object
-// in which case we get _xx (CC_RESERVED) back
-KhmerClassTable::CharClass KhmerClassTable::getCharClass(LEUnicode ch) const
-{
-
- if (ch == C_SIGN_ZWJ) {
- return CC_ZERO_WIDTH_J_MARK;
- }
-
- if (ch == C_SIGN_ZWNJ) {
- return CC_ZERO_WIDTH_NJ_MARK;
- }
-
- if (ch < firstChar || ch > lastChar) {
- return CC_RESERVED;
- }
-
- return classTable[ch - firstChar];
-}
-
-const KhmerClassTable *KhmerClassTable::getKhmerClassTable()
-{
- return &khmerClassTable;
-}
-
-
-
-class KhmerReorderingOutput : public UMemory {
-private:
- le_int32 fOutIndex;
- LEUnicode *fOutChars;
-
- LEGlyphStorage &fGlyphStorage;
-
-
-public:
- KhmerReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
- : fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
- {
- // nothing else to do...
- }
-
- ~KhmerReorderingOutput()
- {
- // nothing to do here...
- }
-
- void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures)
- {
- LEErrorCode success = LE_NO_ERROR;
-
- fOutChars[fOutIndex] = ch;
-
- fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
- fGlyphStorage.setAuxData(fOutIndex, charFeatures, NULL, success);
-
- fOutIndex += 1;
- }
-
- le_int32 getOutputIndex()
- {
- return fOutIndex;
- }
-};
-
-
-#define blwfFeatureTag LE_BLWF_FEATURE_TAG
-#define pstfFeatureTag LE_PSTF_FEATURE_TAG
-#define presFeatureTag LE_PRES_FEATURE_TAG
-#define blwsFeatureTag LE_BLWS_FEATURE_TAG
-#define abvsFeatureTag LE_ABVS_FEATURE_TAG
-#define pstsFeatureTag LE_PSTS_FEATURE_TAG
-
-#define blwmFeatureTag LE_BLWM_FEATURE_TAG
-#define abvmFeatureTag LE_ABVM_FEATURE_TAG
-#define distFeatureTag LE_DIST_FEATURE_TAG
-
-#define prefFeatureTag LE_PREF_FEATURE_TAG
-#define abvfFeatureTag LE_ABVF_FEATURE_TAG
-#define cligFeatureTag LE_CLIG_FEATURE_TAG
-#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
-
-#define prefFeatureMask 0x80000000UL
-#define blwfFeatureMask 0x40000000UL
-#define abvfFeatureMask 0x20000000UL
-#define pstfFeatureMask 0x10000000UL
-#define presFeatureMask 0x08000000UL
-#define blwsFeatureMask 0x04000000UL
-#define abvsFeatureMask 0x02000000UL
-#define pstsFeatureMask 0x01000000UL
-#define cligFeatureMask 0x00800000UL
-#define distFeatureMask 0x00400000UL
-#define blwmFeatureMask 0x00200000UL
-#define abvmFeatureMask 0x00100000UL
-#define mkmkFeatureMask 0x00080000UL
-
-#define tagPref (prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
-#define tagAbvf (abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
-#define tagPstf (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
-#define tagBlwf (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-
-
-
-// These are in the order in which the features need to be applied
-// for correct processing
-static const FeatureMap featureMap[] =
-{
- // Shaping features
- {prefFeatureTag, prefFeatureMask},
- {blwfFeatureTag, blwfFeatureMask},
- {abvfFeatureTag, abvfFeatureMask},
- {pstfFeatureTag, pstfFeatureMask},
- {presFeatureTag, presFeatureMask},
- {blwsFeatureTag, blwsFeatureMask},
- {abvsFeatureTag, abvsFeatureMask},
- {pstsFeatureTag, pstsFeatureMask},
- {cligFeatureTag, cligFeatureMask},
-
- // Positioning features
- {distFeatureTag, distFeatureMask},
- {blwmFeatureTag, blwmFeatureMask},
- {abvmFeatureTag, abvmFeatureMask},
- {mkmkFeatureTag, mkmkFeatureMask},
-};
-
-static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-
-// The stateTable is used to calculate the end (the length) of a well
-// formed Khmer Syllable.
-//
-// Each horizontal line is ordered exactly the same way as the values in KhmerClassTable
-// CharClassValues in KhmerReordering.h This coincidence of values allows the
-// follow up of the table.
-//
-// Each line corresponds to a state, which does not necessarily need to be a type
-// of component... for example, state 2 is a base, with is always a first character
-// in the syllable, but the state could be produced a consonant of any type when
-// it is the first character that is analysed (in ground state).
-//
-// Differentiating 3 types of consonants is necessary in order to
-// forbid the use of certain combinations, such as having a second
-// coeng after a coeng RO,
-// The inexistent possibility of having a type 3 after another type 3 is permitted,
-// eliminating it would very much complicate the table, and it does not create typing
-// problems, as the case above.
-//
-// The table is quite complex, in order to limit the number of coeng consonants
-// to 2 (by means of the table).
-//
-// There a peculiarity, as far as Unicode is concerned:
-// - The consonant-shifter is considered in two possible different
-// locations, the one considered in Unicode 3.0 and the one considered in
-// Unicode 4.0. (there is a backwards compatibility problem in this standard).
-
-
-// xx independent character, such as a number, punctuation sign or non-khmer char
-//
-// c1 Khmer consonant of type 1 or an independent vowel
-// that is, a letter in which the subscript for is only under the
-// base, not taking any space to the right or to the left
-//
-// c2 Khmer consonant of type 2, the coeng form takes space under
-// and to the left of the base (only RO is of this type)
-//
-// c3 Khmer consonant of type 3. Its subscript form takes space under
-// and to the right of the base.
-//
-// cs Khmer consonant shifter
-//
-// rb Khmer robat
-//
-// co coeng character (u17D2)
-//
-// dv dependent vowel (including split vowels, they are treated in the same way).
-// even if dv is not defined above, the component that is really tested for is
-// KhmerClassTable::CC_DEPENDENT_VOWEL, which is common to all dependent vowels
-//
-// zwj Zero Width joiner
-//
-// zwnj Zero width non joiner
-//
-// sa above sign
-//
-// sp post sign
-//
-// there are lines with equal content but for an easier understanding
-// (and maybe change in the future) we did not join them
-//
-static const le_int8 khmerStateTable[][KhmerClassTable::CC_COUNT] =
-{
-
-// xx c1 c2 c3 zwnj cs rb co dv sa sp zwj
- { 1, 2, 2, 2, 1, 1, 1, 6, 1, 1, 1, 2}, // 0 - ground state
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 1 - exit state (or sign to the right of the syllable)
- {-1, -1, -1, -1, 3, 4, 5, 6, 16, 17, 1, -1}, // 2 - Base consonant
- {-1, -1, -1, -1, -1, 4, -1, -1, 16, -1, -1, -1}, // 3 - First ZWNJ before a register shifter
- // It can only be followed by a shifter or a vowel
- {-1, -1, -1, -1, 15, -1, -1, 6, 16, 17, 1, 14}, // 4 - First register shifter
- {-1, -1, -1, -1, -1, -1, -1, -1, 20, -1, 1, -1}, // 5 - Robat
- {-1, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - First Coeng
- {-1, -1, -1, -1, 12, 13, -1, 10, 16, 17, 1, 14}, // 7 - First consonant of type 1 after coeng
- {-1, -1, -1, -1, 12, 13, -1, -1, 16, 17, 1, 14}, // 8 - First consonant of type 2 after coeng
- {-1, -1, -1, -1, 12, 13, -1, 10, 16, 17, 1, 14}, // 9 - First consonant or type 3 after ceong
- {-1, 11, 11, 11, -1, -1, -1, -1, -1, -1, -1, -1}, // 10 - Second Coeng (no register shifter before)
- {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 11 - Second coeng consonant (or ind. vowel) no register shifter before
- {-1, -1, -1, -1, -1, 13, -1, -1, 16, -1, -1, -1}, // 12 - Second ZWNJ before a register shifter
- {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 13 - Second register shifter
- {-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 14 - ZWJ before vowel
- {-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 15 - ZWNJ before vowel
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 1, 18}, // 16 - dependent vowel
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 18}, // 17 - sign above
- {-1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1}, // 18 - ZWJ after vowel
- {-1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1}, // 19 - Third coeng
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1}, // 20 - dependent vowel after a Robat
-
-};
-
-
-const FeatureMap *KhmerReordering::getFeatureMap(le_int32 &count)
-{
- count = featureMapCount;
-
- return featureMap;
-}
-
-
-// Given an input string of characters and a location in which to start looking
-// calculate, using the state table, which one is the last character of the syllable
-// that starts in the starting position.
-le_int32 KhmerReordering::findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
-{
- le_int32 cursor = prev;
- le_int8 state = 0;
-
- while (cursor < charCount) {
- KhmerClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor]) & KhmerClassTable::CF_CLASS_MASK);
-
- state = khmerStateTable[state][charClass];
-
- if (state < 0) {
- break;
- }
-
- cursor += 1;
- }
-
- return cursor;
-}
-
-
-// This is the real reordering function as applied to the Khmer language
-
-le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32 /*scriptCode*/,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage)
-{
- const KhmerClassTable *classTable = KhmerClassTable::getKhmerClassTable();
-
- KhmerReorderingOutput output(outChars, glyphStorage);
- KhmerClassTable::CharClass charClass;
- le_int32 i, prev = 0, coengRo;
-
-
- // This loop only exits when we reach the end of a run, which may contain
- // several syllables.
- while (prev < charCount) {
- le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
-
- // write a pre vowel or the pre part of a split vowel first
- // and look out for coeng + ro. RO is the only vowel of type 2, and
- // therefore the only one that requires saving space before the base.
- coengRo = -1; // There is no Coeng Ro, if found this value will change
- for (i = prev; i < syllable; i += 1) {
- charClass = classTable->getCharClass(chars[i]);
-
- // if a split vowel, write the pre part. In Khmer the pre part
- // is the same for all split vowels, same glyph as pre vowel C_VOWEL_E
- if (charClass & KhmerClassTable::CF_SPLIT_VOWEL) {
- output.writeChar(C_VOWEL_E, i, tagPref);
- break; // there can be only one vowel
- }
-
- // if a vowel with pos before write it out
- if (charClass & KhmerClassTable::CF_POS_BEFORE) {
- output.writeChar(chars[i], i, tagPref);
- break; // there can be only one vowel
- }
-
- // look for coeng + ro and remember position
- // works because coeng + ro is always in front of a vowel (if there is a vowel)
- // and because CC_CONSONANT2 is enough to identify it, as it is the only consonant
- // with this flag
- if ( (charClass & KhmerClassTable::CF_COENG) && (i + 1 < syllable) &&
- ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == KhmerClassTable::CC_CONSONANT2) )
- {
- coengRo = i;
- }
- }
-
- // write coeng + ro if found
- if (coengRo > -1) {
- output.writeChar(C_COENG, coengRo, tagPref);
- output.writeChar(C_RO, coengRo + 1, tagPref);
- }
-
- // shall we add a dotted circle?
- // If in the position in which the base should be (first char in the string) there is
- // a character that has the Dotted circle flag (a character that cannot be a base)
- // then write a dotted circle
- if (classTable->getCharClass(chars[prev]) & KhmerClassTable::CF_DOTTED_CIRCLE) {
- output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
- }
-
- // copy what is left to the output, skipping before vowels and coeng Ro if they are present
- for (i = prev; i < syllable; i += 1) {
- charClass = classTable->getCharClass(chars[i]);
-
- // skip a before vowel, it was already processed
- if (charClass & KhmerClassTable::CF_POS_BEFORE) {
- continue;
- }
-
- // skip coeng + ro, it was already processed
- if (i == coengRo) {
- i += 1;
- continue;
- }
-
- switch (charClass & KhmerClassTable::CF_POS_MASK) {
- case KhmerClassTable::CF_POS_ABOVE :
- output.writeChar(chars[i], i, tagAbvf);
- break;
-
- case KhmerClassTable::CF_POS_AFTER :
- output.writeChar(chars[i], i, tagPstf);
- break;
-
- case KhmerClassTable::CF_POS_BELOW :
- output.writeChar(chars[i], i, tagBlwf);
- break;
-
- default:
- // assign the correct flags to a coeng consonant
- // Consonants of type 3 are taged as Post forms and those type 1 as below forms
- if ( (charClass & KhmerClassTable::CF_COENG) && i + 1 < syllable ) {
- if ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK)
- == KhmerClassTable::CC_CONSONANT3) {
- output.writeChar(chars[i], i, tagPstf);
- i += 1;
- output.writeChar(chars[i], i, tagPstf);
- }
- else {
- output.writeChar(chars[i], i, tagBlwf);
- i += 1;
- output.writeChar(chars[i], i, tagBlwf);
- }
- break;
- }
- // if a shifter is followed by an above vowel change the shifter to below form,
- // an above vowel can have two possible positions i + 1 or i + 3
- // (position i+1 corresponds to unicode 3, position i+3 to Unicode 4)
- // and there is an extra rule for C_VOWEL_AA + C_SIGN_NIKAHIT also for two
- // different positions, right after the shifter or after a vowel (Unicode 4)
- if ( (charClass & KhmerClassTable::CF_SHIFTER) && (i + 1 < syllable) ) {
- if ((classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_ABOVE_VOWEL)
- || (i + 2 < syllable
- && ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
- && ( (classTable->getCharClass(chars[i + 2]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT))
- || (i + 3 < syllable && (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_ABOVE_VOWEL))
- || (i + 4 < syllable
- && ( (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
- && ( (classTable->getCharClass(chars[i + 4]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) ) )
- {
- output.writeChar(chars[i], i, tagBlwf);
- break;
- }
-
- }
- // default - any other characters
- output.writeChar(chars[i], i, tagDefault);
- break;
- } // switch
- } // for
-
- prev = syllable; // move the pointer to the start of next syllable
- }
-
- return output.getOutputIndex();
-}
-
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/KhmerReordering.h b/Build/source/libs/icu-xetex/layout/KhmerReordering.h
deleted file mode 100644
index eecd12dff63..00000000000
--- a/Build/source/libs/icu-xetex/layout/KhmerReordering.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * This file is a modification of the ICU file IndicReordering.h
- * by Jens Herden and Javier Sola for Khmer language
- *
- */
-
-#ifndef __KHMERREORDERING_H
-#define __KHMERREORDERING_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-// Vocabulary
-// Base -> A consonant or an independent vowel in its full (not subscript) form. It is the
-// center of the syllable, it can be souranded by coeng (subscript) consonants, vowels,
-// split vowels, signs... but there is only one base in a syllable, it has to be coded as
-// the first character of the syllable.
-// split vowel --> vowel that has two parts placed separately (e.g. Before and after the consonant).
-// Khmer language has five of them. Khmer split vowels either have one part before the
-// base and one after the base or they have a part before the base and a part above the base.
-// The first part of all Khmer split vowels is the same character, identical to
-// the glyph of Khmer dependent vowel SRA EI
-// coeng --> modifier used in Khmer to construct coeng (subscript) consonants
-// Differently than indian languages, the coeng modifies the consonant that follows it,
-// not the one preceding it Each consonant has two forms, the base form and the subscript form
-// the base form is the normal one (using the consonants code-point), the subscript form is
-// displayed when the combination coeng + consonant is encountered.
-// Consonant of type 1 -> A consonant which has subscript for that only occupies space under a base consonant
-// Consonant of type 2.-> Its subscript form occupies space under and before the base (only one, RO)
-// Consonant of Type 3 -> Its subscript form occupies space under and after the base (KHO, CHHO, THHO, BA, YO, SA)
-// Consonant shifter -> Khmer has to series of consonants. The same dependent vowel has different sounds
-// if it is attached to a consonant of the first series or a consonant of the second series
-// Most consonants have an equivalent in the other series, but some of theme exist only in
-// one series (for example SA). If we want to use the consonant SA with a vowel sound that
-// can only be done with a vowel sound that corresponds to a vowel accompanying a consonant
-// of the other series, then we need to use a consonant shifter: TRIISAP or MUSIKATOAN
-// x17C9 y x17CA. TRIISAP changes a first series consonant to second series sound and
-// MUSIKATOAN a second series consonant to have a first series vowel sound.
-// Consonant shifter are both normally supercript marks, but, when they are followed by a
-// superscript, they change shape and take the form of subscript dependent vowel SRA U.
-// If they are in the same syllable as a coeng consonant, Unicode 3.0 says that they
-// should be typed before the coeng. Unicode 4.0 breaks the standard and says that it should
-// be placed after the coeng consonant.
-// Dependent vowel -> In khmer dependent vowels can be placed above, below, before or after the base
-// Each vowel has its own position. Only one vowel per syllable is allowed.
-// Signs -> Khmer has above signs and post signs. Only one above sign and/or one post sign are
-// Allowed in a syllable.
-//
-//
-
-struct KhmerClassTable // This list must include all types of components that can be used inside a syllable
-{
- enum CharClassValues // order is important here! This order must be the same that is found in each horizontal
- // line in the statetable for Khmer (file KhmerReordering.cpp).
- {
- CC_RESERVED = 0,
- CC_CONSONANT = 1, // consonant of type 1 or independent vowel
- CC_CONSONANT2 = 2, // Consonant of type 2
- CC_CONSONANT3 = 3, // Consonant of type 3
- CC_ZERO_WIDTH_NJ_MARK = 4, // Zero Width non joiner character (0x200C)
- CC_CONSONANT_SHIFTER = 5,
- CC_ROBAT = 6, // Khmer special diacritic accent -treated differently in state table
- CC_COENG = 7, // Subscript consonant combining character
- CC_DEPENDENT_VOWEL = 8,
- CC_SIGN_ABOVE = 9,
- CC_SIGN_AFTER = 10,
- CC_ZERO_WIDTH_J_MARK = 11, // Zero width joiner character
- CC_COUNT = 12 // This is the number of character classes
- };
-
- enum CharClassFlags
- {
- CF_CLASS_MASK = 0x0000FFFF,
-
- CF_CONSONANT = 0x01000000, // flag to speed up comparing
- CF_SPLIT_VOWEL = 0x02000000, // flag for a split vowel -> the first part is added in front of the syllable
- CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with this flag is the first in a syllable
- CF_COENG = 0x08000000, // flag to speed up comparing
- CF_SHIFTER = 0x10000000, // flag to speed up comparing
- CF_ABOVE_VOWEL = 0x20000000, // flag to speed up comparing
-
- // position flags
- CF_POS_BEFORE = 0x00080000,
- CF_POS_BELOW = 0x00040000,
- CF_POS_ABOVE = 0x00020000,
- CF_POS_AFTER = 0x00010000,
- CF_POS_MASK = 0x000f0000
- };
-
- typedef le_uint32 CharClass;
-
- typedef le_int32 ScriptFlags;
-
- LEUnicode firstChar; // for Khmer this will become x1780
- LEUnicode lastChar; // and this x17DF
- const CharClass *classTable;
-
- CharClass getCharClass(LEUnicode ch) const;
-
- static const KhmerClassTable *getKhmerClassTable();
-};
-
-
-class KhmerReordering /* not : public UObject because all methods are static */ {
-public:
- static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage);
-
- static const FeatureMap *getFeatureMap(le_int32 &count);
-
-private:
- // do not instantiate
- KhmerReordering();
-
- static le_int32 findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
-
-};
-
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp b/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp
deleted file mode 100644
index f05125f1459..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- *******************************************************************************
- *
- * Copyright (C) 1999-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- *******************************************************************************
- * file name: LEFontInstance.cpp
- *
- * created on: 02/06/2003
- * created by: Eric R. Mader
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LEFontInstance.h"
-#include "LEGlyphStorage.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEFontInstance)
-
-LECharMapper::~LECharMapper()
-{
- // nothing to do.
-}
-
-LEFontInstance::~LEFontInstance()
-{
- // nothing to do
-}
-
-const LEFontInstance *LEFontInstance::getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit,
- le_int32 script, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return NULL;
- }
-
- if (chars == NULL || *offset < 0 || limit < 0 || *offset >= limit || script < 0 || script >= scriptCodeCount) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-
- *offset = limit;
- return this;
-}
-
-void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_bool reverse, const LECharMapper *mapper, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage) const
-{
- le_int32 i, out = 0, dir = 1;
-
- if (reverse) {
- out = count - 1;
- dir = -1;
- }
-
- for (i = offset; i < offset + count; i += 1, out += dir) {
- LEUnicode16 high = chars[i];
- LEUnicode32 code = high;
-
- if (i < offset + count - 1 && high >= 0xD800 && high <= 0xDBFF) {
- LEUnicode16 low = chars[i + 1];
-
- if (low >= 0xDC00 && low <= 0xDFFF) {
- code = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
- }
- }
-
- glyphStorage[out] = mapCharToGlyph(code, mapper, filterZeroWidth);
-
- if (code >= 0x10000) {
- i += 1;
- glyphStorage[out += dir] = 0xFFFF;
- }
- }
-}
-
-LEGlyphID LEFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
-{
- return mapCharToGlyph(ch, mapper, TRUE);
-}
-
-LEGlyphID LEFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
-{
- LEUnicode32 mappedChar = mapper->mapChar(ch);
-
- if (mappedChar == 0xFFFE || mappedChar == 0xFFFF) {
- return 0xFFFF;
- }
-
- if (filterZeroWidth && (mappedChar == 0x200C || mappedChar == 0x200D)) {
- return canDisplay(mappedChar)? 0x0001 : 0xFFFF;
- }
-
- return mapCharToGlyph(mappedChar);
-}
-
-le_bool LEFontInstance::canDisplay(LEUnicode32 ch) const
-{
- return LE_GET_GLYPH(mapCharToGlyph(ch)) != 0;
-}
-
-float LEFontInstance::xUnitsToPoints(float xUnits) const
-{
- return (xUnits * getXPixelsPerEm()) / (float) getUnitsPerEM();
-}
-
-float LEFontInstance::yUnitsToPoints(float yUnits) const
-{
- return (yUnits * getYPixelsPerEm()) / (float) getUnitsPerEM();
-}
-
-void LEFontInstance::unitsToPoints(LEPoint &units, LEPoint &points) const
-{
- points.fX = xUnitsToPoints(units.fX);
- points.fY = yUnitsToPoints(units.fY);
-}
-
-float LEFontInstance::xPixelsToUnits(float xPixels) const
-{
- return (xPixels * getUnitsPerEM()) / (float) getXPixelsPerEm();
-}
-
-float LEFontInstance::yPixelsToUnits(float yPixels) const
-{
- return (yPixels * getUnitsPerEM()) / (float) getYPixelsPerEm();
-}
-
-void LEFontInstance::pixelsToUnits(LEPoint &pixels, LEPoint &units) const
-{
- units.fX = xPixelsToUnits(pixels.fX);
- units.fY = yPixelsToUnits(pixels.fY);
-}
-
-void LEFontInstance::transformFunits(float xFunits, float yFunits, LEPoint &pixels) const
-{
- pixels.fX = xUnitsToPoints(xFunits) * getScaleFactorX();
- pixels.fY = yUnitsToPoints(yFunits) * getScaleFactorY();
-}
-
-le_int32 LEFontInstance::getLineHeight() const
-{
- return getAscent() + getDescent() + getLeading();
-}
-
-void LEFontInstance::getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const
-{
- kern.fX = kern.fY = 0;
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu-xetex/layout/LEFontInstance.h b/Build/source/libs/icu-xetex/layout/LEFontInstance.h
deleted file mode 100644
index 6d636b8fa31..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEFontInstance.h
+++ /dev/null
@@ -1,542 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#ifndef __LEFONTINSTANCE_H
-#define __LEFONTINSTANCE_H
-
-#include "LETypes.h"
-/**
- * \file
- * \brief C++ API: Layout Engine Font Instance object
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * Instances of this class are used by <code>LEFontInstance::mapCharsToGlyphs</code> and
- * <code>LEFontInstance::mapCharToGlyph</code> to adjust character codes before the character
- * to glyph mapping process. Examples of this are filtering out control characters
- * and character mirroring - replacing a character which has both a left and a right
- * hand form with the opposite form.
- *
- * @stable ICU 3.2
- */
-class LECharMapper /* not : public UObject because this is an interface/mixin class */
-{
-public:
- /**
- * Destructor.
- * @stable ICU 3.2
- */
- virtual ~LECharMapper();
-
- /**
- * This method does the adjustments.
- *
- * @param ch - the input character
- *
- * @return the adjusted character
- *
- * @stable ICU 2.8
- */
- virtual LEUnicode32 mapChar(LEUnicode32 ch) const = 0;
-};
-
-/**
- * This is a forward reference to the class which holds the per-glyph
- * storage.
- *
- * @stable ICU 3.0
- */
-class LEGlyphStorage;
-
-/**
- * This is a virtual base class that serves as the interface between a LayoutEngine
- * and the platform font environment. It allows a LayoutEngine to access font tables, do
- * character to glyph mapping, and obtain metrics information without knowing any platform
- * specific details. There are also a few utility methods for converting between points,
- * pixels and funits. (font design units)
- *
- * An instance of an <code>LEFontInstance</code> represents a font at a particular point
- * size. Each instance can represent either a single physical font, or a composite font.
- * A composite font is a collection of physical fonts, each of which contains a subset of
- * the characters contained in the composite font.
- *
- * Note: with the exception of <code>getSubFont</code>, the methods in this class only
- * make sense for a physical font. If you have an <code>LEFontInstance</code> which
- * represents a composite font you should only call the methods below which have
- * an <code>LEGlyphID</code>, an <code>LEUnicode</code> or an <code>LEUnicode32</code>
- * as one of the arguments because these can be used to select a particular subfont.
- *
- * Subclasses which implement composite fonts should supply an implementation of these
- * methods with some default behavior such as returning constant values, or using the
- * values from the first subfont.
- *
- * @stable ICU 3.0
- */
-class U_LAYOUT_API LEFontInstance : public UObject
-{
-public:
-
- /**
- * This virtual destructor is here so that the subclass
- * destructors can be invoked through the base class.
- *
- * @stable ICU 2.8
- */
- virtual ~LEFontInstance();
-
- /**
- * Get a physical font which can render the given text. For composite fonts,
- * if there is no single physical font which can render all of the text,
- * return a physical font which can render an initial substring of the text,
- * and set the <code>offset</code> parameter to the end of that substring.
- *
- * Internally, the LayoutEngine works with runs of text all in the same
- * font and script, so it is best to call this method with text which is
- * in a single script, passing the script code in as a hint. If you don't
- * know the script of the text, you can use zero, which is the script code
- * for characters used in more than one script.
- *
- * The default implementation of this method is intended for instances of
- * <code>LEFontInstance</code> which represent a physical font. It returns
- * <code>this</code> and indicates that the entire string can be rendered.
- *
- * This method will return a valid <code>LEFontInstance</code> unless you
- * have passed illegal parameters, or an internal error has been encountered.
- * For composite fonts, it may return the warning <code>LE_NO_SUBFONT_WARNING</code>
- * to indicate that the returned font may not be able to render all of
- * the text. Whenever a valid font is returned, the <code>offset</code> parameter
- * will be advanced by at least one.
- *
- * Subclasses which implement composite fonts must override this method.
- * Where it makes sense, they should use the script code as a hint to render
- * characters from the COMMON script in the font which is used for the given
- * script. For example, if the input text is a series of Arabic words separated
- * by spaces, and the script code passed in is <code>arabScriptCode</code> you
- * should return the font used for Arabic characters for all of the input text,
- * including the spaces. If, on the other hand, the input text contains characters
- * which cannot be rendered by the font used for Arabic characters, but which can
- * be rendered by another font, you should return that font for those characters.
- *
- * @param chars - the array of Unicode characters.
- * @param offset - a pointer to the starting offset in the text. On exit this
- * will be set the the limit offset of the text which can be
- * rendered using the returned font.
- * @param limit - the limit offset for the input text.
- * @param script - the script hint.
- * @param success - set to an error code if the arguments are illegal, or no font
- * can be returned for some reason. May also be set to
- * <code>LE_NO_SUBFONT_WARNING</code> if the subfont which
- * was returned cannot render all of the text.
- *
- * @return an <code>LEFontInstance</code> for the sub font which can render the characters, or
- * <code>NULL</code> if there is an error.
- *
- * @see LEScripts.h
- *
- * @stable ICU 3.2
- */
- virtual const LEFontInstance *getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit, le_int32 script, LEErrorCode &success) const;
-
- //
- // Font file access
- //
-
- /**
- * This method reads a table from the font. Note that in general,
- * it only makes sense to call this method on an <code>LEFontInstance</code>
- * which represents a physical font - i.e. one which has been returned by
- * <code>getSubFont()</code>. This is because each subfont in a composite font
- * will have different tables, and there's no way to know which subfont to access.
- *
- * Subclasses which represent composite fonts should always return <code>NULL</code>.
- *
- * @param tableTag - the four byte table tag. (e.g. 'cmap')
- *
- * @return the address of the table in memory, or <code>NULL</code>
- * if the table doesn't exist.
- *
- * @stable ICU 2.8
- */
- virtual const void *getFontTable(LETag tableTag) const = 0;
-
- /**
- * This method is used to determine if the font can
- * render the given character. This can usually be done
- * by looking the character up in the font's character
- * to glyph mapping.
- *
- * The default implementation of this method will return
- * <code>TRUE</code> if <code>mapCharToGlyph(ch)</code>
- * returns a non-zero value.
- *
- * @param ch - the character to be tested
- *
- * @return <code>TRUE</code> if the font can render ch.
- *
- * @stable ICU 3.2
- */
- virtual le_bool canDisplay(LEUnicode32 ch) const;
-
- /**
- * This method returns the number of design units in
- * the font's EM square.
- *
- * @return the number of design units pre EM.
- *
- * @stable ICU 2.8
- */
- virtual le_int32 getUnitsPerEM() const = 0;
-
- /**
- * This method maps an array of character codes to an array of glyph
- * indices, using the font's character to glyph map.
- *
- * The default implementation iterates over all of the characters and calls
- * <code>mapCharToGlyph(ch, mapper)</code> on each one. It also handles surrogate
- * characters, storing the glyph ID for the high surrogate, and a deleted glyph (0xFFFF)
- * for the low surrogate.
- *
- * Most sublcasses will not need to implement this method.
- *
- * @param chars - the character array
- * @param offset - the index of the first character
- * @param count - the number of characters
- * @param reverse - if <code>TRUE</code>, store the glyph indices in reverse order.
- * @param mapper - the character mapper.
- * @param filterZeroWidth - <code>TRUE</code> if ZWJ / ZWNJ characters should map to a glyph w/ no contours.
- * @param glyphStorage - the object which contains the output glyph array
- *
- * @see LECharMapper
- *
- * @draft ICU 3.6
- */
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage) const;
-
- /**
- * This method maps a single character to a glyph index, using the
- * font's character to glyph map. The default implementation of this
- * method calls the mapper, and then calls <code>mapCharToGlyph(mappedCh)</code>.
- *
- * @param ch - the character
- * @param mapper - the character mapper
- * @param filterZeroWidth - <code>TRUE</code> if ZWJ / ZWNJ characters should map to a glyph w/ no contours.
- *
- * @return the glyph index
- *
- * @see LECharMapper
- *
- * @draft ICU 3.6
- */
- virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const;
-
-
- /**
- * This method maps a single character to a glyph index, using the
- * font's character to glyph map. The default implementation of this
- * method calls the mapper, and then calls <code>mapCharToGlyph(mappedCh)</code>.
- *
- * @param ch - the character
- * @param mapper - the character mapper
- *
- * @return the glyph index
- *
- * @see LECharMapper
- *
- * @stable ICU 3.2
- */
- virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const;
-
- /**
- * This method maps a single character to a glyph index, using the
- * font's character to glyph map. There is no default implementation
- * of this method because it requires information about the platform
- * font implementation.
- *
- * @param ch - the character
- *
- * @return the glyph index
- *
- * @stable ICU 3.2
- */
- virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const = 0;
-
- //
- // Metrics
- //
-
- /**
- * This method gets the X and Y advance of a particular glyph, in pixels.
- *
- * @param glyph - the glyph index
- * @param advance - the X and Y pixel values will be stored here
- *
- * @stable ICU 3.2
- */
- virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const = 0;
-
- /**
- * This method gets the hinted X and Y pixel coordinates of a particular
- * point in the outline of the given glyph.
- *
- * @param glyph - the glyph index
- * @param pointNumber - the number of the point
- * @param point - the point's X and Y pixel values will be stored here
- *
- * @return <code>TRUE</code> if the point coordinates could be stored.
- *
- * @stable ICU 2.8
- */
- virtual le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point) const = 0;
-
- /**
- * This method returns the width of the font's EM square
- * in pixels.
- *
- * @return the pixel width of the EM square
- *
- * @stable ICU 2.8
- */
- virtual float getXPixelsPerEm() const = 0;
-
- /**
- * This method returns the height of the font's EM square
- * in pixels.
- *
- * @return the pixel height of the EM square
- *
- * @stable ICU 2.8
- */
- virtual float getYPixelsPerEm() const = 0;
-
- /**
- * This method converts font design units in the
- * X direction to points.
- *
- * @param xUnits - design units in the X direction
- *
- * @return points in the X direction
- *
- * @stable ICU 3.2
- */
- virtual float xUnitsToPoints(float xUnits) const;
-
- /**
- * This method converts font design units in the
- * Y direction to points.
- *
- * @param yUnits - design units in the Y direction
- *
- * @return points in the Y direction
- *
- * @stable ICU 3.2
- */
- virtual float yUnitsToPoints(float yUnits) const;
-
- /**
- * This method converts font design units to points.
- *
- * @param units - X and Y design units
- * @param points - set to X and Y points
- *
- * @stable ICU 3.2
- */
- virtual void unitsToPoints(LEPoint &units, LEPoint &points) const;
-
- /**
- * This method converts pixels in the
- * X direction to font design units.
- *
- * @param xPixels - pixels in the X direction
- *
- * @return font design units in the X direction
- *
- * @stable ICU 3.2
- */
- virtual float xPixelsToUnits(float xPixels) const;
-
- /**
- * This method converts pixels in the
- * Y direction to font design units.
- *
- * @param yPixels - pixels in the Y direction
- *
- * @return font design units in the Y direction
- *
- * @stable ICU 3.2
- */
- virtual float yPixelsToUnits(float yPixels) const;
-
- /**
- * This method converts pixels to font design units.
- *
- * @param pixels - X and Y pixel
- * @param units - set to X and Y font design units
- *
- * @stable ICU 3.2
- */
- virtual void pixelsToUnits(LEPoint &pixels, LEPoint &units) const;
-
- /**
- * Get the X scale factor from the font's transform. The default
- * implementation of <code>transformFunits()</code> will call this method.
- *
- * @return the X scale factor.
- *
- *
- * @see transformFunits
- *
- * @stable ICU 3.2
- */
- virtual float getScaleFactorX() const = 0;
-
- /**
- * Get the Y scale factor from the font's transform. The default
- * implementation of <code>transformFunits()</code> will call this method.
- *
- * @return the Yscale factor.
- *
- * @see transformFunits
- *
- * @stable ICU 3.2
- */
- virtual float getScaleFactorY() const = 0;
-
- /**
- * This method transforms an X, Y point in font design units to a
- * pixel coordinate, applying the font's transform. The default
- * implementation of this method calls <code>getScaleFactorX()</code>
- * and <code>getScaleFactorY()</code>.
- *
- * @param xFunits - the X coordinate in font design units
- * @param yFunits - the Y coordinate in font design units
- * @param pixels - the tranformed co-ordinate in pixels
- *
- * @see getScaleFactorX
- * @see getScaleFactorY
- *
- * @stable ICU 3.2
- */
- virtual void transformFunits(float xFunits, float yFunits, LEPoint &pixels) const;
-
- /**
- * This is a convenience method used to convert
- * values in a 16.16 fixed point format to floating point.
- *
- * @param fixed - the fixed point value
- *
- * @return the floating point value
- *
- * @stable ICU 2.8
- */
- static inline float fixedToFloat(le_int32 fixed);
-
- /**
- * This is a convenience method used to convert
- * floating point values to 16.16 fixed point format.
- *
- * @param theFloat - the floating point value
- *
- * @return the fixed point value
- *
- * @stable ICU 2.8
- */
- static inline le_int32 floatToFixed(float theFloat);
-
- //
- // These methods won't ever be called by the LayoutEngine,
- // but are useful for clients of <code>LEFontInstance</code> who
- // need to render text.
- //
-
- /**
- * Get the font's ascent.
- *
- * @return the font's ascent, in points. This value
- * will always be positive.
- *
- * @stable ICU 3.2
- */
- virtual le_int32 getAscent() const = 0;
-
- /**
- * Get the font's descent.
- *
- * @return the font's descent, in points. This value
- * will always be positive.
- *
- * @stable ICU 3.2
- */
- virtual le_int32 getDescent() const = 0;
-
- /**
- * Get the font's leading.
- *
- * @return the font's leading, in points. This value
- * will always be positive.
- *
- * @stable ICU 3.2
- */
- virtual le_int32 getLeading() const = 0;
-
- /**
- * Get the line height required to display text in
- * this font. The default implementation of this method
- * returns the sum of the ascent, descent, and leading.
- *
- * @return the line height, in points. This vaule will
- * always be positive.
- *
- * @stable ICU 3.2
- */
- virtual le_int32 getLineHeight() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 3.2
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 3.2
- */
- static UClassID getStaticClassID();
-
- /**
- * Returns kern value for a glyph pair, if the font has a kern pair list.
- */
- virtual void getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const;
-
- /**
- * Returns true if writing direction is vertical.
- */
- virtual inline bool getLayoutDirVertical() const;
-};
-
-inline float LEFontInstance::fixedToFloat(le_int32 fixed)
-{
- return (float) (fixed / 65536.0);
-}
-
-inline le_int32 LEFontInstance::floatToFixed(float theFloat)
-{
- return (le_int32) (theFloat * 65536.0);
-}
-
-inline bool LEFontInstance::getLayoutDirVertical() const
-{
- return false;
-}
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/LEGlyphFilter.h b/Build/source/libs/icu-xetex/layout/LEGlyphFilter.h
deleted file mode 100644
index f8fa1731879..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEGlyphFilter.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LEGLYPHFILTER__H
-#define __LEGLYPHFILTER__H
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * This is a helper class that is used to
- * recognize a set of glyph indices.
- *
- * @internal
- */
-class LEGlyphFilter /* not : public UObject because this is an interface/mixin class */ {
-public:
- /**
- * Destructor.
- * @internal
- */
- virtual ~LEGlyphFilter();
-
- /**
- * This method is used to test a particular
- * glyph index to see if it is in the set
- * recognized by the filter.
- *
- * @param glyph - the glyph index to be tested
- *
- * @return TRUE if the glyph index is in the set.
- *
- * @internal
- */
- virtual le_bool accept(LEGlyphID glyph) const = 0;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp
deleted file mode 100644
index 1b595159a11..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp
+++ /dev/null
@@ -1,649 +0,0 @@
-/*
- **********************************************************************
- * Copyright (C) 1998-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-
-#include "LETypes.h"
-#include "LEInsertionList.h"
-#include "LEGlyphStorage.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEGlyphStorage)
-
-LEInsertionCallback::~LEInsertionCallback()
-{
- // nothing to do...
-}
-
-LEGlyphStorage::LEGlyphStorage()
- : fGlyphCount(0), fGlyphs(NULL), fCharIndices(NULL), fPositions(NULL),
- fAuxData(NULL), fAuxParam(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0)
-{
- // nothing else to do!
-}
-
-LEGlyphStorage::~LEGlyphStorage()
-{
- reset();
-}
-
-void LEGlyphStorage::reset()
-{
- fGlyphCount = 0;
-
- if (fPositions != NULL) {
- LE_DELETE_ARRAY(fPositions);
- fPositions = NULL;
- }
-
- if (fAuxData != NULL) {
- LE_DELETE_ARRAY(fAuxData);
- fAuxData = NULL;
- }
-
- if (fAuxParam != NULL) {
- LE_DELETE_ARRAY(fAuxParam);
- fAuxParam = NULL;
- }
-
- if (fInsertionList != NULL) {
- delete fInsertionList;
- fInsertionList = NULL;
- }
-
- if (fCharIndices != NULL) {
- LE_DELETE_ARRAY(fCharIndices);
- fCharIndices = NULL;
- }
-
- if (fGlyphs != NULL) {
- LE_DELETE_ARRAY(fGlyphs);
- fGlyphs = NULL;
- }
-}
-
-// FIXME: This might get called more than once, for various reasons. Is
-// testing for pre-existing glyph and charIndices arrays good enough?
-void LEGlyphStorage::allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (initialGlyphCount <= 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fGlyphs == NULL) {
- fGlyphCount = initialGlyphCount;
- fGlyphs = LE_NEW_ARRAY(LEGlyphID, fGlyphCount);
-
- if (fGlyphs == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return;
- }
- }
-
- if (fCharIndices == NULL) {
- fCharIndices = LE_NEW_ARRAY(le_int32, fGlyphCount);
-
- if (fCharIndices == NULL) {
- LE_DELETE_ARRAY(fGlyphs);
- fGlyphs = NULL;
- success = LE_MEMORY_ALLOCATION_ERROR;
- return;
- }
-
- // Initialize the charIndices array
- le_int32 i, count = fGlyphCount, dir = 1, out = 0;
-
- if (rightToLeft) {
- out = fGlyphCount - 1;
- dir = -1;
- }
-
- for (i = 0; i < count; i += 1, out += dir) {
- fCharIndices[out] = i;
- }
- }
-
- if (fInsertionList == NULL) {
- // FIXME: check this for failure?
- fInsertionList = new LEInsertionList(rightToLeft);
- }
-}
-
-// FIXME: do we want to initialize the positions to [0, 0]?
-le_int32 LEGlyphStorage::allocatePositions(LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return -1;
- }
-
- if (fPositions != NULL) {
- success = LE_INTERNAL_ERROR;
- return -1;
- }
-
- fPositions = LE_NEW_ARRAY(float, 2 * (fGlyphCount + 1));
-
- if (fPositions == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return -1;
- }
-
- return fGlyphCount;
-}
-
-// FIXME: do we want to initialize the aux data to NULL?
-le_int32 LEGlyphStorage::allocateAuxData(LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return -1;
- }
-
- if (fAuxData != NULL || fAuxParam != NULL) {
- success = LE_INTERNAL_ERROR;
- return -1;
- }
-
- fAuxData = LE_NEW_ARRAY(le_uint32, fGlyphCount);
- fAuxParam = LE_NEW_ARRAY(void *, fGlyphCount);
-
- if (fAuxData == NULL || fAuxParam == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return -1;
- }
-
- return fGlyphCount;
-}
-
-void LEGlyphStorage::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
-{
- le_int32 i;
-
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (charIndices == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fCharIndices == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- for (i = 0; i < fGlyphCount; i += 1) {
- charIndices[i] = fCharIndices[i] + indexBase;
- }
-}
-
-void LEGlyphStorage::getCharIndices(le_int32 charIndices[], LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (charIndices == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fCharIndices == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- LE_ARRAY_COPY(charIndices, fCharIndices, fGlyphCount);
-}
-
-// Copy the glyphs into caller's (32-bit) glyph array, OR in extraBits
-void LEGlyphStorage::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
-{
- le_int32 i;
-
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (glyphs == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fGlyphs == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- for (i = 0; i < fGlyphCount; i += 1) {
- glyphs[i] = fGlyphs[i] | extraBits;
- }
-}
-
-void LEGlyphStorage::getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (glyphs == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fGlyphs == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- LE_ARRAY_COPY(glyphs, fGlyphs, fGlyphCount);
-}
-
-LEGlyphID LEGlyphStorage::getGlyphID(le_int32 glyphIndex, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return 0xFFFF;
- }
-
- if (fGlyphs == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return 0xFFFF;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return 0xFFFF;
- }
-
- return fGlyphs[glyphIndex];
-}
-
-void LEGlyphStorage::setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (fGlyphs == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- fGlyphs[glyphIndex] = glyphID;
-}
-
-le_int32 LEGlyphStorage::getCharIndex(le_int32 glyphIndex, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return -1;
- }
-
- if (fCharIndices == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return -1;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return -1;
- }
-
- return fCharIndices[glyphIndex];
-}
-
-void LEGlyphStorage::setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (fCharIndices == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- fCharIndices[glyphIndex] = charIndex;
-}
-
-void LEGlyphStorage::getAuxData(le_uint32 auxData[], LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (auxData == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fAuxData == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- LE_ARRAY_COPY(auxData, fAuxData, fGlyphCount);
-}
-
-le_uint32 LEGlyphStorage::getAuxData(le_int32 glyphIndex, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (fAuxData == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return 0;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return 0;
- }
-
- return fAuxData[glyphIndex];
-}
-
-void *LEGlyphStorage::getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return NULL;
- }
-
- if (fAuxParam == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return NULL;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return NULL;
- }
-
- return fAuxParam[glyphIndex];
-}
-
-void LEGlyphStorage::setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (fAuxData == NULL || fAuxParam == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- fAuxData[glyphIndex] = auxData;
- fAuxParam[glyphIndex] = auxParam;
-}
-
-void LEGlyphStorage::getGlyphPositions(float positions[], LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (positions == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fPositions == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- LE_ARRAY_COPY(positions, fPositions, fGlyphCount * 2 + 2);
-}
-
-void LEGlyphStorage::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex > fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- if (fPositions == NULL) {
- success = LE_NO_LAYOUT_ERROR;
- return;
- }
-
- x = fPositions[glyphIndex * 2];
- y = fPositions[glyphIndex * 2 + 1];
-}
-
-void LEGlyphStorage::setPosition(le_int32 glyphIndex, float x, float y, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex > fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- fPositions[glyphIndex * 2] = x;
- fPositions[glyphIndex * 2 + 1] = y;
-}
-
-void LEGlyphStorage::adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (glyphIndex < 0 || glyphIndex > fGlyphCount) {
- success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return;
- }
-
- fPositions[glyphIndex * 2] += xAdjust;
- fPositions[glyphIndex * 2 + 1] += yAdjust;
-}
-
-void LEGlyphStorage::adoptGlyphArray(LEGlyphStorage &from)
-{
- if (fGlyphs != NULL) {
- LE_DELETE_ARRAY(fGlyphs);
- }
-
- fGlyphs = from.fGlyphs;
- from.fGlyphs = NULL;
-
- if (fInsertionList != NULL) {
- delete fInsertionList;
- }
-
- fInsertionList = from.fInsertionList;
- from.fInsertionList = NULL;
-}
-
-void LEGlyphStorage::adoptCharIndicesArray(LEGlyphStorage &from)
-{
- if (fCharIndices != NULL) {
- LE_DELETE_ARRAY(fCharIndices);
- }
-
- fCharIndices = from.fCharIndices;
- from.fCharIndices = NULL;
-}
-
-void LEGlyphStorage::adoptPositionArray(LEGlyphStorage &from)
-{
- if (fPositions != NULL) {
- LE_DELETE_ARRAY(fPositions);
- }
-
- fPositions = from.fPositions;
- from.fPositions = NULL;
-}
-
-void LEGlyphStorage::adoptAuxDataArrays(LEGlyphStorage &from)
-{
- if (fAuxData != NULL) {
- LE_DELETE_ARRAY(fAuxData);
- }
-
- if (fAuxParam != NULL) {
- LE_DELETE_ARRAY(fAuxParam);
- }
-
- fAuxData = from.fAuxData;
- from.fAuxData = NULL;
- fAuxParam = from.fAuxParam;
- from.fAuxParam = NULL;
-}
-
-void LEGlyphStorage::adoptGlyphCount(LEGlyphStorage &from)
-{
- fGlyphCount = from.fGlyphCount;
-}
-
-void LEGlyphStorage::adoptGlyphCount(le_int32 newGlyphCount)
-{
- fGlyphCount = newGlyphCount;
-}
-
-// FIXME: add error checking?
-LEGlyphID *LEGlyphStorage::insertGlyphs(le_int32 atIndex, le_int32 insertCount)
-{
- return fInsertionList->insert(atIndex, insertCount);
-}
-
-le_int32 LEGlyphStorage::applyInsertions()
-{
- le_int32 growAmount = fInsertionList->getGrowAmount();
-
- if (growAmount == 0) {
- return fGlyphCount;
- }
-
- le_int32 newGlyphCount = fGlyphCount + growAmount;
-
- fGlyphs = (LEGlyphID *) LE_GROW_ARRAY(fGlyphs, newGlyphCount);
- fCharIndices = (le_int32 *) LE_GROW_ARRAY(fCharIndices, newGlyphCount);
-
- if (fAuxData != NULL) {
- fAuxData = (le_uint32 *) LE_GROW_ARRAY(fAuxData, newGlyphCount);
- }
-
- if (fAuxParam != NULL) {
- fAuxParam = (void **) LE_GROW_ARRAY(fAuxParam, newGlyphCount);
- }
-
- fSrcIndex = fGlyphCount - 1;
- fDestIndex = newGlyphCount - 1;
-
-#if 0
- // If the current position is at the end of the array
- // update it to point to the end of the new array. The
- // insertion callback will handle all other cases.
- // FIXME: this is left over from GlyphIterator, but there's no easy
- // way to implement this here... it seems that GlyphIterator doesn't
- // really need it 'cause the insertions don't get applied until after a
- // complete pass over the glyphs, after which the iterator gets reset anyhow...
- // probably better to just document that for LEGlyphStorage and GlyphIterator...
- if (position == glyphCount) {
- position = newGlyphCount;
- }
-#endif
-
- fInsertionList->applyInsertions(this);
-
- fInsertionList->reset();
-
- return fGlyphCount = newGlyphCount;
-}
-
-le_bool LEGlyphStorage::applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[])
-{
-#if 0
- // if the current position is within the block we're shifting
- // it needs to be updated to the current glyph's
- // new location.
- // FIXME: this is left over from GlyphIterator, but there's no easy
- // way to implement this here... it seems that GlyphIterator doesn't
- // really need it 'cause the insertions don't get applied until after a
- // complete pass over the glyphs, after which the iterator gets reset anyhow...
- // probably better to just document that for LEGlyphStorage and GlyphIterator...
- if (position >= atPosition && position <= fSrcIndex) {
- position += fDestIndex - fSrcIndex;
- }
-#endif
-
- if (fAuxData != NULL) {
- le_int32 src = fSrcIndex, dest = fDestIndex;
-
- while (src > atPosition) {
- fAuxData[dest--] = fAuxData[src--];
- }
-
- for (le_int32 i = count - 1; i >= 0; i -= 1) {
- fAuxData[dest--] = fAuxData[atPosition];
- }
- }
-
- if (fAuxParam != NULL) {
- le_int32 src = fSrcIndex, dest = fDestIndex;
-
- while (src > atPosition) {
- fAuxParam[dest--] = fAuxParam[src--];
- }
-
- for (le_int32 i = count - 1; i >= 0; i -= 1) {
- fAuxParam[dest--] = fAuxParam[atPosition];
- }
- }
-
- while (fSrcIndex > atPosition) {
- fGlyphs[fDestIndex] = fGlyphs[fSrcIndex];
- fCharIndices[fDestIndex] = fCharIndices[fSrcIndex];
-
- fDestIndex -= 1;
- fSrcIndex -= 1;
- }
-
- for (le_int32 i = count - 1; i >= 0; i -= 1) {
- fGlyphs[fDestIndex] = newGlyphs[i];
- fCharIndices[fDestIndex] = fCharIndices[atPosition];
-
- fDestIndex -= 1;
- }
-
- // the source glyph we're pointing at
- // just got replaced by the insertion
- fSrcIndex -= 1;
-
- return FALSE;
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h
deleted file mode 100644
index 3855a4fd716..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- **********************************************************************
- * Copyright (C) 1998-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-
-#ifndef __LEGLYPHSTORAGE_H
-#define __LEGLYPHSTORAGE_H
-
-#include "LETypes.h"
-#include "LEInsertionList.h"
-
-/**
- * \file
- * \brief C++ API: This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
- * For each glyph it holds the glyph ID, the index of the backing store character
- * which produced the glyph, the X and Y position of the glyph and an auxillary data
- * pointer.
- *
- * The storage is growable using the <code>LEInsertionList</code> class.
- *
- *
- * @see LEInsertionList.h
- *
- * @draft ICU 3.6
- */
-class U_LAYOUT_API LEGlyphStorage : public UObject, protected LEInsertionCallback
-{
-private:
- /**
- * The number of entries in the per-glyph arrays.
- *
- * @internal
- */
- le_int32 fGlyphCount;
-
- /**
- * The glyph ID array.
- *
- * @internal
- */
- LEGlyphID *fGlyphs;
-
- /**
- * The char indices array.
- *
- * @internal
- */
- le_int32 *fCharIndices;
-
- /**
- * The glyph positions array.
- *
- * @internal
- */
- float *fPositions;
-
- /**
- * The auxiliary data arrays.
- *
- * @internal
- */
- le_uint32 *fAuxData;
- void **fAuxParam;
-
- /**
- * The insertion list, used to grow the above arrays.
- *
- * @internal
- */
- LEInsertionList *fInsertionList;
-
- /**
- * The source index while growing the data arrays.
- *
- * @internal
- */
- le_int32 fSrcIndex;
-
- /**
- * The destination index used while growing the data arrays.
- *
- * @internal
- */
- le_int32 fDestIndex;
-
-protected:
- /**
- * This implements <code>LEInsertionCallback</code>. The <code>LEInsertionList</code>
- * will call this method once for each insertion.
- *
- * @param atPosition the position of the insertion
- * @param count the number of glyphs being inserted
- * @param newGlyphs the address of the new glyph IDs
- *
- * @return <code>true</code> if <code>LEInsertionList</code> should stop
- * processing the insertion list after this insertion.
- *
- * @see LEInsertionList.h
- *
- * @stable ICU 3.0
- */
- virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]);
-
-public:
-
- /**
- * Allocates an empty <code>LEGlyphStorage</code> object. You must call
- * <code>allocateGlyphArray, allocatePositions and allocateAuxData</code>
- * to allocate the data.
- *
- * @stable ICU 3.0
- */
- LEGlyphStorage();
-
- /**
- * The destructor. This will deallocate all of the arrays.
- *
- * @stable ICU 3.0
- */
- ~LEGlyphStorage();
-
- /**
- * This method returns the number of glyphs in the glyph array.
- *
- * @return the number of glyphs in the glyph array
- *
- * @stable ICU 3.0
- */
- inline le_int32 getGlyphCount() const;
-
- /**
- * This method copies the glyph array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold all
- * the glyphs.
- *
- * @param glyphs - the destiniation glyph array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
-
- /**
- * This method copies the glyph array into a caller supplied array,
- * ORing in extra bits. (This functionality is needed by the JDK,
- * which uses 32 bits pre glyph idex, with the high 16 bits encoding
- * the composite font slot number)
- *
- * @param glyphs - the destination (32 bit) glyph array
- * @param extraBits - this value will be ORed with each glyph index
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
-
- /**
- * This method copies the character index array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold a
- * character index for each glyph.
- *
- * @param charIndices - the destiniation character index array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
-
- /**
- * This method copies the character index array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold a
- * character index for each glyph.
- *
- * @param charIndices - the destiniation character index array
- * @param indexBase - an offset which will be added to each index
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
-
- /**
- * This method copies the position array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold an
- * X and Y position for each glyph, plus an extra X and Y for the
- * advance of the last glyph.
- *
- * @param positions - the destiniation position array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getGlyphPositions(float positions[], LEErrorCode &success) const;
-
- /**
- * This method returns the X and Y position of the glyph at
- * the given index.
- *
- * Input parameters:
- * @param glyphIndex - the index of the glyph
- *
- * Output parameters:
- * @param x - the glyph's X position
- * @param y - the glyph's Y position
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 3.0
- */
- void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
-
- /**
- * This method allocates the glyph array, the char indices array and the insertion list. You
- * must call this method before using the object. This method also initializes the char indices
- * array.
- *
- * @param initialGlyphCount the initial size of the glyph and char indices arrays.
- * @param rightToLeft <code>true</code> if the original input text is right to left.
- * @param success set to an error code if the storage cannot be allocated of if the initial
- * glyph count is not positive.
- *
- * @stable ICU 3.0
- */
- void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft, LEErrorCode &success);
-
- /**
- * This method allocates the storage for the glyph positions. It allocates one extra X, Y
- * position pair for the position just after the last glyph.
- *
- * @param success set to an error code if the positions array cannot be allocated.
- *
- * @return the number of X, Y position pairs allocated.
- *
- * @stable ICU 3.0
- */
- le_int32 allocatePositions(LEErrorCode &success);
-
- /**
- * This method allocates the storage for the auxillary glyph data.
- *
- * @param success set to an error code if the aulillary data array cannot be allocated.
- *
- * @return the size of the auxillary data array.
- *
- * @draft ICU 3.6
- */
- le_int32 allocateAuxData(LEErrorCode &success);
-
- /**
- * Copy the entire auxillary data array.
- *
- * @param auxData the auxillary data array will be copied to this address
- * @param success set to an error code if the data cannot be copied
- *
- * @draft ICU 3.6
- */
- void getAuxData(le_uint32 auxData[], LEErrorCode &success) const;
-
- /**
- * Get the glyph ID for a particular glyph.
- *
- * @param glyphIndex the index into the glyph array
- * @param success set to an error code if the glyph ID cannot be retrieved.
- *
- * @return the glyph ID
- *
- * @stable ICU 3.0
- */
- LEGlyphID getGlyphID(le_int32 glyphIndex, LEErrorCode &success) const;
-
- /**
- * Get the char index for a particular glyph.
- *
- * @param glyphIndex the index into the glyph array
- * @param success set to an error code if the char index cannot be retrieved.
- *
- * @return the character index
- *
- * @stable ICU 3.0
- */
- le_int32 getCharIndex(le_int32 glyphIndex, LEErrorCode &success) const;
-
-
- /**
- * Get the auxillary data for a particular glyph.
- *
- * @param glyphIndex the index into the glyph array
- * @param success set to an error code if the auxillary data cannot be retrieved.
- *
- * @return the auxillary data
- *
- * @draft ICU 3.6
- */
- le_uint32 getAuxData(le_int32 glyphIndex, LEErrorCode &success) const;
- void *getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const;
-
- /**
- * This operator allows direct access to the glyph array
- * using the index operator.
- *
- * @param glyphIndex the index into the glyph array
- *
- * @return a reference to the given location in the glyph array
- *
- * @stable ICU 3.0
- */
- inline LEGlyphID &operator[](le_int32 glyphIndex) const;
-
- /**
- * Call this method to replace a single glyph in the glyph array
- * with multiple glyphs. This method uses the <code>LEInsertionList</code>
- * to do the insertion. It returns the address of storage where the new
- * glyph IDs can be stored. They will not actually be inserted into the
- * glyph array until <code>applyInsertions</code> is called.
- *
- * @param atIndex the index of the glyph to be replaced
- * @param insertCount the number of glyphs to replace it with
- *
- * @return the address at which to store the replacement glyphs.
- *
- * @see LEInsetionList.h
- *
- * @stable ICU 3.0
- */
- LEGlyphID *insertGlyphs(le_int32 atIndex, le_int32 insertCount);
-
- /**
- * This method causes all of the glyph insertions recorded by
- * <code>insertGlyphs</code> to be applied to the glyph array. The
- * new slots in the char indices and the auxillary data arrays
- * will be filled in with the values for the glyph being replaced.
- *
- * @return the new size of the glyph array
- *
- * @see LEInsertionList.h
- *
- * @stable ICU 3.0
- */
- le_int32 applyInsertions();
-
- /**
- * Set the glyph ID for a particular glyph.
- *
- * @param glyphIndex the index of the glyph
- * @param glyphID the new glyph ID
- * @param success will be set to an error code if the glyph ID cannot be set.
- *
- * @stable ICU 3.0
- */
- void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID, LEErrorCode &success);
-
- /**
- * Set the char index for a particular glyph.
- *
- * @param glyphIndex the index of the glyph
- * @param charIndex the new char index
- * @param success will be set to an error code if the char index cannot be set.
- *
- * @stable ICU 3.0
- */
- void setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErrorCode &success);
-
- /**
- * Set the X, Y position for a particular glyph.
- *
- * @param glyphIndex the index of the glyph
- * @param x the new X position
- * @param y the new Y position
- * @param success will be set to an error code if the position cannot be set.
- *
- * @stable ICU 3.0
- */
- void setPosition(le_int32 glyphIndex, float x, float y, LEErrorCode &success);
-
- /**
- * Adjust the X, Y position for a particular glyph.
- *
- * @param glyphIndex the index of the glyph
- * @param xAdjust the adjustment to the glyph's X position
- * @param yAdjust the adjustment to the glyph's Y position
- * @param success will be set to an error code if the glyph's position cannot be adjusted.
- *
- * @stable ICU 3.0
- */
- void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success);
-
- /**
- * Set the auxiliary data for a particular glyph.
- *
- * @param glyphIndex the index of the glyph
- * @param auxData the new auxiliary data
- * @param auxParam the new secondary auxiliary data (parameter)
- * @param success will be set to an error code if the auxiliary data cannot be set.
- *
- * @draft ICU 3.6
- */
- void setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success);
-
- /**
- * Delete the glyph array and replace it with the one
- * in <code>from</code>. Set the glyph array pointer
- * in <code>from</code> to <code>NULL</code>.
- *
- * @param from the <code>LEGlyphStorage</code> object from which
- * to get the new glyph array.
- *
- * @stable ICU 3.0
- */
- void adoptGlyphArray(LEGlyphStorage &from);
-
- /**
- * Delete the char indices array and replace it with the one
- * in <code>from</code>. Set the char indices array pointer
- * in <code>from</code> to <code>NULL</code>.
- *
- * @param from the <code>LEGlyphStorage</code> object from which
- * to get the new char indices array.
- *
- * @stable ICU 3.0
- */
- void adoptCharIndicesArray(LEGlyphStorage &from);
-
- /**
- * Delete the position array and replace it with the one
- * in <code>from</code>. Set the position array pointer
- * in <code>from</code> to <code>NULL</code>.
- *
- * @param from the <code>LEGlyphStorage</code> object from which
- * to get the new position array.
- *
- * @stable ICU 3.0
- */
- void adoptPositionArray(LEGlyphStorage &from);
-
- /**
- * Delete the auxillary data array and replace it with the one
- * in <code>from</code>. Set the auxillary data array pointer
- * in <code>from</code> to <code>NULL</code>.
- *
- * @param from the <code>LEGlyphStorage</code> object from which
- * to get the new auxillary data array.
- *
- * @stable ICU 3.0
- */
- void adoptAuxDataArrays(LEGlyphStorage &from);
-
- /**
- * Change the glyph count of this object to be the same
- * as the one in <code>from</code>.
- *
- * @param from the <code>LEGlyphStorage</code> object from which
- * to get the new glyph count.
- *
- * @stable ICU 3.0
- */
- void adoptGlyphCount(LEGlyphStorage &from);
-
- /**
- * Change the glyph count of this object to the given value.
- *
- * @param newGlyphCount the new glyph count.
- *
- * @stable ICU 3.0
- */
- void adoptGlyphCount(le_int32 newGlyphCount);
-
- /**
- * This method frees the glyph, character index, position and
- * auxillary data arrays so that the LayoutEngine can be reused
- * to layout a different characer array. (This method is also called
- * by the destructor)
- *
- * @stable ICU 3.0
- */
- void reset();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 3.0
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 3.0
- */
- static UClassID getStaticClassID();
-};
-
-inline le_int32 LEGlyphStorage::getGlyphCount() const
-{
- return fGlyphCount;
-}
-
-inline LEGlyphID &LEGlyphStorage::operator[](le_int32 glyphIndex) const
-{
- return fGlyphs[glyphIndex];
-}
-
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/LEInsertionList.cpp b/Build/source/libs/icu-xetex/layout/LEInsertionList.cpp
deleted file mode 100644
index b92cc474936..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEInsertionList.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- **********************************************************************
- * Copyright (C) 1998-2004, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-
-#include "LETypes.h"
-#include "LEInsertionList.h"
-
-U_NAMESPACE_BEGIN
-
-#define ANY_NUMBER 1
-
-struct InsertionRecord
-{
- InsertionRecord *next;
- le_int32 position;
- le_int32 count;
- LEGlyphID glyphs[ANY_NUMBER];
-};
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEInsertionList)
-
-LEInsertionList::LEInsertionList(le_bool rightToLeft)
-: head(NULL), tail(NULL), growAmount(0), append(rightToLeft)
-{
- tail = (InsertionRecord *) &head;
-}
-
-LEInsertionList::~LEInsertionList()
-{
- reset();
-}
-
-void LEInsertionList::reset()
-{
- while (head != NULL) {
- InsertionRecord *record = head;
-
- head = head->next;
- LE_DELETE_ARRAY(record);
- }
-
- tail = (InsertionRecord *) &head;
- growAmount = 0;
-}
-
-le_int32 LEInsertionList::getGrowAmount()
-{
- return growAmount;
-}
-
-LEGlyphID *LEInsertionList::insert(le_int32 position, le_int32 count)
-{
- InsertionRecord *insertion = (InsertionRecord *) LE_NEW_ARRAY(char, sizeof(InsertionRecord) + (count - ANY_NUMBER) * sizeof (LEGlyphID));
-
- insertion->position = position;
- insertion->count = count;
-
- growAmount += count - 1;
-
- if (append) {
- // insert on end of list...
- insertion->next = NULL;
- tail->next = insertion;
- tail = insertion;
- } else {
- // insert on front of list...
- insertion->next = head;
- head = insertion;
- }
-
- return insertion->glyphs;
-}
-
-le_bool LEInsertionList::applyInsertions(LEInsertionCallback *callback)
-{
- for (InsertionRecord *rec = head; rec != NULL; rec = rec->next) {
- if (callback->applyInsertion(rec->position, rec->count, rec->glyphs)) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LEInsertionList.h b/Build/source/libs/icu-xetex/layout/LEInsertionList.h
deleted file mode 100644
index a894295280d..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEInsertionList.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- **********************************************************************
- * Copyright (C) 1998-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-
-#ifndef __LEINSERTIONLIST_H
-#define __LEINSERTIONLIST_H
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-struct InsertionRecord;
-
-/**
- * This class encapsulates the callback used by <code>LEInsertionList</code>
- * to apply an insertion from the insertion list.
- *
- * @internal
- */
-class U_LAYOUT_API LEInsertionCallback
-{
-public:
- /**
- * This method will be called by <code>LEInsertionList::applyInsertions</code> for each
- * entry on the insertion list.
- *
- * @param atPosition the position of the insertion
- * @param count the number of glyphs to insert
- * @param newGlyphs the address of the glyphs to insert
- *
- * @return <code>TRUE</code> if <code>LEInsertions::applyInsertions</code> should
- * stop after applying this insertion.
- *
- * @internal
- */
- virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]) = 0;
-
- /**
- * The destructor
- */
- virtual ~LEInsertionCallback();
-};
-
-/**
- * This class is used to keep track of insertions to an array of
- * <code>LEGlyphIDs</code>. The insertions are kept on a linked
- * list of <code>InsertionRecords</code> so that the glyph array
- * doesn't have to be grown for each insertion. The insertions are
- * stored on the list from leftmost to rightmost to make it easier
- * to do the insertions.
- *
- * The insertions are applied to the array by calling the
- * <code>applyInsertions</code> method, which calls a client
- * supplied <code>LEInsertionCallback</code> object to actually
- * apply the individual insertions.
- *
- * @internal
- */
-class LEInsertionList : public UObject
-{
-public:
- /**
- * Construct an empty insertion list.
- *
- * @param rightToLeft <code>TRUE</code> if the glyphs are stored
- * in the array in right to left order.
- *
- * @internal
- */
- LEInsertionList(le_bool rightToLeft);
-
- /**
- * The destructor.
- */
- ~LEInsertionList();
-
- /**
- * Add an entry to the insertion list.
- *
- * @param position the glyph at this position in the array will be
- * replaced by the new glyphs.
- * @param count the number of new glyphs
- *
- * @return the address of an array in which to store the new glyphs. This will
- * <em>not</em> be in the glyph array.
- *
- * @internal
- */
- LEGlyphID *insert(le_int32 position, le_int32 count);
-
- /**
- * Return the number of new glyphs that have been inserted.
- *
- * @return the number of new glyphs which have been inserted
- *
- * @internal
- */
- le_int32 getGrowAmount();
-
- /**
- * Call the <code>LEInsertionCallback</code> once for each
- * entry on the insertion list.
- *
- * @param callback the <code>LEInsertionCallback</code> to call for each insertion.
- *
- * @return <code>TRUE</code> if <code>callback</code> returned <code>TRUE</code> to
- * terminate the insertion list processing.
- *
- * @internal
- */
- le_bool applyInsertions(LEInsertionCallback *callback);
-
- /**
- * Empty the insertion list and free all associated
- * storage.
- *
- * @internal
- */
- void reset();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
-
- /**
- * The head of the insertion list.
- *
- * @internal
- */
- InsertionRecord *head;
-
- /**
- * The tail of the insertion list.
- *
- * @internal
- */
- InsertionRecord *tail;
-
- /**
- * The total number of new glyphs on the insertion list.
- *
- * @internal
- */
- le_int32 growAmount;
-
- /**
- * Set to <code>TRUE</code> if the glyphs are in right
- * to left order. Since we want the rightmost insertion
- * to be first on the list, we need to append the
- * insertions in this case. Otherwise they're prepended.
- *
- * @internal
- */
- le_bool append;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/LELanguages.h b/Build/source/libs/icu-xetex/layout/LELanguages.h
deleted file mode 100644
index 563ddcfd179..00000000000
--- a/Build/source/libs/icu-xetex/layout/LELanguages.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 08/21/2006 02:35:14 PM HST
- */
-
-#ifndef __LELANGUAGES_H
-#define __LELANGUAGES_H
-
-#include "LETypes.h"
-
-/**
- * \file
- * \brief C++ API: List of language codes for LayoutEngine
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * A provisional list of language codes. For now,
- * this is just a list of languages which the LayoutEngine
- * supports.
- *
- * @draft ICU 3.6
- */
-
-enum LanguageCodes {
- nullLanguageCode = 0,
- araLanguageCode = 1,
- asmLanguageCode = 2,
- benLanguageCode = 3,
- farLanguageCode = 4,
- gujLanguageCode = 5,
- hinLanguageCode = 6,
- iwrLanguageCode = 7,
- jiiLanguageCode = 8,
- janLanguageCode = 9,
- kanLanguageCode = 10,
- kokLanguageCode = 11,
- korLanguageCode = 12,
- kshLanguageCode = 13,
- malLanguageCode = 14,
- marLanguageCode = 15,
- mlrLanguageCode = 16,
- mniLanguageCode = 17,
- oriLanguageCode = 18,
- sanLanguageCode = 19,
- sndLanguageCode = 20,
- snhLanguageCode = 21,
- syrLanguageCode = 22,
- tamLanguageCode = 23,
- telLanguageCode = 24,
- thaLanguageCode = 25,
- urdLanguageCode = 26,
- zhpLanguageCode = 27,
- zhsLanguageCode = 28,
- zhtLanguageCode = 29,
-
- languageCodeCount = 30
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LEScripts.h b/Build/source/libs/icu-xetex/layout/LEScripts.h
deleted file mode 100644
index f8e7ac5b151..00000000000
--- a/Build/source/libs/icu-xetex/layout/LEScripts.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 08/21/2006 02:35:13 PM HST
- */
-
-#ifndef __LESCRIPTS_H
-#define __LESCRIPTS_H
-
-#include "LETypes.h"
-
-/**
- * \file
- * \brief C++ API: Constants for Unicode script values
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * Constants for Unicode script values, generated using
- * ICU4J's <code>UScript</code> class.
- *
- * @draft ICU 3.6
- */
-
-enum ScriptCodes {
- zyyyScriptCode = 0,
- qaaiScriptCode = 1,
- arabScriptCode = 2,
- armnScriptCode = 3,
- bengScriptCode = 4,
- bopoScriptCode = 5,
- cherScriptCode = 6,
- coptScriptCode = 7,
- cyrlScriptCode = 8,
- dsrtScriptCode = 9,
- devaScriptCode = 10,
- ethiScriptCode = 11,
- georScriptCode = 12,
- gothScriptCode = 13,
- grekScriptCode = 14,
- gujrScriptCode = 15,
- guruScriptCode = 16,
- haniScriptCode = 17,
- hangScriptCode = 18,
- hebrScriptCode = 19,
- hiraScriptCode = 20,
- kndaScriptCode = 21,
- kanaScriptCode = 22,
- khmrScriptCode = 23,
- laooScriptCode = 24,
- latnScriptCode = 25,
- mlymScriptCode = 26,
- mongScriptCode = 27,
- mymrScriptCode = 28,
- ogamScriptCode = 29,
- italScriptCode = 30,
- oryaScriptCode = 31,
- runrScriptCode = 32,
- sinhScriptCode = 33,
- syrcScriptCode = 34,
- tamlScriptCode = 35,
- teluScriptCode = 36,
- thaaScriptCode = 37,
- thaiScriptCode = 38,
- tibtScriptCode = 39,
- cansScriptCode = 40,
- yiiiScriptCode = 41,
- tglgScriptCode = 42,
- hanoScriptCode = 43,
- buhdScriptCode = 44,
- tagbScriptCode = 45,
- braiScriptCode = 46,
- cprtScriptCode = 47,
- limbScriptCode = 48,
- linbScriptCode = 49,
- osmaScriptCode = 50,
- shawScriptCode = 51,
- taleScriptCode = 52,
- ugarScriptCode = 53,
- hrktScriptCode = 54,
- bugiScriptCode = 55,
- glagScriptCode = 56,
- kharScriptCode = 57,
- syloScriptCode = 58,
- taluScriptCode = 59,
- tfngScriptCode = 60,
- xpeoScriptCode = 61,
- baliScriptCode = 62,
- batkScriptCode = 63,
- blisScriptCode = 64,
- brahScriptCode = 65,
- chamScriptCode = 66,
- cirtScriptCode = 67,
- cyrsScriptCode = 68,
- egydScriptCode = 69,
- egyhScriptCode = 70,
- egypScriptCode = 71,
- geokScriptCode = 72,
- hansScriptCode = 73,
- hantScriptCode = 74,
- hmngScriptCode = 75,
- hungScriptCode = 76,
- indsScriptCode = 77,
- javaScriptCode = 78,
- kaliScriptCode = 79,
- latfScriptCode = 80,
- latgScriptCode = 81,
- lepcScriptCode = 82,
- linaScriptCode = 83,
- mandScriptCode = 84,
- mayaScriptCode = 85,
- meroScriptCode = 86,
- nkooScriptCode = 87,
- orkhScriptCode = 88,
- permScriptCode = 89,
- phagScriptCode = 90,
- phnxScriptCode = 91,
- plrdScriptCode = 92,
- roroScriptCode = 93,
- saraScriptCode = 94,
- syreScriptCode = 95,
- syrjScriptCode = 96,
- syrnScriptCode = 97,
- tengScriptCode = 98,
- vaiiScriptCode = 99,
- vispScriptCode = 100,
- xsuxScriptCode = 101,
- zxxxScriptCode = 102,
- zzzzScriptCode = 103,
-
- scriptCodeCount = 104
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LESwaps.h b/Build/source/libs/icu-xetex/layout/LESwaps.h
deleted file mode 100644
index 974e7db346a..00000000000
--- a/Build/source/libs/icu-xetex/layout/LESwaps.h
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __LESWAPS_H
-#define __LESWAPS_H
-
-#include "LETypes.h"
-
-/**
- * \file
- * \brief C++ API: Endian independent access to data for LayoutEngine
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * A convenience macro which invokes the swapWord member function
- * from a concise call.
- *
- * @stable ICU 2.8
- */
-#if defined(U_IS_BIG_ENDIAN)
- #if U_IS_BIG_ENDIAN
- #define SWAPW(value) (value)
- #else
- #define SWAPW(value) LESwaps::swapWord(value)
- #endif
-#else
- #define SWAPW(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapWord(value))
-#endif
-
-/**
- * A convenience macro which invokes the swapLong member function
- * from a concise call.
- *
- * @stable ICU 2.8
- */
-#if defined(U_IS_BIG_ENDIAN)
- #if U_IS_BIG_ENDIAN
- #define SWAPL(value) (value)
- #else
- #define SWAPL(value) LESwaps::swapLong(value)
- #endif
-#else
- #define SWAPL(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapLong(value))
-#endif
-
-/**
- * This class is used to access data which stored in big endian order
- * regardless of the conventions of the platform. It has been designed
- * to automatically detect the endian-ness of the platform, so that a
- * compilation flag is not needed.
- *
- * All methods are static and inline in an attempt to induce the compiler
- * to do most of the calculations at compile time.
- *
- * @stable ICU 2.8
- */
-class U_LAYOUT_API LESwaps /* not : public UObject because all methods are static */ {
-public:
-
-#if !defined(U_IS_BIG_ENDIAN)
- /**
- * This method detects the endian-ness of the platform by
- * casting a pointer to a word to a pointer to a byte. On
- * big endian platforms the FF will be in the byte with the
- * lowest address. On little endian platforms, the FF will
- * be in the byte with the highest address.
- *
- * @return TRUE if the platform is big endian
- *
- * @stable ICU 2.8
- */
- static le_uint8 isBigEndian()
- {
- const le_uint16 word = 0xFF00;
-
- return *((le_uint8 *) &word);
- };
-#endif
-
- /**
- * This method does the byte swap required on little endian platforms
- * to correctly access a (16-bit) word.
- *
- * @param value - the word to be byte swapped
- *
- * @return the byte swapped word
- *
- * @stable ICU 2.8
- */
- static le_uint16 swapWord(le_uint16 value)
- {
- return (((le_uint8) (value >> 8)) | (value << 8));
- };
-
- /**
- * This method does the byte swapping required on little endian platforms
- * to correctly access a (32-bit) long.
- *
- * @param value - the long to be byte swapped
- *
- * @return the byte swapped long
- *
- * @stable ICU 2.8
- */
- static le_uint32 swapLong(le_uint32 value)
- {
- return swapWord((le_uint16) (value >> 16)) | (swapWord((le_uint16) value) << 16);
- };
-
-private:
- LESwaps() {} // private - forbid instantiation
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LETypes.h b/Build/source/libs/icu-xetex/layout/LETypes.h
deleted file mode 100644
index 51da9cb513c..00000000000
--- a/Build/source/libs/icu-xetex/layout/LETypes.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __LETYPES_H
-#define __LETYPES_H
-
-#if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION))
-#define LE_USE_CMEMORY
-#endif
-
-#include "unicode/utypes.h"
-#include "unicode/uobject.h"
-
-#ifdef LE_USE_CMEMORY
-#include "cmemory.h"
-#endif
-
-U_NAMESPACE_BEGIN
-
-/*!
- * \file
- * \brief Basic definitions for the ICU LayoutEngine
- */
-
-/**
- * A type used for signed, 32-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef int32_t le_int32;
-
-/**
- * A type used for unsigned, 32-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef uint32_t le_uint32;
-
-/**
- * A type used for signed, 16-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef int16_t le_int16;
-
-/**
- * A type used for unsigned, 16-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef uint16_t le_uint16;
-
-/**
- * A type used for signed, 8-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef int8_t le_int8;
-
-/**
- * A type used for unsigned, 8-bit integers.
- *
- * @stable ICU 2.4
- */
-typedef uint8_t le_uint8;
-
-
-/**
- * A type used for boolean values.
- *
- * @stable ICU 2.4
- */
-typedef UBool le_bool;
-
-#ifndef NULL
-/**
- * Used to represent empty pointers.
- *
- * @stable ICU 2.4
- */
-#define NULL 0
-#endif
-
-/**
- * Used for four character tags.
- *
- * @stable ICU 2.4
- */
-typedef le_uint32 LETag;
-
-/**
- * Used for 16-bit glyph indices as they're represented
- * in TrueType font tables.
- *
- * @stable ICU 3.2
- */
-typedef le_uint16 TTGlyphID;
-
-/**
- * Used for glyph indices. The low-order 16 bits are
- * the glyph ID within the font. The next 8 bits are
- * the sub-font ID within a compound font. The high-
- * order 8 bits are client defined. The LayoutEngine
- * will never change or look at the client defined bits.
- *
- * @stable ICU 3.2
- */
-typedef le_uint32 LEGlyphID;
-
-/**
- * Used to mask off the glyph ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_GLYPH_MASK 0x0000FFFF
-
-/**
- * Used to shift the glyph ID part of an LEGlyphID
- * into the low-order bits.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_GLYPH_SHIFT 0
-
-
-/**
- * Used to mask off the sub-font ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_SUB_FONT_MASK 0x00FF0000
-
-/**
- * Used to shift the sub-font ID part of an LEGlyphID
- * into the low-order bits.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_SUB_FONT_SHIFT 16
-
-
-/**
- * Used to mask off the client-defined part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_CLIENT_MASK 0xFF000000
-
-/**
- * Used to shift the sub-font ID part of an LEGlyphID
- * into the low-order bits.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_CLIENT_SHIFT 24
-
-
-/**
- * A convenience macro to get the Glyph ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_GET_GLYPH(gid) ((gid & LE_GLYPH_MASK) >> LE_GLYPH_SHIFT)
-
-/**
- * A convenience macro to get the sub-font ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_GET_SUB_FONT(gid) ((gid & LE_SUB_FONT_MASK) >> LE_SUB_FONT_SHIFT)
-
-/**
- * A convenience macro to get the client-defined part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_GET_CLIENT(gid) ((gid & LE_CLIENT_MASK) >> LE_CLIENT_SHIFT)
-
-
-/**
- * A convenience macro to set the Glyph ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_SET_GLYPH(gid, glyph) ((gid & ~LE_GLYPH_MASK) | ((glyph << LE_GLYPH_SHIFT) & LE_GLYPH_MASK))
-
-/**
- * A convenience macro to set the sub-font ID part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_SET_SUB_FONT(gid, font) ((gid & ~LE_SUB_FONT_MASK) | ((font << LE_SUB_FONT_SHIFT) & LE_SUB_FONT_MASK))
-
-/**
- * A convenience macro to set the client-defined part of an LEGlyphID.
- *
- * @see LEGlyphID
- * @stable ICU 3.2
- */
-#define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK))
-
-
-/**
- * Used to represent 16-bit Unicode code points.
- *
- * @stable ICU 2.4
- */
-typedef UChar LEUnicode16;
-
-/**
- * Used to represent 32-bit Unicode code points.
- *
- * @stable ICU 2.4
- */
-typedef UChar32 LEUnicode32;
-
-/**
- * Used to represent 16-bit Unicode code points.
- *
- * @deprecated since ICU 2.4. Use LEUnicode16 instead
- */
-typedef UChar LEUnicode;
-
-/**
- * Used to hold a pair of (x, y) values which represent a point.
- *
- * @stable ICU 2.4
- */
-struct LEPoint
-{
- /**
- * The x coordinate of the point.
- *
- * @stable ICU 2.4
- */
- float fX;
-
- /**
- * The y coordinate of the point.
- *
- * @stable ICU 2.4
- */
- float fY;
-};
-
-#ifndef XP_CPLUSPLUS
-/**
- * Used to hold a pair of (x, y) values which represent a point.
- *
- * @stable ICU 2.4
- */
-typedef struct LEPoint LEPoint;
-#endif
-
-
-/**
- * A convenience macro to get the length of an array.
- *
- * @internal
- */
-#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-
-#ifdef LE_USE_CMEMORY
-/**
- * A convenience macro for copying an array.
- *
- * @internal
- */
-#define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
-
-/**
- * Allocate an array of basic types. This is used to isolate the rest of
- * the LayoutEngine code from cmemory.h.
- *
- * @internal
- */
-#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
-
-/**
- * Re-allocate an array of basic types. This is used to isolate the rest of
- * the LayoutEngine code from cmemory.h.
- *
- * @internal
- */
-#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0])
-
- /**
- * Free an array of basic types. This is used to isolate the rest of
- * the LayoutEngine code from cmemory.h.
- *
- * @internal
- */
-#define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
-#endif
-
-/**
- * A macro to construct the four-letter tags used to
- * label TrueType tables, and for script, language and
- * feature tags in OpenType tables.
- *
- * WARNING: THIS MACRO WILL ONLY WORK CORRECTLY IF
- * THE ARGUMENT CHARACTERS ARE ASCII.
- *
- * @stable ICU 3.2
- */
-#define LE_MAKE_TAG(a, b, c, d) \
- (((le_uint32)(a) << 24) | \
- ((le_uint32)(b) << 16) | \
- ((le_uint32)(c) << 8) | \
- (le_uint32)(d))
-
-/**
- * This enumeration defines constants for the standard
- * TrueType, OpenType and AAT table tags.
- *
- * @stable ICU 3.2
- */
-enum LETableTags {
- LE_ACNT_TABLE_TAG = 0x61636E74UL, /**< 'acnt' */
- LE_AVAR_TABLE_TAG = 0x61766172UL, /**< 'avar' */
- LE_BASE_TABLE_TAG = 0x42415345UL, /**< 'BASE' */
- LE_BDAT_TABLE_TAG = 0x62646174UL, /**< 'bdat' */
- LE_BHED_TABLE_TAG = 0x62686564UL, /**< 'bhed' */
- LE_BLOC_TABLE_TAG = 0x626C6F63UL, /**< 'bloc' */
- LE_BSLN_TABLE_TAG = 0x62736C6EUL, /**< 'bsln' */
- LE_CFF__TABLE_TAG = 0x43464620UL, /**< 'CFF ' */
- LE_CMAP_TABLE_TAG = 0x636D6170UL, /**< 'cmap' */
- LE_CVAR_TABLE_TAG = 0x63766172UL, /**< 'cvar' */
- LE_CVT__TABLE_TAG = 0x63767420UL, /**< 'cvt ' */
- LE_DSIG_TABLE_TAG = 0x44534947UL, /**< 'DSIG' */
- LE_EBDT_TABLE_TAG = 0x45424454UL, /**< 'EBDT' */
- LE_EBLC_TABLE_TAG = 0x45424C43UL, /**< 'EBLC' */
- LE_EBSC_TABLE_TAG = 0x45425343UL, /**< 'EBSC' */
- LE_FDSC_TABLE_TAG = 0x66647363UL, /**< 'fdsc' */
- LE_FEAT_TABLE_TAG = 0x66656174UL, /**< 'feat' */
- LE_FMTX_TABLE_TAG = 0x666D7478UL, /**< 'fmtx' */
- LE_FPGM_TABLE_TAG = 0x6670676DUL, /**< 'fpgm' */
- LE_FVAR_TABLE_TAG = 0x66766172UL, /**< 'fvar' */
- LE_GASP_TABLE_TAG = 0x67617370UL, /**< 'gasp' */
- LE_GDEF_TABLE_TAG = 0x47444546UL, /**< 'GDEF' */
- LE_GLYF_TABLE_TAG = 0x676C7966UL, /**< 'glyf' */
- LE_GPOS_TABLE_TAG = 0x47504F53UL, /**< 'GPOS' */
- LE_GSUB_TABLE_TAG = 0x47535542UL, /**< 'GSUB' */
- LE_GVAR_TABLE_TAG = 0x67766172UL, /**< 'gvar' */
- LE_HDMX_TABLE_TAG = 0x68646D78UL, /**< 'hdmx' */
- LE_HEAD_TABLE_TAG = 0x68656164UL, /**< 'head' */
- LE_HHEA_TABLE_TAG = 0x68686561UL, /**< 'hhea' */
- LE_HMTX_TABLE_TAG = 0x686D7478UL, /**< 'hmtx' */
- LE_HSTY_TABLE_TAG = 0x68737479UL, /**< 'hsty' */
- LE_JUST_TABLE_TAG = 0x6A757374UL, /**< 'just' */
- LE_JSTF_TABLE_TAG = 0x4A535446UL, /**< 'JSTF' */
- LE_KERN_TABLE_TAG = 0x6B65726EUL, /**< 'kern' */
- LE_LCAR_TABLE_TAG = 0x6C636172UL, /**< 'lcar' */
- LE_LOCA_TABLE_TAG = 0x6C6F6361UL, /**< 'loca' */
- LE_LTSH_TABLE_TAG = 0x4C545348UL, /**< 'LTSH' */
- LE_MAXP_TABLE_TAG = 0x6D617870UL, /**< 'maxp' */
- LE_MORT_TABLE_TAG = 0x6D6F7274UL, /**< 'mort' */
- LE_MORX_TABLE_TAG = 0x6D6F7278UL, /**< 'morx' */
- LE_NAME_TABLE_TAG = 0x6E616D65UL, /**< 'name' */
- LE_OPBD_TABLE_TAG = 0x6F706264UL, /**< 'opbd' */
- LE_OS_2_TABLE_TAG = 0x4F532F32UL, /**< 'OS/2' */
- LE_PCLT_TABLE_TAG = 0x50434C54UL, /**< 'PCLT' */
- LE_POST_TABLE_TAG = 0x706F7374UL, /**< 'post' */
- LE_PREP_TABLE_TAG = 0x70726570UL, /**< 'prep' */
- LE_PROP_TABLE_TAG = 0x70726F70UL, /**< 'prop' */
- LE_TRAK_TABLE_TAG = 0x7472616BUL, /**< 'trak' */
- LE_VDMX_TABLE_TAG = 0x56444D58UL, /**< 'VDMX' */
- LE_VHEA_TABLE_TAG = 0x76686561UL, /**< 'vhea' */
- LE_VMTX_TABLE_TAG = 0x766D7478UL, /**< 'vmtx' */
- LE_VORG_TABLE_TAG = 0x564F5247UL, /**< 'VORG' */
- LE_ZAPF_TABLE_TAG = 0x5A617066UL /**< 'Zapf' */
-};
-
-/**
- * This enumeration defines constants for all
- * the common OpenType feature tags.
- *
- * @stable ICU 3.2
- */
-enum LEFeatureTags {
- LE_AALT_FEATURE_TAG = 0x61616C74UL, /**< 'aalt' */
- LE_ABVF_FEATURE_TAG = 0x61627666UL, /**< 'abvf' */
- LE_ABVM_FEATURE_TAG = 0x6162766DUL, /**< 'abvm' */
- LE_ABVS_FEATURE_TAG = 0x61627673UL, /**< 'abvs' */
- LE_AFRC_FEATURE_TAG = 0x61667263UL, /**< 'afrc' */
- LE_AKHN_FEATURE_TAG = 0x616B686EUL, /**< 'akhn' */
- LE_BLWF_FEATURE_TAG = 0x626C7766UL, /**< 'blwf' */
- LE_BLWM_FEATURE_TAG = 0x626C776DUL, /**< 'blwm' */
- LE_BLWS_FEATURE_TAG = 0x626C7773UL, /**< 'blws' */
- LE_CALT_FEATURE_TAG = 0x63616C74UL, /**< 'calt' */
- LE_CASE_FEATURE_TAG = 0x63617365UL, /**< 'case' */
- LE_CCMP_FEATURE_TAG = 0x63636D70UL, /**< 'ccmp' */
- LE_CLIG_FEATURE_TAG = 0x636C6967UL, /**< 'clig' */
- LE_CPSP_FEATURE_TAG = 0x63707370UL, /**< 'cpsp' */
- LE_CSWH_FEATURE_TAG = 0x63737768UL, /**< 'cswh' */
- LE_CURS_FEATURE_TAG = 0x63757273UL, /**< 'curs' */
- LE_C2SC_FEATURE_TAG = 0x63327363UL, /**< 'c2sc' */
- LE_C2PC_FEATURE_TAG = 0x63327063UL, /**< 'c2pc' */
- LE_DIST_FEATURE_TAG = 0x64697374UL, /**< 'dist' */
- LE_DLIG_FEATURE_TAG = 0x646C6967UL, /**< 'dlig' */
- LE_DNOM_FEATURE_TAG = 0x646E6F6DUL, /**< 'dnom' */
- LE_EXPT_FEATURE_TAG = 0x65787074UL, /**< 'expt' */
- LE_FALT_FEATURE_TAG = 0x66616C74UL, /**< 'falt' */
- LE_FIN2_FEATURE_TAG = 0x66696E32UL, /**< 'fin2' */
- LE_FIN3_FEATURE_TAG = 0x66696E33UL, /**< 'fin3' */
- LE_FINA_FEATURE_TAG = 0x66696E61UL, /**< 'fina' */
- LE_FRAC_FEATURE_TAG = 0x66726163UL, /**< 'frac' */
- LE_FWID_FEATURE_TAG = 0x66776964UL, /**< 'fwid' */
- LE_HALF_FEATURE_TAG = 0x68616C66UL, /**< 'half' */
- LE_HALN_FEATURE_TAG = 0x68616C6EUL, /**< 'haln' */
- LE_HALT_FEATURE_TAG = 0x68616C74UL, /**< 'halt' */
- LE_HIST_FEATURE_TAG = 0x68697374UL, /**< 'hist' */
- LE_HKNA_FEATURE_TAG = 0x686B6E61UL, /**< 'hkna' */
- LE_HLIG_FEATURE_TAG = 0x686C6967UL, /**< 'hlig' */
- LE_HNGL_FEATURE_TAG = 0x686E676CUL, /**< 'hngl' */
- LE_HWID_FEATURE_TAG = 0x68776964UL, /**< 'hwid' */
- LE_INIT_FEATURE_TAG = 0x696E6974UL, /**< 'init' */
- LE_ISOL_FEATURE_TAG = 0x69736F6CUL, /**< 'isol' */
- LE_ITAL_FEATURE_TAG = 0x6974616CUL, /**< 'ital' */
- LE_JALT_FEATURE_TAG = 0x6A616C74UL, /**< 'jalt' */
- LE_JP78_FEATURE_TAG = 0x6A703738UL, /**< 'jp78' */
- LE_JP83_FEATURE_TAG = 0x6A703833UL, /**< 'jp83' */
- LE_JP90_FEATURE_TAG = 0x6A703930UL, /**< 'jp90' */
- LE_KERN_FEATURE_TAG = 0x6B65726EUL, /**< 'kern' */
- LE_LFBD_FEATURE_TAG = 0x6C666264UL, /**< 'lfbd' */
- LE_LIGA_FEATURE_TAG = 0x6C696761UL, /**< 'liga' */
- LE_LJMO_FEATURE_TAG = 0x6C6A6D6FUL, /**< 'ljmo' */
- LE_LNUM_FEATURE_TAG = 0x6C6E756DUL, /**< 'lnum' */
- LE_LOCL_FEATURE_TAG = 0x6C6F636CUL, /**< 'locl' */
- LE_MARK_FEATURE_TAG = 0x6D61726BUL, /**< 'mark' */
- LE_MED2_FEATURE_TAG = 0x6D656432UL, /**< 'med2' */
- LE_MEDI_FEATURE_TAG = 0x6D656469UL, /**< 'medi' */
- LE_MGRK_FEATURE_TAG = 0x6D67726BUL, /**< 'mgrk' */
- LE_MKMK_FEATURE_TAG = 0x6D6B6D6BUL, /**< 'mkmk' */
- LE_MSET_FEATURE_TAG = 0x6D736574UL, /**< 'mset' */
- LE_NALT_FEATURE_TAG = 0x6E616C74UL, /**< 'nalt' */
- LE_NLCK_FEATURE_TAG = 0x6E6C636BUL, /**< 'nlck' */
- LE_NUKT_FEATURE_TAG = 0x6E756B74UL, /**< 'nukt' */
- LE_NUMR_FEATURE_TAG = 0x6E756D72UL, /**< 'numr' */
- LE_ONUM_FEATURE_TAG = 0x6F6E756DUL, /**< 'onum' */
- LE_OPBD_FEATURE_TAG = 0x6F706264UL, /**< 'opbd' */
- LE_ORDN_FEATURE_TAG = 0x6F72646EUL, /**< 'ordn' */
- LE_ORNM_FEATURE_TAG = 0x6F726E6DUL, /**< 'ornm' */
- LE_PALT_FEATURE_TAG = 0x70616C74UL, /**< 'palt' */
- LE_PCAP_FEATURE_TAG = 0x70636170UL, /**< 'pcap' */
- LE_PNUM_FEATURE_TAG = 0x706E756DUL, /**< 'pnum' */
- LE_PREF_FEATURE_TAG = 0x70726566UL, /**< 'pref' */
- LE_PRES_FEATURE_TAG = 0x70726573UL, /**< 'pres' */
- LE_PSTF_FEATURE_TAG = 0x70737466UL, /**< 'pstf' */
- LE_PSTS_FEATURE_TAG = 0x70737473UL, /**< 'psts' */
- LE_PWID_FEATURE_TAG = 0x70776964UL, /**< 'pwid' */
- LE_QWID_FEATURE_TAG = 0x71776964UL, /**< 'qwid' */
- LE_RAND_FEATURE_TAG = 0x72616E64UL, /**< 'rand' */
- LE_RLIG_FEATURE_TAG = 0x726C6967UL, /**< 'rlig' */
- LE_RPHF_FEATURE_TAG = 0x72706866UL, /**< 'rphf' */
- LE_RTBD_FEATURE_TAG = 0x72746264UL, /**< 'rtbd' */
- LE_RTLA_FEATURE_TAG = 0x72746C61UL, /**< 'rtla' */
- LE_RUBY_FEATURE_TAG = 0x72756279UL, /**< 'ruby' */
- LE_SALT_FEATURE_TAG = 0x73616C74UL, /**< 'salt' */
- LE_SINF_FEATURE_TAG = 0x73696E66UL, /**< 'sinf' */
- LE_SIZE_FEATURE_TAG = 0x73697A65UL, /**< 'size' */
- LE_SMCP_FEATURE_TAG = 0x736D6370UL, /**< 'smcp' */
- LE_SMPL_FEATURE_TAG = 0x736D706CUL, /**< 'smpl' */
- LE_SS01_FEATURE_TAG = 0x73733031UL, /**< 'ss01' */
- LE_SS02_FEATURE_TAG = 0x73733032UL, /**< 'ss02' */
- LE_SS03_FEATURE_TAG = 0x73733033UL, /**< 'ss03' */
- LE_SS04_FEATURE_TAG = 0x73733034UL, /**< 'ss04' */
- LE_SS05_FEATURE_TAG = 0x73733035UL, /**< 'ss05' */
- LE_SS06_FEATURE_TAG = 0x73733036UL, /**< 'ss06' */
- LE_SS07_FEATURE_TAG = 0x73733037UL, /**< 'ss07' */
- LE_SS08_FEATURE_TAG = 0x73733038UL, /**< 'ss08' */
- LE_SS09_FEATURE_TAG = 0x73733039UL, /**< 'ss09' */
- LE_SS10_FEATURE_TAG = 0x73733130UL, /**< 'ss10' */
- LE_SS11_FEATURE_TAG = 0x73733131UL, /**< 'ss11' */
- LE_SS12_FEATURE_TAG = 0x73733132UL, /**< 'ss12' */
- LE_SS13_FEATURE_TAG = 0x73733133UL, /**< 'ss13' */
- LE_SS14_FEATURE_TAG = 0x73733134UL, /**< 'ss14' */
- LE_SS15_FEATURE_TAG = 0x73733135UL, /**< 'ss15' */
- LE_SS16_FEATURE_TAG = 0x73733136UL, /**< 'ss16' */
- LE_SS17_FEATURE_TAG = 0x73733137UL, /**< 'ss17' */
- LE_SS18_FEATURE_TAG = 0x73733138UL, /**< 'ss18' */
- LE_SS19_FEATURE_TAG = 0x73733139UL, /**< 'ss19' */
- LE_SS20_FEATURE_TAG = 0x73733230UL, /**< 'ss20' */
- LE_SUBS_FEATURE_TAG = 0x73756273UL, /**< 'subs' */
- LE_SUPS_FEATURE_TAG = 0x73757073UL, /**< 'sups' */
- LE_SWSH_FEATURE_TAG = 0x73777368UL, /**< 'swsh' */
- LE_TITL_FEATURE_TAG = 0x7469746CUL, /**< 'titl' */
- LE_TJMO_FEATURE_TAG = 0x746A6D6FUL, /**< 'tjmo' */
- LE_TNAM_FEATURE_TAG = 0x746E616DUL, /**< 'tnam' */
- LE_TNUM_FEATURE_TAG = 0x746E756DUL, /**< 'tnum' */
- LE_TRAD_FEATURE_TAG = 0x74726164UL, /**< 'trad' */
- LE_TWID_FEATURE_TAG = 0x74776964UL, /**< 'twid' */
- LE_UNIC_FEATURE_TAG = 0x756E6963UL, /**< 'unic' */
- LE_VALT_FEATURE_TAG = 0x76616C74UL, /**< 'valt' */
- LE_VATU_FEATURE_TAG = 0x76617475UL, /**< 'vatu' */
- LE_VERT_FEATURE_TAG = 0x76657274UL, /**< 'vert' */
- LE_VHAL_FEATURE_TAG = 0x7668616CUL, /**< 'vhal' */
- LE_VJMO_FEATURE_TAG = 0x766A6D6FUL, /**< 'vjmo' */
- LE_VKNA_FEATURE_TAG = 0x766B6E61UL, /**< 'vkna' */
- LE_VKRN_FEATURE_TAG = 0x766B726EUL, /**< 'vkrn' */
- LE_VPAL_FEATURE_TAG = 0x7670616CUL, /**< 'vpal' */
- LE_VRT2_FEATURE_TAG = 0x76727432UL, /**< 'vrt2' */
- LE_ZERO_FEATURE_TAG = 0x7A65726FUL /**< 'zero' */
-};
-
-/**
- * Error codes returned by the LayoutEngine.
- *
- * @stable ICU 2.4
- */
-enum LEErrorCode {
- /* informational */
- LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */
-
- /* success */
- LE_NO_ERROR = U_ZERO_ERROR, /**< No error, no warning. */
-
- /* failures */
- LE_ILLEGAL_ARGUMENT_ERROR = U_ILLEGAL_ARGUMENT_ERROR, /**< An illegal argument was detected. */
- LE_MEMORY_ALLOCATION_ERROR = U_MEMORY_ALLOCATION_ERROR, /**< Memory allocation error. */
- LE_INDEX_OUT_OF_BOUNDS_ERROR = U_INDEX_OUTOFBOUNDS_ERROR, /**< Trying to access an index that is out of bounds. */
- LE_NO_LAYOUT_ERROR = U_UNSUPPORTED_ERROR, /**< You must call layoutChars() first. */
- LE_INTERNAL_ERROR = U_INTERNAL_PROGRAM_ERROR, /**< An internal error was encountered. */
- LE_FONT_FILE_NOT_FOUND_ERROR = U_FILE_ACCESS_ERROR, /**< The requested font file cannot be opened. */
- LE_MISSING_FONT_TABLE_ERROR = U_MISSING_RESOURCE_ERROR /**< The requested font table does not exist. */
-};
-
-#ifndef XP_CPLUSPLUS
-/**
- * Error codes returned by the LayoutEngine.
- *
- * @stable ICU 2.4
- */
-typedef enum LEErrorCode LEErrorCode;
-#endif
-
-/**
- * A convenience macro to test for the success of a LayoutEngine call.
- *
- * @stable ICU 2.4
- */
-#define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
-
-/**
- * A convenience macro to test for the failure of a LayoutEngine call.
- *
- * @stable ICU 2.4
- */
-#define LE_FAILURE(code) (U_FAILURE((UErrorCode)code))
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp
deleted file mode 100644
index 381460c067f..00000000000
--- a/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp
+++ /dev/null
@@ -1,578 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LELanguages.h"
-
-#include "LayoutEngine.h"
-#include "ArabicLayoutEngine.h"
-#include "CanonShaping.h"
-#include "HanLayoutEngine.h"
-#include "HangulLayoutEngine.h"
-#include "IndicLayoutEngine.h"
-#include "KhmerLayoutEngine.h"
-#include "ThaiLayoutEngine.h"
-#include "TibetanLayoutEngine.h"
-#include "GXLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "CharSubstitutionFilter.h"
-
-#include "LEGlyphStorage.h"
-
-#include "OpenTypeUtilities.h"
-#include "GlyphSubstitutionTables.h"
-#include "MorphTables.h"
-
-#include "DefaultCharMapper.h"
-
-#include "KernTable.h"
-
-U_NAMESPACE_BEGIN
-
-const LEUnicode32 DefaultCharMapper::controlChars[] = {
- 0x0009, 0x000A, 0x000D,
- /*0x200C, 0x200D,*/ 0x200E, 0x200F,
- 0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, 0x202E,
- 0x206A, 0x206B, 0x206C, 0x206D, 0x206E, 0x206F
-};
-
-const le_int32 DefaultCharMapper::controlCharsCount = LE_ARRAY_SIZE(controlChars);
-
-LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
-{
- if (fFilterControls) {
- le_int32 index = OpenTypeUtilities::search((le_uint32)ch, (le_uint32 *)controlChars, controlCharsCount);
-
- if (controlChars[index] == ch) {
- return 0xFFFF;
- }
- }
-
- if (fMirror) {
- le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)DefaultCharMapper::mirroredChars, DefaultCharMapper::mirroredCharsCount);
-
- if (mirroredChars[index] == ch) {
- return DefaultCharMapper::srahCderorrim[index];
- }
- }
-
- return ch;
-}
-
-// This is here to get it out of LEGlyphFilter.h.
-// No particular reason to put it here, other than
-// this is a good central location...
-LEGlyphFilter::~LEGlyphFilter()
-{
- // nothing to do
-}
-
-CharSubstitutionFilter::CharSubstitutionFilter(const LEFontInstance *fontInstance)
- : fFontInstance(fontInstance)
-{
- // nothing to do
-}
-
-CharSubstitutionFilter::~CharSubstitutionFilter()
-{
- // nothing to do
-}
-
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LayoutEngine)
-
-#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-
-#define ccmpFeatureMask 0x80000000UL
-
-#define canonFeatures (ccmpFeatureMask)
-
-static const FeatureMap canonFeatureMap[] =
-{
- {ccmpFeatureTag, ccmpFeatureMask}
-};
-
-static const le_int32 canonFeatureMapCount = LE_ARRAY_SIZE(canonFeatureMap);
-
-LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode), fLanguageCode(languageCode),
- fTypoFlags(typoFlags)
-{
- fGlyphStorage = new LEGlyphStorage();
-}
-
-le_int32 LayoutEngine::getGlyphCount() const
-{
- return fGlyphStorage->getGlyphCount();
-}
-
-void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
-{
- fGlyphStorage->getCharIndices(charIndices, indexBase, success);
-}
-
-void LayoutEngine::getCharIndices(le_int32 charIndices[], LEErrorCode &success) const
-{
- fGlyphStorage->getCharIndices(charIndices, success);
-}
-
-// Copy the glyphs into caller's (32-bit) glyph array, OR in extraBits
-void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
-{
- fGlyphStorage->getGlyphs(glyphs, extraBits, success);
-}
-
-void LayoutEngine::getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const
-{
- fGlyphStorage->getGlyphs(glyphs, success);
-}
-
-
-void LayoutEngine::getGlyphPositions(float positions[], LEErrorCode &success) const
-{
- fGlyphStorage->getGlyphPositions(positions, success);
-}
-
-void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
-{
- fGlyphStorage->getGlyphPosition(glyphIndex, x, y, success);
-}
-
-le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- const GlyphSubstitutionTableHeader *canonGSUBTable = (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
- LETag scriptTag = OpenTypeLayoutEngine::getScriptTag(fScriptCode);
- LETag langSysTag = OpenTypeLayoutEngine::getLangSysTag(fLanguageCode);
- le_int32 i, dir = 1, out = 0, outCharCount = count;
-
- if (canonGSUBTable->coversScript(scriptTag)) {
- CharSubstitutionFilter *substitutionFilter = new CharSubstitutionFilter(fFontInstance);
- const LEUnicode *inChars = &chars[offset];
- LEUnicode *reordered = NULL;
- LEGlyphStorage fakeGlyphStorage;
-
- fakeGlyphStorage.allocateGlyphArray(count, rightToLeft, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- // This is the cheapest way to get mark reordering only for Hebrew.
- // We could just do the mark reordering for all scripts, but most
- // of them probably don't need it...
- if (fScriptCode == hebrScriptCode) {
- reordered = LE_NEW_ARRAY(LEUnicode, count);
-
- if (reordered == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, reordered, fakeGlyphStorage);
- inChars = reordered;
- }
-
- fakeGlyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (rightToLeft) {
- out = count - 1;
- dir = -1;
- }
-
- for (i = 0; i < count; i += 1, out += dir) {
- fakeGlyphStorage[out] = (LEGlyphID) inChars[i];
- fakeGlyphStorage.setAuxData(out, canonFeatures, NULL, success);
- }
-
- if (reordered != NULL) {
- LE_DELETE_ARRAY(reordered);
- }
-
- outCharCount = canonGSUBTable->process(fakeGlyphStorage, rightToLeft, scriptTag, langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
-
- out = (rightToLeft? outCharCount - 1 : 0);
-
- outChars = LE_NEW_ARRAY(LEUnicode, outCharCount);
- for (i = 0; i < outCharCount; i += 1, out += dir) {
- outChars[out] = (LEUnicode) LE_GET_GLYPH(fakeGlyphStorage[i]);
- }
-
- delete substitutionFilter;
- }
-
- return outCharCount;
-}
-
-le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- LEUnicode *outChars = NULL;
- le_int32 outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
-
- if (outChars != NULL) {
- mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft, TRUE, glyphStorage, success);
- LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
- } else {
- mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, TRUE, glyphStorage, success);
- }
-
- return glyphStorage.getGlyphCount();
-}
-
-// Input: glyphs
-// Output: positions
-void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- glyphStorage.allocatePositions(success);
-
- if (LE_FAILURE(success)) {
- return;
- }
-
- le_int32 i, glyphCount = glyphStorage.getGlyphCount();
-
- for (i = 0; i < glyphCount; i += 1) {
- LEPoint advance;
-
- glyphStorage.setPosition(i, x, y, success);
-
- fFontInstance->getGlyphAdvance(glyphStorage[i], advance);
- x += advance.fX;
- y += advance.fY;
- }
-
- glyphStorage.setPosition(glyphCount, x, y, success);
-}
-
-void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool /*reverse*/,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (fTypoFlags & 0x1) { /* kerning enabled */
- static const le_uint32 kernTableTag = LE_KERN_TABLE_TAG;
- const void* kernTableData = getFontTable(kernTableTag);
- if (kernTableData != NULL) {
- KernTable kt(fFontInstance, getFontTable(kernTableTag));
- kt.process(glyphStorage);
- }
- else { /* no 'kern' table, but the font might know kern pairs from an AFM file, for instance */
- float xAdjust = 0.0, yAdjust = 0.0;
- LEGlyphID leftGlyph = glyphStorage.getGlyphID(0, success);
- for (le_int32 i = 1; i < glyphStorage.getGlyphCount(); ++i) {
- LEGlyphID rightGlyph = glyphStorage.getGlyphID(i, success);
- LEPoint kern;
- fFontInstance->getKernPair(leftGlyph, rightGlyph, kern);
- xAdjust += fFontInstance->xUnitsToPoints(kern.fX);
- yAdjust += fFontInstance->yUnitsToPoints(kern.fY);
- glyphStorage.adjustPosition(i, xAdjust, yAdjust, success);
- leftGlyph = rightGlyph;
- }
- glyphStorage.adjustPosition(glyphStorage.getGlyphCount(), xAdjust, yAdjust, success);
- }
- }
-
- // default is no adjustments
- return;
-}
-
-void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
-{
- float xAdjust = 0;
- le_int32 p, glyphCount = glyphStorage.getGlyphCount();
-
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (markFilter == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- float ignore, prev;
-
- glyphStorage.getGlyphPosition(0, prev, ignore, success);
-
- for (p = 0; p < glyphCount; p += 1) {
- float next, xAdvance;
-
- glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
-
- xAdvance = next - prev;
- glyphStorage.adjustPosition(p, xAdjust, 0, success);
-
- if (markFilter->accept(glyphStorage[p])) {
- xAdjust -= xAdvance;
- }
-
- prev = next;
- }
-
- glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
-}
-
-void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
-{
- float xAdjust = 0;
- le_int32 c = 0, direction = 1, p;
- le_int32 glyphCount = glyphStorage.getGlyphCount();
-
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (markFilter == NULL) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- if (reverse) {
- c = glyphCount - 1;
- direction = -1;
- }
-
- float ignore, prev;
-
- glyphStorage.getGlyphPosition(0, prev, ignore, success);
-
- for (p = 0; p < charCount; p += 1, c += direction) {
- float next, xAdvance;
-
- glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
-
- xAdvance = next - prev;
- glyphStorage.adjustPosition(p, xAdjust, 0, success);
-
- if (markFilter->accept(chars[c])) {
- xAdjust -= xAdvance;
- }
-
- prev = next;
- }
-
- glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
-}
-
-const void *LayoutEngine::getFontTable(LETag tableTag) const
-{
- return fFontInstance->getFontTable(tableTag);
-}
-
-void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- glyphStorage.allocateGlyphArray(count, reverse, success);
-
- DefaultCharMapper charMapper(TRUE, mirror);
-
- fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse, &charMapper, filterZeroWidth, glyphStorage);
-}
-
-// Input: characters, font?
-// Output: glyphs, positions, char indices
-// Returns: number of glyphs
-le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- float x, float y, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 glyphCount;
-
- if (fGlyphStorage->getGlyphCount() > 0) {
- fGlyphStorage->reset();
- }
-
- glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
- positionGlyphs(*fGlyphStorage, x, y, success);
- adjustGlyphPositions(chars, offset, count, rightToLeft, *fGlyphStorage, success);
-
- return glyphCount;
-}
-
-void LayoutEngine::reset()
-{
- fGlyphStorage->reset();
-}
-
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
-{
- // 3 -> kerning and ligatures
- return LayoutEngine::layoutEngineFactory(fontInstance, scriptCode, languageCode, 3, success);
-}
-
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
-{
- static const le_uint32 gsubTableTag = LE_GSUB_TABLE_TAG;
- static const le_uint32 mortTableTag = LE_MORT_TABLE_TAG;
-
- if (LE_FAILURE(success)) {
- return NULL;
- }
-
- const GlyphSubstitutionTableHeader *gsubTable = (const GlyphSubstitutionTableHeader *) fontInstance->getFontTable(gsubTableTag);
- LayoutEngine *result = NULL;
- LETag scriptTag = 0x00000000;
- LETag languageTag = 0x00000000;
-
- if (gsubTable != NULL && gsubTable->coversScript(scriptTag = OpenTypeLayoutEngine::getScriptTag(scriptCode))) {
- switch (scriptCode) {
- case bengScriptCode:
- case devaScriptCode:
- case gujrScriptCode:
- case kndaScriptCode:
- case mlymScriptCode:
- case oryaScriptCode:
- case guruScriptCode:
- case tamlScriptCode:
- case teluScriptCode:
- case sinhScriptCode:
- result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
-
- case arabScriptCode:
- case syrcScriptCode:
- case mongScriptCode:
- result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
-
- case hangScriptCode:
- result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
-
- case haniScriptCode:
- languageTag = OpenTypeLayoutEngine::getLangSysTag(languageCode);
-
- switch (languageCode) {
- case korLanguageCode:
- case janLanguageCode:
- case zhtLanguageCode:
- case zhsLanguageCode:
- if (gsubTable->coversScriptAndLanguage(scriptTag, languageTag, TRUE)) {
- result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
- }
-
- // note: falling through to default case.
- default:
- result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
- }
-
- break;
-
- case tibtScriptCode:
- result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
-
- case khmrScriptCode:
- result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
-
- default:
- result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
- break;
- }
- } else {
- const MorphTableHeader *morphTable = (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
-
- if (morphTable != NULL) {
- result = new GXLayoutEngine(fontInstance, scriptCode, languageCode, morphTable);
- } else {
- switch (scriptCode) {
- case bengScriptCode:
- case devaScriptCode:
- case gujrScriptCode:
- case kndaScriptCode:
- case mlymScriptCode:
- case oryaScriptCode:
- case guruScriptCode:
- case tamlScriptCode:
- case teluScriptCode:
- case sinhScriptCode:
- {
- result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
- break;
- }
-
- case arabScriptCode:
- //case hebrScriptCode:
- result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
- break;
-
- //case hebrScriptCode:
- // return new HebrewOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
-
- case thaiScriptCode:
- result = new ThaiLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
- break;
-
- default:
- result = new LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
- break;
- }
- }
- }
-
- if (result == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- }
-
- return result;
-}
-
-LayoutEngine::~LayoutEngine() {
- delete fGlyphStorage;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LayoutEngine.h b/Build/source/libs/icu-xetex/layout/LayoutEngine.h
deleted file mode 100644
index 172d4e1798a..00000000000
--- a/Build/source/libs/icu-xetex/layout/LayoutEngine.h
+++ /dev/null
@@ -1,484 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#ifndef __LAYOUTENGINE_H
-#define __LAYOUTENGINE_H
-
-#include "LETypes.h"
-
-/**
- * \file
- * \brief C++ API: Virtual base class for complex text layout.
- */
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-class LEGlyphFilter;
-class LEGlyphStorage;
-
-/**
- * This is a virtual base class used to do complex text layout. The text must all
- * be in a single font, script, and language. An instance of a LayoutEngine can be
- * created by calling the layoutEngineFactory method. Fonts are identified by
- * instances of the LEFontInstance class. Script and language codes are identified
- * by integer codes, which are defined in ScriptAndLanuageTags.h.
- *
- * Note that this class is not public API. It is declared public so that it can be
- * exported from the library that it is a part of.
- *
- * The input to the layout process is an array of characters in logical order,
- * and a starting X, Y position for the text. The output is an array of glyph indices,
- * an array of character indices for the glyphs, and an array of glyph positions.
- * These arrays are protected members of LayoutEngine which can be retreived by a
- * public method. The reset method can be called to free these arrays so that the
- * LayoutEngine can be reused.
- *
- * The layout process is done in three steps. There is a protected virtual method
- * for each step. These methods have a default implementation which only does
- * character to glyph mapping and default positioning using the glyph's advance
- * widths. Subclasses can override these methods for more advanced layout.
- * There is a public method which invokes the steps in the correct order.
- *
- * The steps are:
- *
- * 1) Glyph processing - character to glyph mapping and any other glyph processing
- * such as ligature substitution and contextual forms.
- *
- * 2) Glyph positioning - position the glyphs based on their advance widths.
- *
- * 3) Glyph position adjustments - adjustment of glyph positions for kerning,
- * accent placement, etc.
- *
- * NOTE: in all methods below, output parameters are references to pointers so
- * the method can allocate and free the storage as needed. All storage allocated
- * in this way is owned by the object which created it, and will be freed when it
- * is no longer needed, or when the object's destructor is invoked.
- *
- * @see LEFontInstance
- * @see ScriptAndLanguageTags.h
- *
- * @stable ICU 2.8
- */
-class U_LAYOUT_API LayoutEngine : public UObject {
-protected:
- /**
- * The object which holds the glyph storage
- *
- * @internal
- */
- LEGlyphStorage *fGlyphStorage;
-
- /**
- * The font instance for the text font.
- *
- * @see LEFontInstance
- *
- * @internal
- */
- const LEFontInstance *fFontInstance;
-
- /**
- * The script code for the text
- *
- * @see ScriptAndLanguageTags.h for script codes.
- *
- * @internal
- */
- le_int32 fScriptCode;
-
- /**
- * The langauge code for the text
- *
- * @see ScriptAndLanguageTags.h for language codes.
- *
- * @internal
- */
- le_int32 fLanguageCode;
-
- /**
- * The typographic control flags
- *
- * @internal
- */
- le_int32 fTypoFlags;
-
- /**
- * This constructs an instance for a given font, script and language. Subclass constructors
- * must call this constructor.
- *
- * @param fontInstance - the font for the text
- * @param scriptCode - the script for the text
- * @param languageCode - the language for the text
- * @param typoFlags - the typographic control flags for the text. Set bit 1 if kerning
- * is desired, set bit 2 if ligature formation is desired. Others are reserved.
- *
- * @see LEFontInstance
- * @see ScriptAndLanguageTags.h
- *
- * @internal
- */
- LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
-
- /**
- * This overrides the default no argument constructor to make it
- * difficult for clients to call it. Clients are expected to call
- * layoutEngineFactory.
- *
- * @internal
- */
- LayoutEngine();
-
- /**
- * This method does any required pre-processing to the input characters. It
- * may generate output characters that differ from the input charcters due to
- * insertions, deletions, or reorderings. In such cases, it will also generate an
- * output character index array reflecting these changes.
- *
- * Subclasses must override this method.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the characters are in a right to left directional run
- * @param outChars - the output character array, if different from the input
- * @param glyphStorage - the object that holds the per-glyph storage. The character index array may be set.
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count (input character count if no change)
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method does the glyph processing. It converts an array of characters
- * into an array of glyph indices and character indices. The characters to be
- * processed are passed in a surrounding context. The context is specified as
- * a starting address and a maximum character count. An offset and a count are
- * used to specify the characters to be processed.
- *
- * The default implementation of this method only does character to glyph mapping.
- * Subclasses needing more elaborate glyph processing must override this method.
- *
- * Input parameters:
- * @param chars - the character context
- * @param offset - the offset of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the context.
- * @param rightToLeft - TRUE if the text is in a right to left directional run
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char indices arrays
- * will be set.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the glyph index array
- *
- * @internal
- */
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method does basic glyph positioning. The default implementation positions
- * the glyphs based on their advance widths. This is sufficient for most uses. It
- * is not expected that many subclasses will override this method.
- *
- * Input parameters:
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph position array will be set.
- * @param x - the starting X position
- * @param y - the starting Y position
- * @param success - set to an error code if the operation fails
- *
- * @internal
- */
- virtual void positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success);
-
- /**
- * This method does positioning adjustments like accent positioning and
- * kerning. The default implementation does nothing. Subclasses needing
- * position adjustments must override this method.
- *
- * Note that this method has both characters and glyphs as input so that
- * it can use the character codes to determine glyph types if that information
- * isn't directly available. (e.g. Some Arabic OpenType fonts don't have a GDEF
- * table)
- *
- * @param chars - the input character context
- * @param offset - the offset of the first character to process
- * @param count - the number of characters to process
- * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph positions will be
- * adjusted as needed.
- * @param success - output parameter set to an error code if the operation fails
- *
- * @internal
- */
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method gets a table from the font associated with
- * the text. The default implementation gets the table from
- * the font instance. Subclasses which need to get the tables
- * some other way must override this method.
- *
- * @param tableTag - the four byte table tag.
- *
- * @return the address of the table.
- *
- * @internal
- */
- virtual const void *getFontTable(LETag tableTag) const;
-
- /**
- * This method does character to glyph mapping. The default implementation
- * uses the font instance to do the mapping. It will allocate the glyph and
- * character index arrays if they're not already allocated. If it allocates the
- * character index array, it will fill it it.
- *
- * This method supports right to left
- * text with the ability to store the glyphs in reverse order, and by supporting
- * character mirroring, which will replace a character which has a left and right
- * form, such as parens, with the opposite form before mapping it to a glyph index.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the offset of the first character to be mapped
- * @param count - the number of characters to be mapped
- * @param reverse - if <code>TRUE</code>, the output will be in reverse order
- * @param mirror - if <code>TRUE</code>, do character mirroring
- * @param filterZeroWidth - if <code>TRUE</code> replace ZWJ / ZWNJ with a glyph with no contours.
- * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char
- * indices arrays will be filled in.
- * @param success - set to an error code if the operation fails
- *
- * @see LEFontInstance
- *
- * @internal
- */
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This is a convenience method that forces the advance width of mark
- * glyphs to be zero, which is required for proper selection and highlighting.
- *
- * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
- * @param markFilter - used to identify mark glyphs
- * @param success - output parameter set to an error code if the operation fails
- *
- * @see LEGlyphFilter
- *
- * @internal
- */
- static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
-
-
- /**
- * This is a convenience method that forces the advance width of mark
- * glyphs to be zero, which is required for proper selection and highlighting.
- * This method uses the input characters to identify marks. This is required in
- * cases where the font does not contain enough information to identify them based
- * on the glyph IDs.
- *
- * @param chars - the array of input characters
- * @param charCount - the number of input characers
- * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
- * @param reverse - <code>TRUE</code> if the glyph array has been reordered
- * @param markFilter - used to identify mark glyphs
- * @param success - output parameter set to an error code if the operation fails
- *
- * @see LEGlyphFilter
- *
- * @internal
- */
- static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
-
-
-public:
- /**
- * The destructor. It will free any storage allocated for the
- * glyph, character index and position arrays by calling the reset
- * method. It is declared virtual so that it will be invoked by the
- * subclass destructors.
- *
- * @stable ICU 2.8
- */
- virtual ~LayoutEngine();
-
- /**
- * This method will invoke the layout steps in their correct order by calling
- * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods. It will
- * compute the glyph, character index and position arrays.
- *
- * @param chars - the input character context
- * @param offset - the offset of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the characers are in a right to left directional run
- * @param x - the initial X position
- * @param y - the initial Y position
- * @param success - output parameter set to an error code if the operation fails
- *
- * @return the number of glyphs in the glyph array
- *
- * Note: The glyph, character index and position array can be accessed
- * using the getter methods below.
- *
- * Note: If you call this method more than once, you must call the reset()
- * method first to free the glyph, character index and position arrays
- * allocated by the previous call.
- *
- * @stable ICU 2.8
- */
- virtual le_int32 layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, float x, float y, LEErrorCode &success);
-
- /**
- * This method returns the number of glyphs in the glyph array. Note
- * that the number of glyphs will be greater than or equal to the number
- * of characters used to create the LayoutEngine.
- *
- * @return the number of glyphs in the glyph array
- *
- * @stable ICU 2.8
- */
- le_int32 getGlyphCount() const;
-
- /**
- * This method copies the glyph array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold all
- * the glyphs.
- *
- * @param glyphs - the destiniation glyph array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
-
- /**
- * This method copies the glyph array into a caller supplied array,
- * ORing in extra bits. (This functionality is needed by the JDK,
- * which uses 32 bits pre glyph idex, with the high 16 bits encoding
- * the composite font slot number)
- *
- * @param glyphs - the destination (32 bit) glyph array
- * @param extraBits - this value will be ORed with each glyph index
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
-
- /**
- * This method copies the character index array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold a
- * character index for each glyph.
- *
- * @param charIndices - the destiniation character index array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
-
- /**
- * This method copies the character index array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold a
- * character index for each glyph.
- *
- * @param charIndices - the destiniation character index array
- * @param indexBase - an offset which will be added to each index
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
-
- /**
- * This method copies the position array into a caller supplied array.
- * The caller must ensure that the array is large enough to hold an
- * X and Y position for each glyph, plus an extra X and Y for the
- * advance of the last glyph.
- *
- * @param positions - the destiniation position array
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- void getGlyphPositions(float positions[], LEErrorCode &success) const;
-
- /**
- * This method returns the X and Y position of the glyph at
- * the given index.
- *
- * Input parameters:
- * @param glyphIndex - the index of the glyph
- *
- * Output parameters:
- * @param x - the glyph's X position
- * @param y - the glyph's Y position
- * @param success - set to an error code if the operation fails
- *
- * @stable ICU 2.8
- */
- void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
-
- /**
- * This method frees the glyph, character index and position arrays
- * so that the LayoutEngine can be reused to layout a different
- * characer array. (This method is also called by the destructor)
- *
- * @stable ICU 2.8
- */
- virtual void reset();
-
- /**
- * This method returns a LayoutEngine capable of laying out text
- * in the given font, script and langauge. Note that the LayoutEngine
- * returned may be a subclass of LayoutEngine.
- *
- * @param fontInstance - the font of the text
- * @param scriptCode - the script of the text
- * @param languageCode - the language of the text
- * @param success - output parameter set to an error code if the operation fails
- *
- * @return a LayoutEngine which can layout text in the given font.
- *
- * @see LEFontInstance
- *
- * @stable ICU 2.8
- */
- static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
-
- /**
- * Override of existing call that provides flags to control typography.
- * @draft ICU 3.4
- */
- static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success);
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/LayoutTables.h b/Build/source/libs/icu-xetex/layout/LayoutTables.h
deleted file mode 100644
index fda5081c7a5..00000000000
--- a/Build/source/libs/icu-xetex/layout/LayoutTables.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LAYOUTTABLES_H
-#define __LAYOUTTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-#define ANY_NUMBER 1
-
-typedef le_int16 ByteOffset;
-typedef le_int16 WordOffset;
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstProc.cpp b/Build/source/libs/icu-xetex/layout/LigatureSubstProc.cpp
deleted file mode 100644
index 8df9a7861f3..00000000000
--- a/Build/source/libs/icu-xetex/layout/LigatureSubstProc.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "StateTables.h"
-#include "MorphStateTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "LigatureSubstProc.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-#define ExtendedComplement(m) ((le_int32) (~((le_uint32) (m))))
-#define SignBit(m) ((ExtendedComplement(m) >> 1) & (le_int32)(m))
-#define SignExtend(v,m) (((v) & SignBit(m))? ((v) | ExtendedComplement(m)): (v))
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LigatureSubstitutionProcessor)
-
-LigatureSubstitutionProcessor::LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : StateTableProcessor(morphSubtableHeader)
-{
- ligatureSubstitutionHeader = (const LigatureSubstitutionHeader *) morphSubtableHeader;
- ligatureActionTableOffset = SWAPW(ligatureSubstitutionHeader->ligatureActionTableOffset);
- componentTableOffset = SWAPW(ligatureSubstitutionHeader->componentTableOffset);
- ligatureTableOffset = SWAPW(ligatureSubstitutionHeader->ligatureTableOffset);
-
- entryTable = (const LigatureSubstitutionStateEntry *) ((char *) &stateTableHeader->stHeader + entryTableOffset);
-}
-
-LigatureSubstitutionProcessor::~LigatureSubstitutionProcessor()
-{
-}
-
-void LigatureSubstitutionProcessor::beginStateTable()
-{
- m = -1;
-}
-
-ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
-{
- const LigatureSubstitutionStateEntry *entry = &entryTable[index];
- ByteOffset newState = SWAPW(entry->newStateOffset);
- le_int16 flags = SWAPW(entry->flags);
-
- if (flags & lsfSetComponent) {
- if (++m >= nComponents) {
- m = 0;
- }
-
- componentStack[m] = currGlyph;
- }
-
- ByteOffset actionOffset = flags & lsfActionOffsetMask;
-
- if (actionOffset != 0) {
- const LigatureActionEntry *ap = (const LigatureActionEntry *) ((char *) &ligatureSubstitutionHeader->stHeader + actionOffset);
- LigatureActionEntry action;
- le_int32 offset, i = 0;
- le_int32 stack[nComponents];
- le_int16 mm = -1;
-
- do {
- le_uint32 componentGlyph = componentStack[m--];
-
- action = SWAPL(*ap++);
-
- if (m < 0) {
- m = nComponents - 1;
- }
-
- offset = action & lafComponentOffsetMask;
- if (offset != 0) {
- const le_int16 *offsetTable = (const le_int16 *)((char *) &ligatureSubstitutionHeader->stHeader + 2 * SignExtend(offset, lafComponentOffsetMask));
-
- i += SWAPW(offsetTable[LE_GET_GLYPH(glyphStorage[componentGlyph])]);
-
- if (action & (lafLast | lafStore)) {
- const TTGlyphID *ligatureOffset = (const TTGlyphID *) ((char *) &ligatureSubstitutionHeader->stHeader + i);
- TTGlyphID ligatureGlyph = SWAPW(*ligatureOffset);
-
- glyphStorage[componentGlyph] = LE_SET_GLYPH(glyphStorage[componentGlyph], ligatureGlyph);
- stack[++mm] = componentGlyph;
- i = 0;
- } else {
- glyphStorage[componentGlyph] = LE_SET_GLYPH(glyphStorage[componentGlyph], 0xFFFF);
- }
- }
- } while (!(action & lafLast));
-
- while (mm >= 0) {
- if (++m >= nComponents) {
- m = 0;
- }
-
- componentStack[m] = stack[mm--];
- }
- }
-
- if (!(flags & lsfDontAdvance)) {
- // should handle reverse too!
- currGlyph += 1;
- }
-
- return newState;
-}
-
-void LigatureSubstitutionProcessor::endStateTable()
-{
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstProc.h b/Build/source/libs/icu-xetex/layout/LigatureSubstProc.h
deleted file mode 100644
index ef5b1edb5fc..00000000000
--- a/Build/source/libs/icu-xetex/layout/LigatureSubstProc.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LIGATURESUBSTITUTIONPROCESSOR_H
-#define __LIGATURESUBSTITUTIONPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "LigatureSubstitution.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-#define nComponents 16
-
-class LigatureSubstitutionProcessor : public StateTableProcessor
-{
-public:
- virtual void beginStateTable();
-
- virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index);
-
- virtual void endStateTable();
-
- LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
- virtual ~LigatureSubstitutionProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- LigatureSubstitutionProcessor();
-
-protected:
- ByteOffset ligatureActionTableOffset;
- ByteOffset componentTableOffset;
- ByteOffset ligatureTableOffset;
-
- const LigatureSubstitutionStateEntry *entryTable;
-
- le_int32 componentStack[nComponents];
- le_int16 m;
-
- const LigatureSubstitutionHeader *ligatureSubstitutionHeader;
-
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp
deleted file mode 100644
index aea4dd98dd9..00000000000
--- a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "LigatureSubstSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- Offset ligSetTableOffset = SWAPW(ligSetTableOffsetArray[coverageIndex]);
- const LigatureSetTable *ligSetTable = (const LigatureSetTable *) ((char *) this + ligSetTableOffset);
- le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount);
-
- for (le_uint16 lig = 0; lig < ligCount; lig += 1) {
- Offset ligTableOffset = SWAPW(ligSetTable->ligatureTableOffsetArray[lig]);
- const LigatureTable *ligTable = (const LigatureTable *) ((char *)ligSetTable + ligTableOffset);
- le_uint16 compCount = SWAPW(ligTable->compCount) - 1;
- le_int32 startPosition = glyphIterator->getCurrStreamPosition();
- TTGlyphID ligGlyph = SWAPW(ligTable->ligGlyph);
- le_uint16 comp;
-
- if (filter != NULL && ! filter->accept(LE_SET_GLYPH(glyph, ligGlyph))) {
- continue;
- }
-
- for (comp = 0; comp < compCount; comp += 1) {
- if (! glyphIterator->next()) {
- break;
- }
-
- if (LE_GET_GLYPH(glyphIterator->getCurrGlyphID()) != SWAPW(ligTable->componentArray[comp])) {
- break;
- }
- }
-
- if (comp == compCount) {
- GlyphIterator tempIterator(*glyphIterator);
- TTGlyphID deletedGlyph = tempIterator.ignoresMarks()? 0xFFFE : 0xFFFF;
-
- while (comp > 0) {
- tempIterator.setCurrGlyphID(deletedGlyph);
- tempIterator.prev();
-
- comp -= 1;
- }
-
- tempIterator.setCurrGlyphID(ligGlyph);
-
- return compCount + 1;
- }
-
- glyphIterator->setCurrStreamPosition(startPosition);
- }
-
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.h b/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.h
deleted file mode 100644
index 423c95a663d..00000000000
--- a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LIGATURESUBSTITUTIONSUBTABLES_H
-#define __LIGATURESUBSTITUTIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct LigatureSetTable
-{
- le_uint16 ligatureCount;
- Offset ligatureTableOffsetArray[ANY_NUMBER];
-};
-
-struct LigatureTable
-{
- TTGlyphID ligGlyph;
- le_uint16 compCount;
- TTGlyphID componentArray[ANY_NUMBER];
-};
-
-struct LigatureSubstitutionSubtable : GlyphSubstitutionSubtable
-{
- le_uint16 ligSetCount;
- Offset ligSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstitution.h b/Build/source/libs/icu-xetex/layout/LigatureSubstitution.h
deleted file mode 100644
index 2963b7c1444..00000000000
--- a/Build/source/libs/icu-xetex/layout/LigatureSubstitution.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LIGATURESUBSTITUTION_H
-#define __LIGATURESUBSTITUTION_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "StateTables.h"
-#include "MorphTables.h"
-#include "MorphStateTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct LigatureSubstitutionHeader : MorphStateTableHeader
-{
- ByteOffset ligatureActionTableOffset;
- ByteOffset componentTableOffset;
- ByteOffset ligatureTableOffset;
-};
-
-enum LigatureSubstitutionFlags
-{
- lsfSetComponent = 0x8000,
- lsfDontAdvance = 0x4000,
- lsfActionOffsetMask = 0x3FFF
-};
-
-struct LigatureSubstitutionStateEntry : StateEntry
-{
-};
-
-typedef le_uint32 LigatureActionEntry;
-
-enum LigatureActionFlags
-{
- lafLast = 0x80000000,
- lafStore = 0x40000000,
- lafComponentOffsetMask = 0x3FFFFFFF
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp b/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp
deleted file mode 100644
index 107fd496480..00000000000
--- a/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeUtilities.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "Features.h"
-#include "Lookups.h"
-#include "ScriptAndLanguage.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 LookupProcessor::applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- le_uint16 lookupType = SWAPW(lookupTable->lookupType);
- le_uint16 subtableCount = SWAPW(lookupTable->subTableCount);
- le_int32 startPosition = glyphIterator->getCurrStreamPosition();
- le_uint32 delta;
-
- for (le_uint16 subtable = 0; subtable < subtableCount; subtable += 1) {
- const LookupSubtable *lookupSubtable = lookupTable->getLookupSubtable(subtable);
-
- delta = applySubtable(lookupSubtable, lookupType, glyphIterator, fontInstance);
-
- if (delta > 0) {
- return 1;
- }
-
- glyphIterator->setCurrStreamPosition(startPosition);
- }
-
- return 1;
-}
-
-le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
- le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance) const
-{
- le_int32 glyphCount = glyphStorage.getGlyphCount();
-
- if (lookupSelectArray == NULL) {
- return glyphCount;
- }
-
- GlyphIterator glyphIterator(glyphStorage, glyphPositionAdjustments,
- rightToLeft, 0, 0, glyphDefinitionTableHeader);
- le_int32 newGlyphCount = glyphCount;
-
- for (le_uint16 order = 0; order < lookupOrderCount; order += 1) {
- le_uint16 lookup = lookupOrderArray[order];
- FeatureMask selectMask = lookupSelectArray[lookup];
-
- if (selectMask != 0) {
- const LookupTable *lookupTable = lookupListTable->getLookupTable(lookup);
- le_uint16 lookupFlags = SWAPW(lookupTable->lookupFlags);
-
- glyphIterator.reset(lookupFlags, selectMask);
-
- while (glyphIterator.findFeatureTag()) {
- le_uint32 delta = 1;
-
- while (glyphIterator.next(delta)) {
- delta = applyLookupTable(lookupTable, &glyphIterator, fontInstance);
- }
- }
-
- newGlyphCount = glyphIterator.applyInsertions();
- }
- }
-
- return newGlyphCount;
-}
-
-le_uint32 LookupProcessor::applySingleLookup(le_uint16 lookupTableIndex, GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- const LookupTable *lookupTable = lookupListTable->getLookupTable(lookupTableIndex);
- le_uint16 lookupFlags = SWAPW(lookupTable->lookupFlags);
- GlyphIterator tempIterator(*glyphIterator, lookupFlags);
- le_uint32 delta = applyLookupTable(lookupTable, &tempIterator, fontInstance);
-
- return delta;
-}
-
-le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order)
-{
- le_uint16 lookupCount = featureTable? SWAPW(featureTable->lookupCount) : 0;
- le_int32 store = order;
-
- for (le_uint16 lookup = 0; lookup < lookupCount; lookup += 1) {
- le_uint16 lookupListIndex = SWAPW(featureTable->lookupListIndexArray[lookup]);
-
- lookupSelectArray[lookupListIndex] |= featureMask;
- lookupOrderArray[store++] = lookupListIndex;
- }
-
- return store - order;
-}
-
-LookupProcessor::LookupProcessor(const char *baseAddress,
- Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures)
- : lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
- lookupOrderArray(NULL), lookupOrderCount(0)
-{
- const ScriptListTable *scriptListTable = NULL;
- const LangSysTable *langSysTable = NULL;
- le_uint16 featureCount = 0;
- le_uint16 lookupListCount = 0;
- le_uint16 requiredFeatureIndex;
-
- if (scriptListOffset != 0) {
- scriptListTable = (const ScriptListTable *) (baseAddress + scriptListOffset);
- langSysTable = scriptListTable->findLanguage(scriptTag, languageTag);
-
- if (langSysTable != 0) {
- featureCount = SWAPW(langSysTable->featureCount);
- }
- }
-
- if (featureListOffset != 0) {
- featureListTable = (const FeatureListTable *) (baseAddress + featureListOffset);
- }
-
- if (lookupListOffset != 0) {
- lookupListTable = (const LookupListTable *) (baseAddress + lookupListOffset);
- lookupListCount = SWAPW(lookupListTable->lookupCount);
- }
-
- if (langSysTable == NULL || featureListTable == NULL || lookupListTable == NULL ||
- featureCount == 0 || lookupListCount == 0) {
- return;
- }
-
- requiredFeatureIndex = SWAPW(langSysTable->reqFeatureIndex);
-
- lookupSelectArray = LE_NEW_ARRAY(FeatureMask, lookupListCount);
-
- for (int i = 0; i < lookupListCount; i += 1) {
- lookupSelectArray[i] = 0;
- }
-
- le_int32 count, order = 0;
- le_int32 featureReferences = 0;
- const FeatureTable *featureTable = NULL;
- LETag featureTag;
-
- const FeatureTable *requiredFeatureTable = NULL;
- LETag requiredFeatureTag = 0x00000000U;
-
- // Count the total number of lookups referenced by all features. This will
- // be the maximum number of entries in the lookupOrderArray. We can't use
- // lookupListCount because some lookups might be referenced by more than
- // one feature.
- for (le_int32 feature = 0; feature < featureCount; feature += 1) {
- le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
-
- featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
- featureReferences += SWAPW(featureTable->lookupCount);
- }
-
- if (requiredFeatureIndex != 0xFFFF) {
- requiredFeatureTable = featureListTable->getFeatureTable(requiredFeatureIndex, &requiredFeatureTag);
- featureReferences += SWAPW(featureTable->lookupCount);
- }
-
- lookupOrderArray = LE_NEW_ARRAY(le_uint16, featureReferences);
-
- for (le_int32 f = 0; f < featureMapCount; f += 1) {
- FeatureMap fm = featureMap[f];
- count = 0;
-
- // If this is the required feature, add its lookups
- if (requiredFeatureTag == fm.tag) {
- count += selectLookups(requiredFeatureTable, fm.mask, order);
- }
-
- if (orderFeatures) {
- // If we added lookups from the required feature, sort them
- if (count > 1) {
- OpenTypeUtilities::sort(lookupOrderArray, order);
- }
-
- for (le_uint16 feature = 0; feature < featureCount; feature += 1) {
- le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
-
- // don't add the required feature to the list more than once...
- // TODO: Do we need this check? (Spec. says required feature won't be in feature list...)
- if (featureIndex == requiredFeatureIndex) {
- continue;
- }
-
- featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
-
- if (featureTag == fm.tag) {
- count += selectLookups(featureTable, fm.mask, order + count);
- }
- }
-
- if (count > 1) {
- OpenTypeUtilities::sort(&lookupOrderArray[order], count);
- }
-
- order += count;
- } else {
- for (le_uint16 feature = 0; feature < featureCount; feature += 1) {
- le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
-
- // don't add the required feature to the list more than once...
- // NOTE: This check is commented out because the spec. says that
- // the required feature won't be in the feature list, and because
- // any duplicate entries will be removed below.
-#if 0
- if (featureIndex == requiredFeatureIndex) {
- continue;
- }
-#endif
-
- featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
-
- if (featureTag == fm.tag) {
- order += selectLookups(featureTable, fm.mask, order);
- }
- }
- }
- }
-
- if (!orderFeatures && (order > 1)) {
- OpenTypeUtilities::sort(lookupOrderArray, order);
-
- // If there's no specified feature order,
- // we will apply the lookups in the order
- // that they're in the font. If a particular
- // lookup may be referenced by more than one feature,
- // it will apprear in the lookupOrderArray more than
- // once, so remove any duplicate entries in the sorted array.
- le_int32 out = 1;
-
- for (le_int32 in = 1; in < order; in += 1) {
- if (lookupOrderArray[out - 1] != lookupOrderArray[in]) {
- if (out != in) {
- lookupOrderArray[out] = lookupOrderArray[in];
- }
-
- out += 1;
- }
- }
-
- order = out;
- }
-
- lookupOrderCount = order;
-}
-
-LookupProcessor::LookupProcessor()
-{
-}
-
-LookupProcessor::~LookupProcessor()
-{
- LE_DELETE_ARRAY(lookupOrderArray);
- LE_DELETE_ARRAY(lookupSelectArray);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LookupProcessor.h b/Build/source/libs/icu-xetex/layout/LookupProcessor.h
deleted file mode 100644
index bc05ae63b79..00000000000
--- a/Build/source/libs/icu-xetex/layout/LookupProcessor.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __LOOKUPPROCESSOR_H
-#define __LOOKUPPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-//#include "Lookups.h"
-//#include "Features.h"
-
-U_NAMESPACE_BEGIN
-
-class LEFontInstance;
-class LEGlyphStorage;
-class GlyphIterator;
-class GlyphPositionAdjustments;
-struct FeatureTable;
-struct FeatureListTable;
-struct GlyphDefinitionTableHeader;
-struct LookupSubtable;
-struct LookupTable;
-
-class LookupProcessor : public UMemory {
-public:
- le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
- le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance) const;
-
- le_uint32 applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-
- le_uint32 applySingleLookup(le_uint16 lookupTableIndex, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-
- virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 subtableType,
- GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const = 0;
-
- virtual ~LookupProcessor();
-
-protected:
- LookupProcessor(const char *baseAddress,
- Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
-
- LookupProcessor();
-
- le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
-
- const LookupListTable *lookupListTable;
- const FeatureListTable *featureListTable;
-
- FeatureMask *lookupSelectArray;
-
- le_uint16 *lookupOrderArray;
- le_uint32 lookupOrderCount;
-
-private:
-
- LookupProcessor(const LookupProcessor &other); // forbid copying of this class
- LookupProcessor &operator=(const LookupProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/LookupTables.cpp b/Build/source/libs/icu-xetex/layout/LookupTables.cpp
deleted file mode 100644
index 9766a8133cc..00000000000
--- a/Build/source/libs/icu-xetex/layout/LookupTables.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "LookupTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-/*
- These are the rolled-up versions of the uniform binary search.
- Someday, if we need more performance, we can un-roll them.
-
- Note: I put these in the base class, so they only have to
- be written once. Since the base class doesn't define the
- segment table, these routines assume that it's right after
- the binary search header.
-
- Another way to do this is to put each of these routines in one
- of the derived classes, and implement it in the others by casting
- the "this" pointer to the type that has the implementation.
-*/
-const LookupSegment *BinarySearchLookupTable::lookupSegment(const LookupSegment *segments, LEGlyphID glyph) const
-{
- le_int16 unity = SWAPW(unitSize);
- le_int16 probe = SWAPW(searchRange);
- le_int16 extra = SWAPW(rangeShift);
- TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(glyph);
- const LookupSegment *entry = segments;
- const LookupSegment *trial = (const LookupSegment *) ((char *) entry + extra);
-
- if (SWAPW(trial->lastGlyph) <= ttGlyph) {
- entry = trial;
- }
-
- while (probe > unity) {
- probe >>= 1;
- trial = (const LookupSegment *) ((char *) entry + probe);
-
- if (SWAPW(trial->lastGlyph) <= ttGlyph) {
- entry = trial;
- }
- }
-
- if (SWAPW(entry->firstGlyph) <= ttGlyph) {
- return entry;
- }
-
- return NULL;
-}
-
-const LookupSingle *BinarySearchLookupTable::lookupSingle(const LookupSingle *entries, LEGlyphID glyph) const
-{
- le_int16 unity = SWAPW(unitSize);
- le_int16 probe = SWAPW(searchRange);
- le_int16 extra = SWAPW(rangeShift);
- TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(glyph);
- const LookupSingle *entry = entries;
- const LookupSingle *trial = (const LookupSingle *) ((char *) entry + extra);
-
- if (SWAPW(trial->glyph) <= ttGlyph) {
- entry = trial;
- }
-
- while (probe > unity) {
- probe >>= 1;
- trial = (const LookupSingle *) ((char *) entry + probe);
-
- if (SWAPW(trial->glyph) <= ttGlyph) {
- entry = trial;
- }
- }
-
- if (SWAPW(entry->glyph) == ttGlyph) {
- return entry;
- }
-
- return NULL;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LookupTables.h b/Build/source/libs/icu-xetex/layout/LookupTables.h
deleted file mode 100644
index 5fa849940ca..00000000000
--- a/Build/source/libs/icu-xetex/layout/LookupTables.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __LOOKUPTABLES_H
-#define __LOOKUPTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-
-U_NAMESPACE_BEGIN
-
-enum LookupTableFormat
-{
- ltfSimpleArray = 0,
- ltfSegmentSingle = 2,
- ltfSegmentArray = 4,
- ltfSingleTable = 6,
- ltfTrimmedArray = 8
-};
-
-typedef le_int16 LookupValue;
-
-struct LookupTable
-{
- le_int16 format;
-};
-
-struct LookupSegment
-{
- TTGlyphID lastGlyph;
- TTGlyphID firstGlyph;
- LookupValue value;
-};
-
-struct LookupSingle
-{
- TTGlyphID glyph;
- LookupValue value;
-};
-
-struct BinarySearchLookupTable : LookupTable
-{
- le_int16 unitSize;
- le_int16 nUnits;
- le_int16 searchRange;
- le_int16 entrySelector;
- le_int16 rangeShift;
-
- const LookupSegment *lookupSegment(const LookupSegment *segments, LEGlyphID glyph) const;
-
- const LookupSingle *lookupSingle(const LookupSingle *entries, LEGlyphID glyph) const;
-};
-
-struct SimpleArrayLookupTable : LookupTable
-{
- LookupValue valueArray[ANY_NUMBER];
-};
-
-struct SegmentSingleLookupTable : BinarySearchLookupTable
-{
- LookupSegment segments[ANY_NUMBER];
-};
-
-struct SegmentArrayLookupTable : BinarySearchLookupTable
-{
- LookupSegment segments[ANY_NUMBER];
-};
-
-struct SingleTableLookupTable : BinarySearchLookupTable
-{
- LookupSingle entries[ANY_NUMBER];
-};
-
-struct TrimmedArrayLookupTable : LookupTable
-{
- TTGlyphID firstGlyph;
- TTGlyphID glyphCount;
- LookupValue valueArray[ANY_NUMBER];
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/Lookups.cpp b/Build/source/libs/icu-xetex/layout/Lookups.cpp
deleted file mode 100644
index 67f62952e9c..00000000000
--- a/Build/source/libs/icu-xetex/layout/Lookups.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "Lookups.h"
-#include "CoverageTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-const LookupTable *LookupListTable::getLookupTable(le_uint16 lookupTableIndex) const
-{
- if (lookupTableIndex >= SWAPW(lookupCount)) {
- return 0;
- }
-
- Offset lookupTableOffset = lookupTableOffsetArray[lookupTableIndex];
-
- return (const LookupTable *) ((char *) this + SWAPW(lookupTableOffset));
-}
-
-const LookupSubtable *LookupTable::getLookupSubtable(le_uint16 subtableIndex) const
-{
- if (subtableIndex >= SWAPW(subTableCount)) {
- return 0;
- }
-
- Offset subtableOffset = subTableOffsetArray[subtableIndex];
-
- return (const LookupSubtable *) ((char *) this + SWAPW(subtableOffset));
-}
-
-le_int32 LookupSubtable::getGlyphCoverage(Offset tableOffset, LEGlyphID glyphID) const
-{
- const CoverageTable *coverageTable = (const CoverageTable *) ((char *) this + SWAPW(tableOffset));
-
- return coverageTable->getGlyphCoverage(glyphID);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/Lookups.h b/Build/source/libs/icu-xetex/layout/Lookups.h
deleted file mode 100644
index 2316b573b81..00000000000
--- a/Build/source/libs/icu-xetex/layout/Lookups.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __LOOKUPS_H
-#define __LOOKUPS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-enum LookupFlags
-{
- lfBaselineIsLogicalEnd = 0x0001, // The MS spec. calls this flag "RightToLeft" but this name is more accurate
- lfIgnoreBaseGlyphs = 0x0002,
- lfIgnoreLigatures = 0x0004,
- lfIgnoreMarks = 0x0008,
- lfReservedMask = 0x00F0,
- lfMarkAttachTypeMask = 0xFF00,
- lfMarkAttachTypeShift = 8
-};
-
-struct LookupSubtable
-{
- le_uint16 subtableFormat;
- Offset coverageTableOffset;
-
- inline le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
-
- le_int32 getGlyphCoverage(Offset tableOffset, LEGlyphID glyphID) const;
-};
-
-struct LookupTable
-{
- le_uint16 lookupType;
- le_uint16 lookupFlags;
- le_uint16 subTableCount;
- Offset subTableOffsetArray[ANY_NUMBER];
-
- const LookupSubtable *getLookupSubtable(le_uint16 subtableIndex) const;
-};
-
-struct LookupListTable
-{
- le_uint16 lookupCount;
- Offset lookupTableOffsetArray[ANY_NUMBER];
-
- const LookupTable *getLookupTable(le_uint16 lookupTableIndex) const;
-};
-
-inline le_int32 LookupSubtable::getGlyphCoverage(LEGlyphID glyphID) const
-{
- return getGlyphCoverage(coverageTableOffset, glyphID);
-}
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/MPreFixups.cpp b/Build/source/libs/icu-xetex/layout/MPreFixups.cpp
deleted file mode 100644
index 75791eed02c..00000000000
--- a/Build/source/libs/icu-xetex/layout/MPreFixups.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 2002-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphStorage.h"
-#include "MPreFixups.h"
-
-U_NAMESPACE_BEGIN
-
-struct FixupData
-{
- le_int32 fBaseIndex;
- le_int32 fMPreIndex;
-};
-
-MPreFixups::MPreFixups(le_int32 charCount)
- : fFixupData(NULL), fFixupCount(0)
-{
- fFixupData = LE_NEW_ARRAY(FixupData, charCount);
-}
-
-MPreFixups::~MPreFixups()
-{
- LE_DELETE_ARRAY(fFixupData);
- fFixupData = NULL;
-}
-
-void MPreFixups::add(le_int32 baseIndex, le_int32 mpreIndex)
-{
- // NOTE: don't add the fixup data if the mpre is right
- // before the base consonant glyph.
- if (baseIndex - mpreIndex > 1) {
- fFixupData[fFixupCount].fBaseIndex = baseIndex;
- fFixupData[fFixupCount].fMPreIndex = mpreIndex;
-
- fFixupCount += 1;
- }
-}
-
-void MPreFixups::apply(LEGlyphStorage &glyphStorage)
-{
- for (le_int32 fixup = 0; fixup < fFixupCount; fixup += 1) {
- le_int32 baseIndex = fFixupData[fixup].fBaseIndex;
- le_int32 mpreIndex = fFixupData[fixup].fMPreIndex;
- le_int32 mpreLimit = mpreIndex + 1;
-
- while (glyphStorage[baseIndex] == 0xFFFF || glyphStorage[baseIndex] == 0xFFFE) {
- baseIndex -= 1;
- }
-
- while (glyphStorage[mpreLimit] == 0xFFFF || glyphStorage[mpreLimit] == 0xFFFE) {
- mpreLimit += 1;
- }
-
- if (mpreLimit == baseIndex) {
- continue;
- }
-
- LEErrorCode success = LE_NO_ERROR;
- le_int32 mpreCount = mpreLimit - mpreIndex;
- le_int32 moveCount = baseIndex - mpreLimit;
- le_int32 mpreDest = baseIndex - mpreCount;
- LEGlyphID *mpreSave = LE_NEW_ARRAY(LEGlyphID, mpreCount);
- le_int32 *indexSave = LE_NEW_ARRAY(le_int32, mpreCount);
- le_int32 i;
-
- for (i = 0; i < mpreCount; i += 1) {
- mpreSave[i] = glyphStorage[mpreIndex + i];
- indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success); //charIndices[mpreIndex + i];
- }
-
- for (i = 0; i < moveCount; i += 1) {
- LEGlyphID glyph = glyphStorage[mpreLimit + i];
- le_int32 charIndex = glyphStorage.getCharIndex(mpreLimit + i, success);
-
- glyphStorage[mpreIndex + i] = glyph;
- glyphStorage.setCharIndex(mpreIndex + i, charIndex, success);
- }
-
- for (i = 0; i < mpreCount; i += 1) {
- glyphStorage[mpreDest + i] = mpreSave[i];
- glyphStorage.setCharIndex(mpreDest, indexSave[i], success);
- }
-
- LE_DELETE_ARRAY(indexSave);
- LE_DELETE_ARRAY(mpreSave);
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MPreFixups.h b/Build/source/libs/icu-xetex/layout/MPreFixups.h
deleted file mode 100644
index 6053c088d29..00000000000
--- a/Build/source/libs/icu-xetex/layout/MPreFixups.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 2002-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MPREFIXUPS_H
-#define __MPREFIXUPS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-// Might want to make this a private member...
-struct FixupData;
-
-class MPreFixups : public UMemory
-{
-public:
- MPreFixups(le_int32 charCount);
- ~MPreFixups();
-
- void add(le_int32 baseIndex, le_int32 mpreIndex);
-
- void apply(LEGlyphStorage &glyphStorage);
-
-private:
- FixupData *fFixupData;
- le_int32 fFixupCount;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl b/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl
deleted file mode 100644
index 4062b403170..00000000000
--- a/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-#! /usr/bin/perl
-
-# script to create ShapingTypeData.cpp from UCD file DerivedJoiningType.txt
-# written by JK, 2007-01-16
-# This script may be distributed and used freely
-
-%types = (
- 'C' => 1,
- 'D' => 2,
- 'R' => 4,
- 'T' => 5
-);
-
-@ranges = ();
-
-sub addRange
-{
- my ($s, $e, $t) = @_;
-
- if ((scalar @ranges > 0)
- && ($ranges[$#ranges]->[2] == $t)
- && ($ranges[$#ranges]->[1] == $s - 1)) {
- $ranges[$#ranges]->[1] = $e;
- return;
- }
-
- push @ranges, [ $s, $e, $t ];
-}
-
-# read the DerivedJoiningType.txt file and remember all the ranges
-while (<>) {
- if (m/^([0-9A-F]{4})\s+; ([CDRT]) \#/) {
- # single codepoint
- $start = hex $1;
- $end = $start;
- $type = $types{$2};
- addRange($start, $end, $type);
- next;
- }
- if (m/^([0-9A-F]{4})\.\.([0-9A-F]{4})\s+; ([CDRT]) \#/) {
- # range of codes
- $start = hex $1;
- $end = hex $2;
- $type = $types{$3};
- addRange($start, $end, $type);
- next;
- }
-}
-
-# write the ShapingTypeData.cpp file
-
-$date = `date +"%F %T %Z"`;
-print <<__EOT__;
-/*
- *
- * (C) Copyright SIL International. 2007.
- * (C) Copyright IBM Corp. 1998-2005.
- * Based on code distributed with ICU 3.6
- * and the Unicode Character Database, version 5.0.0
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: $date
- */
-
-#include "LETypes.h"
-#include "ArabicShaping.h"
-
-U_NAMESPACE_BEGIN
-
-const le_uint8 ArabicShaping::shapingTypeTable[] = {
-__EOT__
-
-printf " 0x%02X, 0x%02X, /* classFormat */\n", 0, 2;
-printf " 0x%02X, 0x%02X, /* classRangeCount */\n",
- (scalar @ranges) / 256, (scalar @ranges) % 256;
-print join(",\n", map {
- sprintf " 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X",
- $_->[0] / 256, $_->[0] % 256,
- $_->[1] / 256, $_->[1] % 256,
- $_->[2] / 256, $_->[2] % 256,
- } sort { $a->[0] <=> $b->[0] } @ranges);
-
-print <<__EOT__;
-
-};
-
-U_NAMESPACE_END
-__EOT__
diff --git a/Build/source/libs/icu-xetex/layout/Makefile.in b/Build/source/libs/icu-xetex/layout/Makefile.in
deleted file mode 100644
index b1224521c9f..00000000000
--- a/Build/source/libs/icu-xetex/layout/Makefile.in
+++ /dev/null
@@ -1,232 +0,0 @@
-#******************************************************************************
-#
-# Copyright (C) 1999-2006, International Business Machines
-# Corporation and others. All Rights Reserved.
-#
-#******************************************************************************
-## Makefile.in for ICU - layout
-
-## Source directory information
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-
-top_builddir = ..
-
-## All the flags and other definitions are included here.
-include $(top_builddir)/icudefs.mk
-
-## Build directory information
-subdir = layout
-
-## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
-
-## Target information
-
-TARGET_STUBNAME=$(LAYOUT_STUBNAME)
-
-ifneq ($(ENABLE_STATIC),)
-TARGET = $(LIBDIR)/$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
-endif
-
-ifneq ($(ENABLE_SHARED),)
-SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
-
-ifeq ($(ENABLE_SO_VERSION_DATA),1)
-SO_VERSION_DATA = layout.res
-endif
-
-ifeq ($(OS390BATCH),1)
-BATCH_TARGET = $(BATCH_LAYOUT_TARGET)
-BATCH_LIBS = $(BATCH_LIBICUUC) -lm
-endif # OS390BATCH
-
-endif # ENABLE_SHARED
-
-ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
-
-DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
-DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
-DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-
-ifneq ($(top_builddir),$(top_srcdir))
-CPPFLAGS += -I$(top_builddir)/common
-endif
-CPPFLAGS += -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir)/common -I$(srcdir)/unicode $(LIBCPPFLAGS)
-DEFS += -DU_LAYOUT_IMPLEMENTATION
-LDFLAGS += $(LDFLAGSICULE)
-LIBS = $(LIBICUUC) $(DEFAULT_LIBS)
-
-OBJECTS = LEFontInstance.o \
-OpenTypeLayoutEngine.o \
-ThaiLayoutEngine.o \
-ThaiShaping.o \
-ThaiStateTables.o \
-ArabicLayoutEngine.o \
-GXLayoutEngine.o \
-HanLayoutEngine.o \
-IndicLayoutEngine.o \
-LayoutEngine.o \
-ContextualGlyphSubstProc.o \
-IndicRearrangementProcessor.o \
-LigatureSubstProc.o \
-LookupTables.o \
-MorphTables.o \
-NonContextualGlyphSubstProc.o \
-SegmentArrayProcessor.o \
-SegmentSingleProcessor.o \
-SimpleArrayProcessor.o \
-SingleTableProcessor.o \
-StateTableProcessor.o \
-SubtableProcessor.o \
-TrimmedArrayProcessor.o \
-AlternateSubstSubtables.o \
-AnchorTables.o \
-ArabicShaping.o \
-CanonData.o \
-CanonShaping.o \
-ClassDefinitionTables.o \
-ContextualSubstSubtables.o \
-CoverageTables.o \
-CursiveAttachmentSubtables.o \
-DeviceTables.o \
-ExtensionSubtables.o \
-Features.o \
-GDEFMarkFilter.o \
-GlyphDefinitionTables.o \
-GlyphIterator.o \
-GlyphLookupTables.o \
-GlyphPosnLookupProc.o \
-GlyphPositionAdjustments.o \
-GlyphPositioningTables.o \
-GlyphSubstLookupProc.o \
-GlyphSubstitutionTables.o \
-IndicClassTables.o \
-IndicReordering.o \
-LEInsertionList.o \
-LEGlyphStorage.o \
-LigatureSubstSubtables.o \
-LookupProcessor.o \
-Lookups.o \
-MarkArrays.o \
-MarkToBasePosnSubtables.o \
-MarkToLigaturePosnSubtables.o \
-MarkToMarkPosnSubtables.o \
-MirroredCharData.o \
-MPreFixups.o \
-MultipleSubstSubtables.o \
-OpenTypeUtilities.o \
-PairPositioningSubtables.o \
-ScriptAndLanguage.o \
-ScriptAndLanguageTags.o \
-ShapingTypeData.o \
-SinglePositioningSubtables.o \
-SingleSubstitutionSubtables.o \
-SubstitutionLookups.o \
-ValueRecords.o \
-KhmerLayoutEngine.o \
-KhmerReordering.o \
-TibetanLayoutEngine.o \
-TibetanReordering.o \
-HangulLayoutEngine.o \
-KernTable.o
-
-## Header files to install
-HEADERS= $(srcdir)/LayoutEngine.h $(srcdir)/LE*.h
-
-STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
-
-DEPS = $(OBJECTS:.o=.d)
-
--include Makefile.local
-
-## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local install-library install-headers dist \
-dist-local check check-local
-
-## Clear suffix list
-.SUFFIXES :
-
-## List of standard targets
-all: all-local
-install: install-local
-clean: clean-local
-distclean : distclean-local
-dist: dist-local
-check: all check-local
-
-all-local: $(ALL_TARGETS)
-
-install-local: install-headers install-library
-
-install-library: all-local
- $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
-ifneq ($(ENABLE_STATIC),)
- $(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)
-endif
-ifneq ($(ENABLE_SHARED),)
- $(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)
-ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET))
-ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
-endif
-endif
-endif
-ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
-ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
-endif
-ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
-endif
-endif
-
-install-headers:
- $(MKINSTALLDIRS) $(DESTDIR)$(includedir)/layout
- @for file in $(HEADERS); do \
- echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/layout"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/layout || exit; \
- done
-
-dist-local:
-
-clean-local:
- test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
- $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
-
-distclean-local: clean-local
- $(RMV) Makefile
-
-check-local:
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-ifneq ($(ENABLE_STATIC),)
-$(TARGET): $(TARGET)($(STATIC_OBJECTS))
- $(RANLIB) $@
-endif
-
-ifneq ($(ENABLE_SHARED),)
-$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
- $(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
-
-ifeq ($(OS390BATCH),1)
-$(BATCH_TARGET):$(OBJECTS)
- $(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
-endif # OS390BATCH
-endif # ENABLE_SHARED
-
-ifeq (,$(MAKECMDGOALS))
--include $(DEPS)
-else
-ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
--include $(DEPS)
-endif
-endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MarkArrays.cpp b/Build/source/libs/icu-xetex/layout/MarkArrays.cpp
deleted file mode 100644
index 47a06251e6d..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkArrays.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "AnchorTables.h"
-#include "MarkArrays.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_int32 MarkArray::getMarkClass(LEGlyphID glyphID, le_int32 coverageIndex, const LEFontInstance *fontInstance,
- LEPoint &anchor) const
-{
- le_int32 markClass = -1;
-
- if (coverageIndex >= 0) {
- le_uint16 mCount = SWAPW(markCount);
-
- if (coverageIndex < mCount) {
- const MarkRecord *markRecord = &markRecordArray[coverageIndex];
- Offset anchorTableOffset = SWAPW(markRecord->markAnchorTableOffset);
- const AnchorTable *anchorTable = (AnchorTable *) ((char *) this + anchorTableOffset);
-
- anchorTable->getAnchor(glyphID, fontInstance, anchor);
- markClass = SWAPW(markRecord->markClass);
- }
-
- // XXXX If we get here, the table is mal-formed
- }
-
- return markClass;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MarkArrays.h b/Build/source/libs/icu-xetex/layout/MarkArrays.h
deleted file mode 100644
index 66dca2ae688..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkArrays.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MARKARRAYS_H
-#define __MARKARRAYS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct MarkRecord
-{
- le_uint16 markClass;
- Offset markAnchorTableOffset;
-};
-
-struct MarkArray
-{
- le_uint16 markCount;
- MarkRecord markRecordArray[ANY_NUMBER];
-
- le_int32 getMarkClass(LEGlyphID glyphID, le_int32 coverageIndex, const LEFontInstance *fontInstance,
- LEPoint &anchor) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.cpp b/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.cpp
deleted file mode 100644
index 6843c4a1c80..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "AnchorTables.h"
-#include "MarkArrays.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "MarkToBasePosnSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-LEGlyphID MarkToBasePositioningSubtable::findBaseGlyph(GlyphIterator *glyphIterator) const
-{
- if (glyphIterator->prev()) {
- return glyphIterator->getCurrGlyphID();
- }
-
- return 0xFFFF;
-}
-
-le_int32 MarkToBasePositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID markGlyph = glyphIterator->getCurrGlyphID();
- le_int32 markCoverage = getGlyphCoverage((LEGlyphID) markGlyph);
-
- if (markCoverage < 0) {
- // markGlyph isn't a covered mark glyph
- return 0;
- }
-
- LEPoint markAnchor;
- const MarkArray *markArray = (const MarkArray *) ((char *) this + SWAPW(markArrayOffset));
- le_int32 markClass = markArray->getMarkClass(markGlyph, markCoverage, fontInstance, markAnchor);
- le_uint16 mcCount = SWAPW(classCount);
-
- if (markClass < 0 || markClass >= mcCount) {
- // markGlyph isn't in the mark array or its
- // mark class is too big. The table is mal-formed!
- return 0;
- }
-
- // FIXME: We probably don't want to find a base glyph before a previous ligature...
- GlyphIterator baseIterator(*glyphIterator, (le_uint16) (lfIgnoreMarks /*| lfIgnoreLigatures*/));
- LEGlyphID baseGlyph = findBaseGlyph(&baseIterator);
- le_int32 baseCoverage = getBaseCoverage((LEGlyphID) baseGlyph);
- const BaseArray *baseArray = (const BaseArray *) ((char *) this + SWAPW(baseArrayOffset));
- le_uint16 baseCount = SWAPW(baseArray->baseRecordCount);
-
- if (baseCoverage < 0 || baseCoverage >= baseCount) {
- // The base glyph isn't covered, or the coverage
- // index is too big. The latter means that the
- // table is mal-formed...
- return 0;
- }
-
- const BaseRecord *baseRecord = &baseArray->baseRecordArray[baseCoverage * mcCount];
- Offset anchorTableOffset = SWAPW(baseRecord->baseAnchorTableOffsetArray[markClass]);
- const AnchorTable *anchorTable = (const AnchorTable *) ((char *) baseArray + anchorTableOffset);
- LEPoint baseAnchor, markAdvance, pixels;
-
- if (anchorTableOffset == 0) {
- // this means the table is mal-formed...
- glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
- return 0;
- }
-
- anchorTable->getAnchor(baseGlyph, fontInstance, baseAnchor);
-
- fontInstance->getGlyphAdvance(markGlyph, pixels);
- fontInstance->pixelsToUnits(pixels, markAdvance);
-
- float anchorDiffX = baseAnchor.fX - markAnchor.fX;
- float anchorDiffY = baseAnchor.fY - markAnchor.fY;
-
- glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
-
- if (glyphIterator->isRightToLeft()) {
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
- } else {
- LEPoint baseAdvance;
-
- fontInstance->getGlyphAdvance(baseGlyph, pixels);
- fontInstance->pixelsToUnits(pixels, baseAdvance);
-
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - baseAdvance.fX, anchorDiffY - baseAdvance.fY, -markAdvance.fX, -markAdvance.fY);
- }
-
- return 1;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.h b/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.h
deleted file mode 100644
index aa7a0a1262c..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToBasePosnSubtables.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MARKTOBASEPOSITIONINGSUBTABLES_H
-#define __MARKTOBASEPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct MarkToBasePositioningSubtable : AttachmentPositioningSubtable
-{
- le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
- LEGlyphID findBaseGlyph(GlyphIterator *glyphIterator) const;
-};
-
-struct BaseRecord
-{
- Offset baseAnchorTableOffsetArray[ANY_NUMBER];
-};
-
-struct BaseArray
-{
- le_int16 baseRecordCount;
- BaseRecord baseRecordArray[ANY_NUMBER];
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.cpp b/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.cpp
deleted file mode 100644
index e247e4e5892..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "AnchorTables.h"
-#include "MarkArrays.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "MarkToLigaturePosnSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-LEGlyphID MarkToLigaturePositioningSubtable::findLigatureGlyph(GlyphIterator *glyphIterator) const
-{
- if (glyphIterator->prev()) {
- return glyphIterator->getCurrGlyphID();
- }
-
- return 0xFFFF;
-}
-
-le_int32 MarkToLigaturePositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID markGlyph = glyphIterator->getCurrGlyphID();
- le_int32 markCoverage = getGlyphCoverage((LEGlyphID) markGlyph);
-
- if (markCoverage < 0) {
- // markGlyph isn't a covered mark glyph
- return 0;
- }
-
- LEPoint markAnchor;
- const MarkArray *markArray = (const MarkArray *) ((char *) this + SWAPW(markArrayOffset));
- le_int32 markClass = markArray->getMarkClass(markGlyph, markCoverage, fontInstance, markAnchor);
- le_uint16 mcCount = SWAPW(classCount);
-
- if (markClass < 0 || markClass >= mcCount) {
- // markGlyph isn't in the mark array or its
- // mark class is too big. The table is mal-formed!
- return 0;
- }
-
- // FIXME: we probably don't want to find a ligature before a previous base glyph...
- GlyphIterator ligatureIterator(*glyphIterator, (le_uint16) (lfIgnoreMarks /*| lfIgnoreBaseGlyphs*/));
- LEGlyphID ligatureGlyph = findLigatureGlyph(&ligatureIterator);
- le_int32 ligatureCoverage = getBaseCoverage((LEGlyphID) ligatureGlyph);
- const LigatureArray *ligatureArray = (const LigatureArray *) ((char *) this + SWAPW(baseArrayOffset));
- le_uint16 ligatureCount = SWAPW(ligatureArray->ligatureCount);
-
- if (ligatureCoverage < 0 || ligatureCoverage >= ligatureCount) {
- // The ligature glyph isn't covered, or the coverage
- // index is too big. The latter means that the
- // table is mal-formed...
- return 0;
- }
-
- le_int32 markPosition = glyphIterator->getCurrStreamPosition();
- Offset ligatureAttachOffset = SWAPW(ligatureArray->ligatureAttachTableOffsetArray[ligatureCoverage]);
- const LigatureAttachTable *ligatureAttachTable = (const LigatureAttachTable *) ((char *) ligatureArray + ligatureAttachOffset);
- le_int32 componentCount = SWAPW(ligatureAttachTable->componentCount);
- le_int32 component = ligatureIterator.getMarkComponent(markPosition);
-
- if (component >= componentCount) {
- // should really just bail at this point...
- component = componentCount - 1;
- }
-
- const ComponentRecord *componentRecord = &ligatureAttachTable->componentRecordArray[component * mcCount];
- Offset anchorTableOffset = SWAPW(componentRecord->ligatureAnchorTableOffsetArray[markClass]);
- const AnchorTable *anchorTable = (const AnchorTable *) ((char *) ligatureAttachTable + anchorTableOffset);
- LEPoint ligatureAnchor, markAdvance, pixels;
-
- anchorTable->getAnchor(ligatureGlyph, fontInstance, ligatureAnchor);
-
- fontInstance->getGlyphAdvance(markGlyph, pixels);
- fontInstance->pixelsToUnits(pixels, markAdvance);
-
- float anchorDiffX = ligatureAnchor.fX - markAnchor.fX;
- float anchorDiffY = ligatureAnchor.fY - markAnchor.fY;
-
- glyphIterator->setCurrGlyphBaseOffset(ligatureIterator.getCurrStreamPosition());
-
- if (glyphIterator->isRightToLeft()) {
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
- } else {
- LEPoint ligatureAdvance;
-
- fontInstance->getGlyphAdvance(ligatureGlyph, pixels);
- fontInstance->pixelsToUnits(pixels, ligatureAdvance);
-
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - ligatureAdvance.fX, anchorDiffY - ligatureAdvance.fY, -markAdvance.fX, -markAdvance.fY);
- }
-
- return 1;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.h b/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.h
deleted file mode 100644
index b8e34d1dd78..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToLigaturePosnSubtables.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
-#define __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct MarkToLigaturePositioningSubtable : AttachmentPositioningSubtable
-{
- le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
- LEGlyphID findLigatureGlyph(GlyphIterator *glyphIterator) const;
-};
-
-struct ComponentRecord
-{
- Offset ligatureAnchorTableOffsetArray[ANY_NUMBER];
-};
-
-struct LigatureAttachTable
-{
- le_uint16 componentCount;
- ComponentRecord componentRecordArray[ANY_NUMBER];
-};
-
-struct LigatureArray
-{
- le_uint16 ligatureCount;
- Offset ligatureAttachTableOffsetArray[ANY_NUMBER];
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp b/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp
deleted file mode 100644
index 3f571f5e39c..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "AnchorTables.h"
-#include "MarkArrays.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "MarkToMarkPosnSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-LEGlyphID MarkToMarkPositioningSubtable::findMark2Glyph(GlyphIterator *glyphIterator) const
-{
- if (glyphIterator->findMark2Glyph()) {
- return glyphIterator->getCurrGlyphID();
- }
-
- return 0xFFFF;
-}
-
-le_int32 MarkToMarkPositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID markGlyph = glyphIterator->getCurrGlyphID();
- le_int32 markCoverage = getGlyphCoverage((LEGlyphID) markGlyph);
-
- if (markCoverage < 0) {
- // markGlyph isn't a covered mark glyph
- return 0;
- }
-
- LEPoint markAnchor;
- const MarkArray *markArray = (const MarkArray *) ((char *) this + SWAPW(markArrayOffset));
- le_int32 markClass = markArray->getMarkClass(markGlyph, markCoverage, fontInstance, markAnchor);
- le_uint16 mcCount = SWAPW(classCount);
-
- if (markClass < 0 || markClass >= mcCount) {
- // markGlyph isn't in the mark array or its
- // mark class is too big. The table is mal-formed!
- return 0;
- }
-
- GlyphIterator mark2Iterator(*glyphIterator);
- LEGlyphID mark2Glyph = findMark2Glyph(&mark2Iterator);
- le_int32 mark2Coverage = getBaseCoverage((LEGlyphID) mark2Glyph);
- const Mark2Array *mark2Array = (const Mark2Array *) ((char *) this + SWAPW(baseArrayOffset));
- le_uint16 mark2Count = SWAPW(mark2Array->mark2RecordCount);
-
- if (mark2Coverage < 0 || mark2Coverage >= mark2Count) {
- // The mark2 glyph isn't covered, or the coverage
- // index is too big. The latter means that the
- // table is mal-formed...
- return 0;
- }
-
- const Mark2Record *mark2Record = &mark2Array->mark2RecordArray[mark2Coverage * mcCount];
- Offset anchorTableOffset = SWAPW(mark2Record->mark2AnchorTableOffsetArray[markClass]);
- const AnchorTable *anchorTable = (const AnchorTable *) ((char *) mark2Array + anchorTableOffset);
- LEPoint mark2Anchor, markAdvance, pixels;
-
- if (anchorTableOffset == 0) {
- // this seems to mean that the marks don't attach...
- return 0;
- }
-
- anchorTable->getAnchor(mark2Glyph, fontInstance, mark2Anchor);
-
- fontInstance->getGlyphAdvance(markGlyph, pixels);
- fontInstance->pixelsToUnits(pixels, markAdvance);
-
- float anchorDiffX = mark2Anchor.fX - markAnchor.fX;
- float anchorDiffY = mark2Anchor.fY - markAnchor.fY;
-
- glyphIterator->setCurrGlyphBaseOffset(mark2Iterator.getCurrStreamPosition());
-
- if (glyphIterator->isRightToLeft()) {
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
- } else {
- LEPoint mark2Advance;
-
- fontInstance->getGlyphAdvance(mark2Glyph, pixels);
- fontInstance->pixelsToUnits(pixels, mark2Advance);
-
- glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - mark2Advance.fX, anchorDiffY - mark2Advance.fY, -markAdvance.fX, -markAdvance.fY);
- }
-
- return 1;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.h b/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.h
deleted file mode 100644
index 746ace2946d..00000000000
--- a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MARKTOMARKPOSITIONINGSUBTABLES_H
-#define __MARKTOMARKPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "AttachmentPosnSubtables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct MarkToMarkPositioningSubtable : AttachmentPositioningSubtable
-{
- le_int32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
- LEGlyphID findMark2Glyph(GlyphIterator *glyphIterator) const;
-};
-
-struct Mark2Record
-{
- Offset mark2AnchorTableOffsetArray[ANY_NUMBER];
-};
-
-struct Mark2Array
-{
- le_uint16 mark2RecordCount;
- Mark2Record mark2RecordArray[ANY_NUMBER];
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp b/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp
deleted file mode 100644
index b813371708f..00000000000
--- a/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 07/20/2005 10:43:59 AM PDT
- */
-
-#include "LETypes.h"
-#include "DefaultCharMapper.h"
-
-U_NAMESPACE_BEGIN
-
-const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
- 0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
- 0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
- 0x208D, 0x208E, 0x2208, 0x2209, 0x220A, 0x220B, 0x220C, 0x220D,
- 0x2215, 0x223C, 0x223D, 0x2243, 0x2252, 0x2253, 0x2254, 0x2255,
- 0x2264, 0x2265, 0x2266, 0x2267, 0x2268, 0x2269, 0x226A, 0x226B,
- 0x226E, 0x226F, 0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275,
- 0x2276, 0x2277, 0x2278, 0x2279, 0x227A, 0x227B, 0x227C, 0x227D,
- 0x227E, 0x227F, 0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285,
- 0x2286, 0x2287, 0x2288, 0x2289, 0x228A, 0x228B, 0x228F, 0x2290,
- 0x2291, 0x2292, 0x2298, 0x22A2, 0x22A3, 0x22A6, 0x22A8, 0x22A9,
- 0x22AB, 0x22B0, 0x22B1, 0x22B2, 0x22B3, 0x22B4, 0x22B5, 0x22B6,
- 0x22B7, 0x22C9, 0x22CA, 0x22CB, 0x22CC, 0x22CD, 0x22D0, 0x22D1,
- 0x22D6, 0x22D7, 0x22D8, 0x22D9, 0x22DA, 0x22DB, 0x22DC, 0x22DD,
- 0x22DE, 0x22DF, 0x22E0, 0x22E1, 0x22E2, 0x22E3, 0x22E4, 0x22E5,
- 0x22E6, 0x22E7, 0x22E8, 0x22E9, 0x22EA, 0x22EB, 0x22EC, 0x22ED,
- 0x22F0, 0x22F1, 0x22F2, 0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x22FA,
- 0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x2308, 0x2309, 0x230A, 0x230B,
- 0x2329, 0x232A, 0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D,
- 0x276E, 0x276F, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775,
- 0x27C3, 0x27C4, 0x27C5, 0x27C6, 0x27D5, 0x27D6, 0x27DD, 0x27DE,
- 0x27E2, 0x27E3, 0x27E4, 0x27E5, 0x27E6, 0x27E7, 0x27E8, 0x27E9,
- 0x27EA, 0x27EB, 0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988,
- 0x2989, 0x298A, 0x298B, 0x298C, 0x298D, 0x298E, 0x298F, 0x2990,
- 0x2991, 0x2992, 0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998,
- 0x29B8, 0x29C0, 0x29C1, 0x29C4, 0x29C5, 0x29CF, 0x29D0, 0x29D1,
- 0x29D2, 0x29D4, 0x29D5, 0x29D8, 0x29D9, 0x29DA, 0x29DB, 0x29F5,
- 0x29F8, 0x29F9, 0x29FC, 0x29FD, 0x2A2B, 0x2A2C, 0x2A2D, 0x2A2E,
- 0x2A34, 0x2A35, 0x2A3C, 0x2A3D, 0x2A64, 0x2A65, 0x2A79, 0x2A7A,
- 0x2A7D, 0x2A7E, 0x2A7F, 0x2A80, 0x2A81, 0x2A82, 0x2A83, 0x2A84,
- 0x2A8B, 0x2A8C, 0x2A91, 0x2A92, 0x2A93, 0x2A94, 0x2A95, 0x2A96,
- 0x2A97, 0x2A98, 0x2A99, 0x2A9A, 0x2A9B, 0x2A9C, 0x2AA1, 0x2AA2,
- 0x2AA6, 0x2AA7, 0x2AA8, 0x2AA9, 0x2AAA, 0x2AAB, 0x2AAC, 0x2AAD,
- 0x2AAF, 0x2AB0, 0x2AB3, 0x2AB4, 0x2ABB, 0x2ABC, 0x2ABD, 0x2ABE,
- 0x2ABF, 0x2AC0, 0x2AC1, 0x2AC2, 0x2AC3, 0x2AC4, 0x2AC5, 0x2AC6,
- 0x2ACD, 0x2ACE, 0x2ACF, 0x2AD0, 0x2AD1, 0x2AD2, 0x2AD3, 0x2AD4,
- 0x2AD5, 0x2AD6, 0x2ADE, 0x2AE3, 0x2AE4, 0x2AE5, 0x2AEC, 0x2AED,
- 0x2AF7, 0x2AF8, 0x2AF9, 0x2AFA, 0x2E02, 0x2E03, 0x2E04, 0x2E05,
- 0x2E09, 0x2E0A, 0x2E0C, 0x2E0D, 0x2E1C, 0x2E1D, 0x3008, 0x3009,
- 0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011,
- 0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301A, 0x301B,
- 0xFF08, 0xFF09, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D,
- 0xFF5F, 0xFF60, 0xFF62, 0xFF63
-};
-
-const LEUnicode32 DefaultCharMapper::srahCderorrim[] = {
- 0x0029, 0x0028, 0x003E, 0x003C, 0x005D, 0x005B, 0x007D, 0x007B,
- 0x00BB, 0x00AB, 0x203A, 0x2039, 0x2046, 0x2045, 0x207E, 0x207D,
- 0x208E, 0x208D, 0x220B, 0x220C, 0x220D, 0x2208, 0x2209, 0x220A,
- 0x29F5, 0x223D, 0x223C, 0x22CD, 0x2253, 0x2252, 0x2255, 0x2254,
- 0x2265, 0x2264, 0x2267, 0x2266, 0x2269, 0x2268, 0x226B, 0x226A,
- 0x226F, 0x226E, 0x2271, 0x2270, 0x2273, 0x2272, 0x2275, 0x2274,
- 0x2277, 0x2276, 0x2279, 0x2278, 0x227B, 0x227A, 0x227D, 0x227C,
- 0x227F, 0x227E, 0x2281, 0x2280, 0x2283, 0x2282, 0x2285, 0x2284,
- 0x2287, 0x2286, 0x2289, 0x2288, 0x228B, 0x228A, 0x2290, 0x228F,
- 0x2292, 0x2291, 0x29B8, 0x22A3, 0x22A2, 0x2ADE, 0x2AE4, 0x2AE3,
- 0x2AE5, 0x22B1, 0x22B0, 0x22B3, 0x22B2, 0x22B5, 0x22B4, 0x22B7,
- 0x22B6, 0x22CA, 0x22C9, 0x22CC, 0x22CB, 0x2243, 0x22D1, 0x22D0,
- 0x22D7, 0x22D6, 0x22D9, 0x22D8, 0x22DB, 0x22DA, 0x22DD, 0x22DC,
- 0x22DF, 0x22DE, 0x22E1, 0x22E0, 0x22E3, 0x22E2, 0x22E5, 0x22E4,
- 0x22E7, 0x22E6, 0x22E9, 0x22E8, 0x22EB, 0x22EA, 0x22ED, 0x22EC,
- 0x22F1, 0x22F0, 0x22FA, 0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x22F2,
- 0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x2309, 0x2308, 0x230B, 0x230A,
- 0x232A, 0x2329, 0x2769, 0x2768, 0x276B, 0x276A, 0x276D, 0x276C,
- 0x276F, 0x276E, 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774,
- 0x27C4, 0x27C3, 0x27C6, 0x27C5, 0x27D6, 0x27D5, 0x27DE, 0x27DD,
- 0x27E3, 0x27E2, 0x27E5, 0x27E4, 0x27E7, 0x27E6, 0x27E9, 0x27E8,
- 0x27EB, 0x27EA, 0x2984, 0x2983, 0x2986, 0x2985, 0x2988, 0x2987,
- 0x298A, 0x2989, 0x298C, 0x298B, 0x2990, 0x298F, 0x298E, 0x298D,
- 0x2992, 0x2991, 0x2994, 0x2993, 0x2996, 0x2995, 0x2998, 0x2997,
- 0x2298, 0x29C1, 0x29C0, 0x29C5, 0x29C4, 0x29D0, 0x29CF, 0x29D2,
- 0x29D1, 0x29D5, 0x29D4, 0x29D9, 0x29D8, 0x29DB, 0x29DA, 0x2215,
- 0x29F9, 0x29F8, 0x29FD, 0x29FC, 0x2A2C, 0x2A2B, 0x2A2E, 0x2A2D,
- 0x2A35, 0x2A34, 0x2A3D, 0x2A3C, 0x2A65, 0x2A64, 0x2A7A, 0x2A79,
- 0x2A7E, 0x2A7D, 0x2A80, 0x2A7F, 0x2A82, 0x2A81, 0x2A84, 0x2A83,
- 0x2A8C, 0x2A8B, 0x2A92, 0x2A91, 0x2A94, 0x2A93, 0x2A96, 0x2A95,
- 0x2A98, 0x2A97, 0x2A9A, 0x2A99, 0x2A9C, 0x2A9B, 0x2AA2, 0x2AA1,
- 0x2AA7, 0x2AA6, 0x2AA9, 0x2AA8, 0x2AAB, 0x2AAA, 0x2AAD, 0x2AAC,
- 0x2AB0, 0x2AAF, 0x2AB4, 0x2AB3, 0x2ABC, 0x2ABB, 0x2ABE, 0x2ABD,
- 0x2AC0, 0x2ABF, 0x2AC2, 0x2AC1, 0x2AC4, 0x2AC3, 0x2AC6, 0x2AC5,
- 0x2ACE, 0x2ACD, 0x2AD0, 0x2ACF, 0x2AD2, 0x2AD1, 0x2AD4, 0x2AD3,
- 0x2AD6, 0x2AD5, 0x22A6, 0x22A9, 0x22A8, 0x22AB, 0x2AED, 0x2AEC,
- 0x2AF8, 0x2AF7, 0x2AFA, 0x2AF9, 0x2E03, 0x2E02, 0x2E05, 0x2E04,
- 0x2E0A, 0x2E09, 0x2E0D, 0x2E0C, 0x2E1D, 0x2E1C, 0x3009, 0x3008,
- 0x300B, 0x300A, 0x300D, 0x300C, 0x300F, 0x300E, 0x3011, 0x3010,
- 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301B, 0x301A,
- 0xFF09, 0xFF08, 0xFF1E, 0xFF1C, 0xFF3D, 0xFF3B, 0xFF5D, 0xFF5B,
- 0xFF60, 0xFF5F, 0xFF63, 0xFF62
-};
-
-const le_int32 DefaultCharMapper::mirroredCharsCount = 332;
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MorphStateTables.h b/Build/source/libs/icu-xetex/layout/MorphStateTables.h
deleted file mode 100644
index a2e0b00b7fc..00000000000
--- a/Build/source/libs/icu-xetex/layout/MorphStateTables.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MORPHSTATETABLES_H
-#define __MORPHSTATETABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "MorphTables.h"
-#include "StateTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct MorphStateTableHeader : MorphSubtableHeader
-{
- StateTableHeader stHeader;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/MorphTables.cpp b/Build/source/libs/icu-xetex/layout/MorphTables.cpp
deleted file mode 100644
index 9272cc3af3b..00000000000
--- a/Build/source/libs/icu-xetex/layout/MorphTables.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * %W% %W%
- *
- * (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
- *
- */
-
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "IndicRearrangementProcessor.h"
-#include "ContextualGlyphSubstProc.h"
-#include "LigatureSubstProc.h"
-#include "NonContextualGlyphSubstProc.h"
-//#include "ContextualGlyphInsertionProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-void MorphTableHeader::process(LEGlyphStorage &glyphStorage) const
-{
- const ChainHeader *chainHeader = chains;
- le_uint32 chainCount = SWAPL(this->nChains);
- le_uint32 chain;
-
- for (chain = 0; chain < chainCount; chain += 1) {
- FeatureFlags defaultFlags = SWAPL(chainHeader->defaultFlags);
- le_uint32 chainLength = SWAPL(chainHeader->chainLength);
- le_int16 nFeatureEntries = SWAPW(chainHeader->nFeatureEntries);
- le_int16 nSubtables = SWAPW(chainHeader->nSubtables);
- const MorphSubtableHeader *subtableHeader =
- (const MorphSubtableHeader *)&chainHeader->featureTable[nFeatureEntries];
- le_int16 subtable;
-
- for (subtable = 0; subtable < nSubtables; subtable += 1) {
- le_int16 length = SWAPW(subtableHeader->length);
- SubtableCoverage coverage = SWAPW(subtableHeader->coverage);
- FeatureFlags subtableFeatures = SWAPL(subtableHeader->subtableFeatures);
-
- // should check coverage more carefully...
- if ((coverage & scfVertical) == 0 && (subtableFeatures & defaultFlags) != 0) {
- subtableHeader->process(glyphStorage);
- }
-
- subtableHeader = (const MorphSubtableHeader *) ((char *)subtableHeader + length);
- }
-
- chainHeader = (const ChainHeader *)((char *)chainHeader + chainLength);
- }
-}
-
-void MorphSubtableHeader::process(LEGlyphStorage &glyphStorage) const
-{
- SubtableProcessor *processor = NULL;
-
- switch (SWAPW(coverage) & scfTypeMask)
- {
- case mstIndicRearrangement:
- processor = new IndicRearrangementProcessor(this);
- break;
-
- case mstContextualGlyphSubstitution:
- processor = new ContextualGlyphSubstitutionProcessor(this);
- break;
-
- case mstLigatureSubstitution:
- processor = new LigatureSubstitutionProcessor(this);
- break;
-
- case mstReservedUnused:
- break;
-
- case mstNonContextualGlyphSubstitution:
- processor = NonContextualGlyphSubstitutionProcessor::createInstance(this);
- break;
-
- /*
- case mstContextualGlyphInsertion:
- processor = new ContextualGlyphInsertionProcessor(this);
- break;
- */
-
- default:
- break;
- }
-
- if (processor != NULL) {
- processor->process(glyphStorage);
- delete processor;
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MorphTables.h b/Build/source/libs/icu-xetex/layout/MorphTables.h
deleted file mode 100644
index 8d198cf41fe..00000000000
--- a/Build/source/libs/icu-xetex/layout/MorphTables.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MORPHTABLES_H
-#define __MORPHTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-typedef le_uint32 FeatureFlags;
-
-typedef le_int16 FeatureType;
-typedef le_int16 FeatureSetting;
-
-struct FeatureTableEntry
-{
- FeatureType featureType;
- FeatureSetting featureSetting;
- FeatureFlags enableFlags;
- FeatureFlags disableFlags;
-};
-
-struct ChainHeader
-{
- FeatureFlags defaultFlags;
- le_uint32 chainLength;
- le_int16 nFeatureEntries;
- le_int16 nSubtables;
- FeatureTableEntry featureTable[ANY_NUMBER];
-};
-
-struct MorphTableHeader
-{
- le_int32 version;
- le_uint32 nChains;
- ChainHeader chains[ANY_NUMBER];
-
- void process(LEGlyphStorage &glyphStorage) const;
-};
-
-typedef le_int16 SubtableCoverage;
-
-enum SubtableCoverageFlags
-{
- scfVertical = 0x8000,
- scfReverse = 0x4000,
- scfIgnoreVt = 0x2000,
- scfReserved = 0x1FF8,
- scfTypeMask = 0x0007
-};
-
-enum MorphSubtableType
-{
- mstIndicRearrangement = 0,
- mstContextualGlyphSubstitution = 1,
- mstLigatureSubstitution = 2,
- mstReservedUnused = 3,
- mstNonContextualGlyphSubstitution = 4,
- mstContextualGlyphInsertion = 5
-};
-
-struct MorphSubtableHeader
-{
- le_int16 length;
- SubtableCoverage coverage;
- FeatureFlags subtableFeatures;
-
- void process(LEGlyphStorage &glyphStorage) const;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.cpp
deleted file mode 100644
index 450bf35bc94..00000000000
--- a/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "MultipleSubstSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 MultipleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
-
- // If there's a filter, we only want to do the
- // substitution if the *input* glyphs doesn't
- // exist.
- //
- // FIXME: is this always the right thing to do?
- // FIXME: should this only be done for a non-zero
- // glyphCount?
- if (filter != NULL && filter->accept(glyph)) {
- return 0;
- }
-
- le_int32 coverageIndex = getGlyphCoverage(glyph);
- le_uint16 seqCount = SWAPW(sequenceCount);
-
- if (coverageIndex >= 0 && coverageIndex < seqCount) {
- Offset sequenceTableOffset = SWAPW(sequenceTableOffsetArray[coverageIndex]);
- const SequenceTable *sequenceTable = (const SequenceTable *) ((char *) this + sequenceTableOffset);
- le_uint16 glyphCount = SWAPW(sequenceTable->glyphCount);
-
- if (glyphCount == 0) {
- glyphIterator->setCurrGlyphID(0xFFFF);
- return 1;
- } else if (glyphCount == 1) {
- TTGlyphID substitute = SWAPW(sequenceTable->substituteArray[0]);
-
- if (filter != NULL && ! filter->accept(LE_SET_GLYPH(glyph, substitute))) {
- return 0;
- }
-
- glyphIterator->setCurrGlyphID(substitute);
- return 1;
- } else {
- // If there's a filter, make sure all of the output glyphs
- // exist.
- if (filter != NULL) {
- for (le_int32 i = 0; i < glyphCount; i += 1) {
- TTGlyphID substitute = SWAPW(sequenceTable->substituteArray[i]);
-
- if (! filter->accept(substitute)) {
- return 0;
- }
- }
- }
-
- LEGlyphID *newGlyphs = glyphIterator->insertGlyphs(glyphCount);
- le_int32 insert = 0, direction = 1;
-
- if (glyphIterator->isRightToLeft()) {
- insert = glyphCount - 1;
- direction = -1;
- }
-
- for (le_int32 i = 0; i < glyphCount; i += 1) {
- TTGlyphID substitute = SWAPW(sequenceTable->substituteArray[i]);
-
- newGlyphs[insert] = LE_SET_GLYPH(glyph, substitute);
- insert += direction;
- }
-
- return 1;
- }
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.h b/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.h
deleted file mode 100644
index e29963c5856..00000000000
--- a/Build/source/libs/icu-xetex/layout/MultipleSubstSubtables.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __MULTIPLESUBSTITUTIONSUBTABLES_H
-#define __MULTIPLESUBSTITUTIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct SequenceTable
-{
- le_uint16 glyphCount;
- TTGlyphID substituteArray[ANY_NUMBER];
-};
-
-struct MultipleSubstitutionSubtable : GlyphSubstitutionSubtable
-{
- le_uint16 sequenceCount;
- Offset sequenceTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubst.h b/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubst.h
deleted file mode 100644
index ef2543a1a87..00000000000
--- a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubst.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
- *
- */
-
-#ifndef __NONCONTEXTUALGLYPHSUBSTITUTION_H
-#define __NONCONTEXTUALGLYPHSUBSTITUTION_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-#include "LookupTables.h"
-#include "MorphTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct NonContextualGlyphSubstitutionHeader : MorphSubtableHeader
-{
- LookupTable table;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.cpp b/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.cpp
deleted file mode 100644
index 69c065b4848..00000000000
--- a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "SimpleArrayProcessor.h"
-#include "SegmentSingleProcessor.h"
-#include "SegmentArrayProcessor.h"
-#include "SingleTableProcessor.h"
-#include "TrimmedArrayProcessor.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor()
-{
-}
-
-NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : SubtableProcessor(morphSubtableHeader)
-{
-}
-
-NonContextualGlyphSubstitutionProcessor::~NonContextualGlyphSubstitutionProcessor()
-{
-}
-
-SubtableProcessor *NonContextualGlyphSubstitutionProcessor::createInstance(const MorphSubtableHeader *morphSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
-
- switch (SWAPW(header->table.format))
- {
- case ltfSimpleArray:
- return new SimpleArrayProcessor(morphSubtableHeader);
-
- case ltfSegmentSingle:
- return new SegmentSingleProcessor(morphSubtableHeader);
-
- case ltfSegmentArray:
- return new SegmentArrayProcessor(morphSubtableHeader);
-
- case ltfSingleTable:
- return new SingleTableProcessor(morphSubtableHeader);
-
- case ltfTrimmedArray:
- return new TrimmedArrayProcessor(morphSubtableHeader);
-
- default:
- return NULL;
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.h b/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.h
deleted file mode 100644
index 4ce96cf3981..00000000000
--- a/Build/source/libs/icu-xetex/layout/NonContextualGlyphSubstProc.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
-#define __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class NonContextualGlyphSubstitutionProcessor : public SubtableProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage) = 0;
-
- static SubtableProcessor *createInstance(const MorphSubtableHeader *morphSubtableHeader);
-
-protected:
- NonContextualGlyphSubstitutionProcessor();
- NonContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~NonContextualGlyphSubstitutionProcessor();
-
-private:
- NonContextualGlyphSubstitutionProcessor(const NonContextualGlyphSubstitutionProcessor &other); // forbid copying of this class
- NonContextualGlyphSubstitutionProcessor &operator=(const NonContextualGlyphSubstitutionProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp
deleted file mode 100644
index 6ed165bf5c3..00000000000
--- a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp
+++ /dev/null
@@ -1,347 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LELanguages.h"
-
-#include "LayoutEngine.h"
-#include "OpenTypeLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "CharSubstitutionFilter.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-#include "LEGlyphStorage.h"
-#include "GlyphPositionAdjustments.h"
-
-#include "GDEFMarkFilter.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(OpenTypeLayoutEngine)
-
-#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-#define ligaFeatureTag LE_LIGA_FEATURE_TAG
-#define cligFeatureTag LE_CLIG_FEATURE_TAG
-#define kernFeatureTag LE_KERN_FEATURE_TAG
-#define markFeatureTag LE_MARK_FEATURE_TAG
-#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
-
-// 'dlig' not used at the moment
-#define dligFeatureTag 0x646C6967
-
-// 'palt'
-#define paltFeatureTag 0x70616C74
-
-#define ccmpFeatureMask 0x80000000UL
-#define ligaFeatureMask 0x40000000UL
-#define cligFeatureMask 0x20000000UL
-#define kernFeatureMask 0x10000000UL
-#define paltFeatureMask 0x08000000UL
-#define markFeatureMask 0x04000000UL
-#define mkmkFeatureMask 0x02000000UL
-
-#define minimalFeatures (ccmpFeatureMask | markFeatureMask | mkmkFeatureMask)
-#define ligaFeatures (ligaFeatureMask | cligFeatureMask | minimalFeatures)
-#define kernFeatures (kernFeatureMask | paltFeatureMask | minimalFeatures)
-#define kernAndLigaFeatures (ligaFeatures | kernFeatures)
-
-static const FeatureMap featureMap[] =
-{
- {ccmpFeatureTag, ccmpFeatureMask},
- {ligaFeatureTag, ligaFeatureMask},
- {cligFeatureTag, cligFeatureMask},
- {kernFeatureTag, kernFeatureMask},
- {paltFeatureTag, paltFeatureMask},
- {markFeatureTag, markFeatureMask},
- {mkmkFeatureTag, mkmkFeatureMask}
-};
-
-static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureMask(minimalFeatures),
- fFeatureMap(featureMap), fFeatureParamList(NULL), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
- fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL), fFilterZeroWidth(TRUE)
-{
- static const le_uint32 gdefTableTag = LE_GDEF_TABLE_TAG;
- static const le_uint32 gposTableTag = LE_GPOS_TABLE_TAG;
- const GlyphPositioningTableHeader *gposTable = (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
-
- // todo: switch to more flags and bitfield rather than list of feature tags?
- switch (typoFlags & ~0x80000000L) {
- case 0: break; // default
- case 1: fFeatureMask = kernFeatures; break;
- case 2: fFeatureMask = ligaFeatures; break;
- case 3: fFeatureMask = kernAndLigaFeatures; break;
- default: break;
- }
-
- if (typoFlags & 0x80000000L) {
- fSubstitutionFilter = new CharSubstitutionFilter(fontInstance);
- }
-
- setScriptAndLanguageTags();
-
- fGDEFTable = (const GlyphDefinitionTableHeader *) getFontTable(gdefTableTag);
-
- if (gposTable != NULL && gposTable->coversScriptAndLanguage(fScriptTag, fLangSysTag)) {
- fGPOSTable = gposTable;
- }
-}
-
-void OpenTypeLayoutEngine::reset()
-{
- // NOTE: if we're called from
- // the destructor, LayoutEngine;:reset()
- // will have been called already by
- // LayoutEngine::~LayoutEngine()
- LayoutEngine::reset();
-}
-
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(FALSE),
- fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL), fFilterZeroWidth(TRUE)
-{
- setScriptAndLanguageTags();
-}
-
-OpenTypeLayoutEngine::~OpenTypeLayoutEngine()
-{
- if (fTypoFlags & 0x80000000L) {
- delete fSubstitutionFilter;
- }
-
- reset();
-}
-
-LETag OpenTypeLayoutEngine::getScriptTag(le_int32 scriptCode)
-{
- if (scriptCode < 0 || scriptCode >= scriptCodeCount) {
- return 0xFFFFFFFF;
- }
-
- return scriptTags[scriptCode];
-}
-
-LETag OpenTypeLayoutEngine::getLangSysTag(le_int32 languageCode)
-{
- if (languageCode < 0 || languageCode >= languageCodeCount) {
- return 0xFFFFFFFF;
- }
-
- return languageTags[languageCode];
-}
-
-void OpenTypeLayoutEngine::setScriptAndLanguageTags()
-{
- fScriptTag = getScriptTag(fScriptCode);
- fLangSysTag = getLangSysTag(fLanguageCode);
-}
-
-le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 outCharCount = LayoutEngine::characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(outCharCount, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
- for (le_int32 i = 0; i < outCharCount; i += 1) {
- glyphStorage.setAuxData(i, fFeatureMask, (void *) fFeatureParamList, success);
- }
-
- return outCharCount;
-}
-
-// Input: characters, tags
-// Output: glyphs, char indices
-le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, fFilterZeroWidth, glyphStorage, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (fGSUBTable != NULL) {
- count = fGSUBTable->process(glyphStorage, rightToLeft, fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
- fFeatureMap, fFeatureMapCount, fFeatureOrder);
- }
-
- return count;
-}
-
-le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- glyphStorage.adoptGlyphArray(tempGlyphStorage);
- glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
- glyphStorage.adoptAuxDataArrays(tempGlyphStorage);
- glyphStorage.adoptGlyphCount(tempGlyphStorage);
-
- return glyphStorage.getGlyphCount();
-}
-
-le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- LEUnicode *outChars = NULL;
- LEGlyphStorage fakeGlyphStorage;
- le_int32 outCharCount, outGlyphCount, fakeGlyphCount;
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, fakeGlyphStorage, success);
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (outChars != NULL) {
- fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount, rightToLeft, fakeGlyphStorage, success);
- LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
- //adjustGlyphs(outChars, 0, outCharCount, rightToLeft, fakeGlyphs, fakeGlyphCount);
- } else {
- fakeGlyphCount = glyphProcessing(chars, offset, count, max, rightToLeft, fakeGlyphStorage, success);
- //adjustGlyphs(chars, offset, count, rightToLeft, fakeGlyphs, fakeGlyphCount);
- }
-
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- outGlyphCount = glyphPostProcessing(fakeGlyphStorage, glyphStorage, success);
-
- return outGlyphCount;
-}
-
-// apply GPOS table, if any
-void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
- LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return;
- }
-
- if (chars == NULL || offset < 0 || count < 0) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- le_int32 glyphCount = glyphStorage.getGlyphCount();
- if (glyphCount == 0)
- return;
-
- if (fGPOSTable != NULL) {
- GlyphPositionAdjustments *adjustments = new GlyphPositionAdjustments(glyphCount);
- le_int32 i;
-
- if (adjustments == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return;
- }
-
-#if 0
- // Don't need to do this if we allocate
- // the adjustments array w/ new...
- for (i = 0; i < glyphCount; i += 1) {
- adjustments->setXPlacement(i, 0);
- adjustments->setYPlacement(i, 0);
-
- adjustments->setXAdvance(i, 0);
- adjustments->setYAdvance(i, 0);
-
- adjustments->setBaseOffset(i, -1);
- }
-#endif
-
- fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag, fGDEFTable, fFontInstance,
- fFeatureMap, fFeatureMapCount, fFeatureOrder);
-
- float xAdjust = 0, yAdjust = 0;
-
- for (i = 0; i < glyphCount; i += 1) {
- float xAdvance = adjustments->getXAdvance(i);
- float yAdvance = adjustments->getYAdvance(i);
- float xPlacement = 0;
- float yPlacement = 0;
-
-
-#if 0
- // This is where separate kerning adjustments
- // should get applied.
- xAdjust += xKerning;
- yAdjust += yKerning;
-#endif
-
- for (le_int32 base = i; base >= 0; base = adjustments->getBaseOffset(base)) {
- xPlacement += adjustments->getXPlacement(base);
- yPlacement += adjustments->getYPlacement(base);
- }
-
- xPlacement = fFontInstance->xUnitsToPoints(xPlacement);
- yPlacement = fFontInstance->yUnitsToPoints(yPlacement);
- glyphStorage.adjustPosition(i, xAdjust + xPlacement, -(yAdjust + yPlacement), success);
-
- xAdjust += fFontInstance->xUnitsToPoints(xAdvance);
- yAdjust += fFontInstance->yUnitsToPoints(yAdvance);
- }
-
- glyphStorage.adjustPosition(glyphCount, xAdjust, -yAdjust, success);
-
- delete adjustments;
- }
- else {
- // if there was no GPOS table, maybe there's non-OpenType kerning we can use
- LayoutEngine::adjustGlyphPositions(chars, offset, count, reverse, glyphStorage, success);
- }
-
-#if 0
- // Don't know why this is here...
- LE_DELETE_ARRAY(fFeatureTags);
- fFeatureTags = NULL;
-#endif
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h
deleted file mode 100644
index 366f31257e5..00000000000
--- a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- */
-
-#ifndef __OPENTYPELAYOUTENGINE_H
-#define __OPENTYPELAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "LEFontInstance.h"
-#include "LayoutEngine.h"
-
-#include "GlyphSubstitutionTables.h"
-#include "GlyphDefinitionTables.h"
-#include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * OpenTypeLayoutEngine implements complex text layout for OpenType fonts - that is
- * fonts which have GSUB and GPOS tables associated with them. In order to do this,
- * the glyph processsing step described for LayoutEngine is further broken into three
- * steps:
- *
- * 1) Character processing - this step analyses the characters and assigns a list of OpenType
- * feature tags to each one. It may also change, remove or add characters, and change
- * their order.
- *
- * 2) Glyph processing - This step performs character to glyph mapping,and uses the GSUB
- * table associated with the font to perform glyph substitutions, such as ligature substitution.
- *
- * 3) Glyph post processing - in cases where the font doesn't directly contain a GSUB table,
- * the previous two steps may have generated "fake" glyph indices to use with a "canned" GSUB
- * table. This step turns those glyph indices into actual font-specific glyph indices, and may
- * perform any other adjustments requried by the previous steps.
- *
- * OpenTypeLayoutEngine will also use the font's GPOS table to apply position adjustments
- * such as kerning and accent positioning.
- *
- * @see LayoutEngine
- *
- * @internal
- */
-class U_LAYOUT_API OpenTypeLayoutEngine : public LayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of OpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @internal
- */
- OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~OpenTypeLayoutEngine();
-
- /**
- * A convenience method used to convert the script code into
- * the four byte script tag required by OpenType.
- *
- * @param scriptCode - the script code
- *
- * @return the four byte script tag
- *
- * @internal
- */
- static LETag getScriptTag(le_int32 scriptCode);
-
- /**
- * A convenience method used to convert the langauge code into
- * the four byte langauge tag required by OpenType.
- *
- * @param languageCode - the language code
- *
- * @return the four byte language tag
- *
- * @internal
- */
- static LETag getLangSysTag(le_int32 languageCode);
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
- /**
- * The array of language tags, indexed by language code.
- *
- * @internal
- */
- static const LETag languageTags[];
-
-private:
-
- /**
- * This method is used by the constructors to convert the script
- * and language codes to four byte tags and save them.
- */
- void setScriptAndLanguageTags();
-
- /**
- * The array of script tags, indexed by script code.
- */
- static const LETag scriptTags[];
-
-protected:
- /**
- * A set of "default" features. The default characterProcessing method
- * will apply all of these features to every glyph.
- *
- * @internal
- */
- FeatureMask fFeatureMask;
-
- /**
- * A set of mappings from feature tags to feature masks. These may
- * be in the order in which the featues should be applied, but they
- * don't need to be.
- *
- * @internal
- */
- const FeatureMap *fFeatureMap;
- const le_int32 *fFeatureParamList;
-
- /**
- * The length of the feature map.
- *
- * @internal
- */
- le_int32 fFeatureMapCount;
-
- /**
- * <code>TRUE</code> if the features in the
- * feature map are in the order in which they
- * must be applied.
- *
- * @internal
- */
- le_bool fFeatureOrder;
-
- /**
- * The address of the GSUB table.
- *
- * @internal
- */
- const GlyphSubstitutionTableHeader *fGSUBTable;
-
- /**
- * The address of the GDEF table.
- *
- * @internal
- */
- const GlyphDefinitionTableHeader *fGDEFTable;
-
- /**
- * The address of the GPOS table.
- *
- * @internal
- */
- const GlyphPositioningTableHeader *fGPOSTable;
-
- /**
- * An optional filter used to inhibit substitutions
- * preformed by the GSUB table. This is used for some
- * "canned" GSUB tables to restrict substitutions to
- * glyphs that are in the font.
- *
- * @internal
- */
- LEGlyphFilter *fSubstitutionFilter;
-
- /**
- * The four byte script tag.
- *
- * @internal
- */
- LETag fScriptTag;
-
- /**
- * The four byte language tag
- *
- * @internal
- */
- LETag fLangSysTag;
-
- /**
- * <code>TRUE</code> if <code>mapCharsToGlyphs</code> should replace ZWJ / ZWNJ with a glyph
- * with no contours.
- *
- * @internal
- */
- le_bool fFilterZeroWidth;
-
- /**
- * This method does the OpenType character processing. It assigns the OpenType feature
- * tags to the characters, and may generate output characters that differ from the input
- * charcters due to insertions, deletions, or reorderings. In such cases, it will also
- * generate an output character index array reflecting these changes.
- *
- * Subclasses must override this method.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the characters are in a right to left directional run
- *
- * Output parameters:
- * @param outChars - the output character array, if different from the input
- * @param charIndices - the output character index array
- * @param featureTags - the output feature tag array
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count (input character count if no change)
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode /*chars*/[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
- LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method does character to glyph mapping, and applies the GSUB table. The
- * default implementation calls mapCharsToGlyphs and then applies the GSUB table,
- * if there is one.
- *
- * Note that in the case of "canned" GSUB tables, the output glyph indices may be
- * "fake" glyph indices that need to be converted to "real" glyph indices by the
- * glyphPostProcessing method.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the characters are in a right to left directional run
- * @param featureTags - the feature tag array
- *
- * Output parameters:
- * @param glyphs - the output glyph index array
- * @param charIndices - the output character index array
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the output glyph index array
- *
- * Note: if the character index array was already set by the characterProcessing
- * method, this method won't change it.
- *
- * @internal
- */
- virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method does any processing necessary to convert "fake"
- * glyph indices used by the glyphProcessing method into "real" glyph
- * indices which can be used to render the text. Note that in some
- * cases, such as CDAC Indic fonts, several "real" glyphs may be needed
- * to render one "fake" glyph.
- *
- * The default implementation of this method just returns the input glyph
- * index and character index arrays, assuming that no "fake" glyph indices
- * were needed to do GSUB processing.
- *
- * Input paramters:
- * @param tempGlyphs - the input "fake" glyph index array
- * @param tempCharIndices - the input "fake" character index array
- * @param tempGlyphCount - the number of "fake" glyph indices
- *
- * Output parameters:
- * @param glyphs - the output glyph index array
- * @param charIndices - the output character index array
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyph indices in the output glyph index array
- *
- * @internal
- */
- virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method applies the characterProcessing, glyphProcessing and glyphPostProcessing
- * methods. Most subclasses will not need to override this method.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - TRUE if the text is in a right to left directional run
- *
- * Output parameters:
- * @param glyphs - the glyph index array
- * @param charIndices - the character index array
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the glyph index array
- *
- * @see LayoutEngine::computeGlyphs
- *
- * @internal
- */
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method uses the GPOS table, if there is one, to adjust the glyph positions.
- *
- * Input parameters:
- * @param glyphs - the input glyph array
- * @param glyphCount - the number of glyphs in the glyph array
- * @param x - the starting X position
- * @param y - the starting Y position
- *
- * Output parameters:
- * @param positions - the output X and Y positions (two entries per glyph)
- * @param success - set to an error code if the operation fails
- *
- * @internal
- */
- virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
- /**
- * This method frees the feature tag array so that the
- * OpenTypeLayoutEngine can be reused for different text.
- * It is also called from our destructor.
- *
- * @internal
- */
- virtual void reset();
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeTables.h b/Build/source/libs/icu-xetex/layout/OpenTypeTables.h
deleted file mode 100644
index 510dd019849..00000000000
--- a/Build/source/libs/icu-xetex/layout/OpenTypeTables.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __OPENTYPETABLES_H
-#define __OPENTYPETABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-
-U_NAMESPACE_BEGIN
-
-#define ANY_NUMBER 1
-
-typedef le_uint16 Offset;
-typedef le_uint8 ATag[4];
-typedef le_uint32 fixed32;
-typedef le_uint32 FeatureMask;
-
-#define SWAPT(atag) ((LETag) ((atag[0] << 24) + (atag[1] << 16) + (atag[2] << 8) + atag[3]))
-
-struct TagAndOffsetRecord
-{
- ATag tag;
- Offset offset;
-};
-
-struct GlyphRangeRecord
-{
- TTGlyphID firstGlyph;
- TTGlyphID lastGlyph;
- le_int16 rangeValue;
-};
-
-struct FeatureMap
-{
- LETag tag;
- FeatureMask mask;
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.cpp b/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.cpp
deleted file mode 100644
index f6d657e58b6..00000000000
--- a/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-//
-// Finds the high bit by binary searching
-// through the bits in n.
-//
-le_int8 OpenTypeUtilities::highBit(le_int32 value)
-{
- if (value <= 0) {
- return -32;
- }
-
- le_uint8 bit = 0;
-
- if (value >= 1 << 16) {
- value >>= 16;
- bit += 16;
- }
-
- if (value >= 1 << 8) {
- value >>= 8;
- bit += 8;
- }
-
- if (value >= 1 << 4) {
- value >>= 4;
- bit += 4;
- }
-
- if (value >= 1 << 2) {
- value >>= 2;
- bit += 2;
- }
-
- if (value >= 1 << 1) {
- value >>= 1;
- bit += 1;
- }
-
- return bit;
-}
-
-Offset OpenTypeUtilities::getTagOffset(LETag tag, const TagAndOffsetRecord *records, le_int32 recordCount)
-{
- le_uint8 bit = highBit(recordCount);
- le_int32 power = 1 << bit;
- le_int32 extra = recordCount - power;
- le_int32 probe = power;
- le_int32 index = 0;
-
- if (SWAPT(records[extra].tag) <= tag) {
- index = extra;
- }
-
- while (probe > (1 << 0)) {
- probe >>= 1;
-
- if (SWAPT(records[index + probe].tag) <= tag) {
- index += probe;
- }
- }
-
- if (SWAPT(records[index].tag) == tag) {
- return SWAPW(records[index].offset);
- }
-
- return 0;
-}
-
-le_int32 OpenTypeUtilities::getGlyphRangeIndex(TTGlyphID glyphID, const GlyphRangeRecord *records, le_int32 recordCount)
-{
- le_uint8 bit = highBit(recordCount);
- le_int32 power = 1 << bit;
- le_int32 extra = recordCount - power;
- le_int32 probe = power;
- le_int32 range = 0;
-
- if (SWAPW(records[extra].firstGlyph) <= glyphID) {
- range = extra;
- }
-
- while (probe > (1 << 0)) {
- probe >>= 1;
-
- if (SWAPW(records[range + probe].firstGlyph) <= glyphID) {
- range += probe;
- }
- }
-
- if (SWAPW(records[range].firstGlyph) <= glyphID && SWAPW(records[range].lastGlyph) >= glyphID) {
- return range;
- }
-
- return -1;
-}
-
-le_int32 OpenTypeUtilities::search(le_uint32 value, const le_uint32 array[], le_int32 count)
-{
- le_int32 power = 1 << highBit(count);
- le_int32 extra = count - power;
- le_int32 probe = power;
- le_int32 index = 0;
-
- if (value >= array[extra]) {
- index = extra;
- }
-
- while (probe > (1 << 0)) {
- probe >>= 1;
-
- if (value >= array[index + probe]) {
- index += probe;
- }
- }
-
- return index;
-}
-
-le_int32 OpenTypeUtilities::search(le_uint16 value, const le_uint16 array[], le_int32 count)
-{
- le_int32 power = 1 << highBit(count);
- le_int32 extra = count - power;
- le_int32 probe = power;
- le_int32 index = 0;
-
- if (value >= array[extra]) {
- index = extra;
- }
-
- while (probe > (1 << 0)) {
- probe >>= 1;
-
- if (value >= array[index + probe]) {
- index += probe;
- }
- }
-
- return index;
-}
-
-//
-// Straight insertion sort from Knuth vol. III, pg. 81
-//
-void OpenTypeUtilities::sort(le_uint16 *array, le_int32 count)
-{
- for (le_int32 j = 1; j < count; j += 1) {
- le_int32 i;
- le_uint16 v = array[j];
-
- for (i = j - 1; i >= 0; i -= 1) {
- if (v >= array[i]) {
- break;
- }
-
- array[i + 1] = array[i];
- }
-
- array[i + 1] = v;
- }
-}
-
-
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.h b/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.h
deleted file mode 100644
index 67a07c32a06..00000000000
--- a/Build/source/libs/icu-xetex/layout/OpenTypeUtilities.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __OPENTYPEUTILITIES_H
-#define __OPENTYPEUTILITIES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class OpenTypeUtilities /* not : public UObject because all methods are static */ {
-public:
- static le_int8 highBit(le_int32 value);
- static Offset getTagOffset(LETag tag, const TagAndOffsetRecord *records, le_int32 recordCount);
- static le_int32 getGlyphRangeIndex(TTGlyphID glyphID, const GlyphRangeRecord *records, le_int32 recordCount);
- static le_int32 search(le_uint16 value, const le_uint16 array[], le_int32 count);
- static le_int32 search(le_uint32 value, const le_uint32 array[], le_int32 count);
- static void sort(le_uint16 *array, le_int32 count);
-
-private:
- OpenTypeUtilities() {} // private - forbid instantiation
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.cpp b/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.cpp
deleted file mode 100644
index e9b2c7c76b0..00000000000
--- a/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "PairPositioningSubtables.h"
-#include "ValueRecords.h"
-#include "GlyphIterator.h"
-#include "OpenTypeUtilities.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 PairPositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- switch(SWAPW(subtableFormat))
- {
- case 0:
- return 0;
-
- case 1:
- {
- const PairPositioningFormat1Subtable *subtable = (const PairPositioningFormat1Subtable *) this;
-
- return subtable->process(glyphIterator, fontInstance);
- }
-
- case 2:
- {
- const PairPositioningFormat2Subtable *subtable = (const PairPositioningFormat2Subtable *) this;
-
- return subtable->process(glyphIterator, fontInstance);
- }
-
- default:
- return 0;
- }
-}
-
-le_uint32 PairPositioningFormat1Subtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID firstGlyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(firstGlyph);
- GlyphIterator tempIterator(*glyphIterator);
-
- if (coverageIndex >= 0 && tempIterator.next()) {
- Offset pairSetTableOffset = SWAPW(pairSetTableOffsetArray[coverageIndex]);
- PairSetTable *pairSetTable = (PairSetTable *) ((char *) this + pairSetTableOffset);
- le_uint16 pairValueCount = SWAPW(pairSetTable->pairValueCount);
- le_int16 valueRecord1Size = ValueRecord::getSize(SWAPW(valueFormat1));
- le_int16 valueRecord2Size = ValueRecord::getSize(SWAPW(valueFormat2));
- le_int16 recordSize = sizeof(PairValueRecord) - sizeof(ValueRecord) + valueRecord1Size + valueRecord2Size;
- LEGlyphID secondGlyph = tempIterator.getCurrGlyphID();
- const PairValueRecord *pairValueRecord = NULL;
-
- if (pairValueCount != 0) {
- pairValueRecord = findPairValueRecord((TTGlyphID) LE_GET_GLYPH(secondGlyph), pairSetTable->pairValueRecordArray, pairValueCount, recordSize);
- }
-
- if (pairValueRecord == NULL) {
- return 0;
- }
-
- if (valueFormat1 != 0) {
- pairValueRecord->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this, *glyphIterator, fontInstance);
- }
-
- if (valueFormat2 != 0) {
- const ValueRecord *valueRecord2 = (const ValueRecord *) ((char *) &pairValueRecord->valueRecord1 + valueRecord1Size);
-
- valueRecord2->adjustPosition(SWAPW(valueFormat2), (char *) this, tempIterator, fontInstance);
- }
-
- return 1;
- }
-
- return 0;
-}
-
-le_uint32 PairPositioningFormat2Subtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID firstGlyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(firstGlyph);
- GlyphIterator tempIterator(*glyphIterator);
-
- if (coverageIndex >= 0 && tempIterator.next()) {
- LEGlyphID secondGlyph = tempIterator.getCurrGlyphID();
- const ClassDefinitionTable *classDef1 = (const ClassDefinitionTable *) ((char *) this + SWAPW(classDef1Offset));
- const ClassDefinitionTable *classDef2 = (const ClassDefinitionTable *) ((char *) this + SWAPW(classDef2Offset));
- le_int32 class1 = classDef1->getGlyphClass(firstGlyph);
- le_int32 class2 = classDef2->getGlyphClass(secondGlyph);
- le_int16 valueRecord1Size = ValueRecord::getSize(SWAPW(valueFormat1));
- le_int16 valueRecord2Size = ValueRecord::getSize(SWAPW(valueFormat2));
- le_int16 class2RecordSize = valueRecord1Size + valueRecord2Size;
- le_int16 class1RecordSize = class2RecordSize * SWAPW(class2Count);
- const Class1Record *class1Record = (const Class1Record *) ((char *) class1RecordArray + (class1RecordSize * class1));
- const Class2Record *class2Record = (const Class2Record *) ((char *) class1Record->class2RecordArray + (class2RecordSize * class2));
-
-
- if (valueFormat1 != 0) {
- class2Record->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this, *glyphIterator, fontInstance);
- }
-
- if (valueFormat2 != 0) {
- const ValueRecord *valueRecord2 = (const ValueRecord *) ((char *) &class2Record->valueRecord1 + valueRecord1Size);
-
- valueRecord2->adjustPosition(SWAPW(valueFormat2), (const char *) this, tempIterator, fontInstance);
- }
-
- return 1;
- }
-
- return 0;
-}
-
-const PairValueRecord *PairPositioningFormat1Subtable::findPairValueRecord(TTGlyphID glyphID, const PairValueRecord *records, le_uint16 recordCount, le_uint16 recordSize) const
-{
- le_uint8 bit = OpenTypeUtilities::highBit(recordCount);
- le_uint16 power = 1 << bit;
- le_uint16 extra = (recordCount - power) * recordSize;
- le_uint16 probe = power * recordSize;
- const PairValueRecord *record = records;
- const PairValueRecord *trial = (const PairValueRecord *) ((char *) record + extra);
-
- if (SWAPW(trial->secondGlyph) <= glyphID) {
- record = trial;
- }
-
- while (probe > recordSize) {
- probe >>= 1;
- trial = (const PairValueRecord *) ((char *) record + probe);
-
- if (SWAPW(trial->secondGlyph) <= glyphID) {
- record = trial;
- }
- }
-
- if (SWAPW(record->secondGlyph) == glyphID) {
- return record;
- }
-
- return NULL;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.h b/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.h
deleted file mode 100644
index f017c33f65b..00000000000
--- a/Build/source/libs/icu-xetex/layout/PairPositioningSubtables.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __PAIRPOSITIONINGSUBTABLES_H
-#define __PAIRPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "ValueRecords.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-// NOTE: ValueRecord has a variable size
-struct PairValueRecord
-{
- TTGlyphID secondGlyph;
- ValueRecord valueRecord1;
-// ValueRecord valueRecord2;
-};
-
-struct PairSetTable
-{
- le_uint16 pairValueCount;
- PairValueRecord pairValueRecordArray[ANY_NUMBER];
-};
-
-struct PairPositioningSubtable : GlyphPositioningSubtable
-{
- ValueFormat valueFormat1;
- ValueFormat valueFormat2;
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct PairPositioningFormat1Subtable : PairPositioningSubtable
-{
- le_uint16 pairSetCount;
- Offset pairSetTableOffsetArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-
-private:
- const PairValueRecord *findPairValueRecord(TTGlyphID glyphID, const PairValueRecord *records,
- le_uint16 recordCount, le_uint16 recordSize) const;
-};
-
-// NOTE: ValueRecord has a variable size
-struct Class2Record
-{
- ValueRecord valueRecord1;
-// ValueRecord valurRecord2;
-};
-
-struct Class1Record
-{
- Class2Record class2RecordArray[ANY_NUMBER];
-};
-
-struct PairPositioningFormat2Subtable : PairPositioningSubtable
-{
- Offset classDef1Offset;
- Offset classDef2Offset;
- le_uint16 class1Count;
- le_uint16 class2Count;
- Class1Record class1RecordArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.cpp b/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.cpp
deleted file mode 100644
index 80941a5deec..00000000000
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "OpenTypeUtilities.h"
-#include "ScriptAndLanguage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-const LangSysTable *ScriptTable::findLanguage(LETag languageTag, le_bool exactMatch) const
-{
- le_uint16 count = SWAPW(langSysCount);
- Offset langSysTableOffset = exactMatch? 0 : SWAPW(defaultLangSysTableOffset);
-
- if (count > 0) {
- Offset foundOffset =
- OpenTypeUtilities::getTagOffset(languageTag, langSysRecordArray, count);
-
- if (foundOffset != 0) {
- langSysTableOffset = foundOffset;
- }
- }
-
- if (langSysTableOffset != 0) {
- return (const LangSysTable *) ((char *)this + langSysTableOffset);
- }
-
- return 0;
-}
-
-const ScriptTable *ScriptListTable::findScript(LETag scriptTag) const
-{
- le_uint16 count = SWAPW(scriptCount);
- Offset scriptTableOffset =
- OpenTypeUtilities::getTagOffset(scriptTag, scriptRecordArray, count);
-
- if (scriptTableOffset != 0) {
- return (const ScriptTable *) ((char *)this + scriptTableOffset);
- }
-
- return 0;
-}
-
-const LangSysTable *ScriptListTable::findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch) const
-{
- const ScriptTable *scriptTable = findScript(scriptTag);
-
- if (scriptTable == 0) {
- return 0;
- }
-
- return scriptTable->findLanguage(languageTag, exactMatch);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.h b/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.h
deleted file mode 100644
index 804dae9665e..00000000000
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguage.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SCRIPTANDLANGUAGE_H
-#define __SCRIPTANDLANGUAGE_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-typedef TagAndOffsetRecord LangSysRecord;
-
-struct LangSysTable
-{
- Offset lookupOrderOffset;
- le_uint16 reqFeatureIndex;
- le_uint16 featureCount;
- le_uint16 featureIndexArray[ANY_NUMBER];
-};
-
-struct ScriptTable
-{
- Offset defaultLangSysTableOffset;
- le_uint16 langSysCount;
- LangSysRecord langSysRecordArray[ANY_NUMBER];
-
- const LangSysTable *findLanguage(LETag languageTag, le_bool exactMatch = FALSE) const;
-};
-
-typedef TagAndOffsetRecord ScriptRecord;
-
-struct ScriptListTable
-{
- le_uint16 scriptCount;
- ScriptRecord scriptRecordArray[ANY_NUMBER];
-
- const ScriptTable *findScript(LETag scriptTag) const;
- const LangSysTable *findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp
deleted file mode 100644
index a9171336a68..00000000000
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 08/21/2006 02:35:14 PM HST
- */
-
-#include "LETypes.h"
-#include "ScriptAndLanguageTags.h"
-#include "OpenTypeLayoutEngine.h"
-
-U_NAMESPACE_BEGIN
-
-const LETag OpenTypeLayoutEngine::scriptTags[] = {
- zyyyScriptTag, /* 'zyyy' (COMMON) */
- qaaiScriptTag, /* 'qaai' (INHERITED) */
- arabScriptTag, /* 'arab' (ARABIC) */
- armnScriptTag, /* 'armn' (ARMENIAN) */
- bengScriptTag, /* 'beng' (BENGALI) */
- bopoScriptTag, /* 'bopo' (BOPOMOFO) */
- cherScriptTag, /* 'cher' (CHEROKEE) */
- coptScriptTag, /* 'copt' (COPTIC) */
- cyrlScriptTag, /* 'cyrl' (CYRILLIC) */
- dsrtScriptTag, /* 'dsrt' (DESERET) */
- devaScriptTag, /* 'deva' (DEVANAGARI) */
- ethiScriptTag, /* 'ethi' (ETHIOPIC) */
- georScriptTag, /* 'geor' (GEORGIAN) */
- gothScriptTag, /* 'goth' (GOTHIC) */
- grekScriptTag, /* 'grek' (GREEK) */
- gujrScriptTag, /* 'gujr' (GUJARATI) */
- guruScriptTag, /* 'guru' (GURMUKHI) */
- haniScriptTag, /* 'hani' (HAN) */
- hangScriptTag, /* 'hang' (HANGUL) */
- hebrScriptTag, /* 'hebr' (HEBREW) */
- hiraScriptTag, /* 'hira' (HIRAGANA) */
- kndaScriptTag, /* 'knda' (KANNADA) */
- kanaScriptTag, /* 'kana' (KATAKANA) */
- khmrScriptTag, /* 'khmr' (KHMER) */
- laooScriptTag, /* 'lao ' (LAO) */
- latnScriptTag, /* 'latn' (LATIN) */
- mlymScriptTag, /* 'mlym' (MALAYALAM) */
- mongScriptTag, /* 'mong' (MONGOLIAN) */
- mymrScriptTag, /* 'mymr' (MYANMAR) */
- ogamScriptTag, /* 'ogam' (OGHAM) */
- italScriptTag, /* 'ital' (OLD_ITALIC) */
- oryaScriptTag, /* 'orya' (ORIYA) */
- runrScriptTag, /* 'runr' (RUNIC) */
- sinhScriptTag, /* 'sinh' (SINHALA) */
- syrcScriptTag, /* 'syrc' (SYRIAC) */
- tamlScriptTag, /* 'taml' (TAMIL) */
- teluScriptTag, /* 'telu' (TELUGU) */
- thaaScriptTag, /* 'thaa' (THAANA) */
- thaiScriptTag, /* 'thai' (THAI) */
- tibtScriptTag, /* 'tibt' (TIBETAN) */
- cansScriptTag, /* 'cans' (CANADIAN_ABORIGINAL) */
- yiiiScriptTag, /* 'yi ' (YI) */
- tglgScriptTag, /* 'tglg' (TAGALOG) */
- hanoScriptTag, /* 'hano' (HANUNOO) */
- buhdScriptTag, /* 'buhd' (BUHID) */
- tagbScriptTag, /* 'tagb' (TAGBANWA) */
- braiScriptTag, /* 'brai' (BRAILLE) */
- cprtScriptTag, /* 'cprt' (CYPRIOT) */
- limbScriptTag, /* 'limb' (LIMBU) */
- linbScriptTag, /* 'linb' (LINEAR_B) */
- osmaScriptTag, /* 'osma' (OSMANYA) */
- shawScriptTag, /* 'shaw' (SHAVIAN) */
- taleScriptTag, /* 'tale' (TAI_LE) */
- ugarScriptTag, /* 'ugar' (UGARITIC) */
- hrktScriptTag, /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
- bugiScriptTag, /* 'bugi' (BUGINESE) */
- glagScriptTag, /* 'glag' (GLAGOLITIC) */
- kharScriptTag, /* 'khar' (KHAROSHTHI) */
- syloScriptTag, /* 'sylo' (SYLOTI_NAGRI) */
- taluScriptTag, /* 'talu' (NEW_TAI_LUE) */
- tfngScriptTag, /* 'tfng' (TIFINAGH) */
- xpeoScriptTag, /* 'xpeo' (OLD_PERSIAN) */
- baliScriptTag, /* 'bali' (BALINESE) */
- batkScriptTag, /* 'batk' (BATK) */
- blisScriptTag, /* 'blis' (BLIS) */
- brahScriptTag, /* 'brah' (BRAH) */
- chamScriptTag, /* 'cham' (CHAM) */
- cirtScriptTag, /* 'cirt' (CIRT) */
- cyrsScriptTag, /* 'cyrs' (CYRS) */
- egydScriptTag, /* 'egyd' (EGYD) */
- egyhScriptTag, /* 'egyh' (EGYH) */
- egypScriptTag, /* 'egyp' (EGYP) */
- geokScriptTag, /* 'geok' (GEOK) */
- hansScriptTag, /* 'hans' (HANS) */
- hantScriptTag, /* 'hant' (HANT) */
- hmngScriptTag, /* 'hmng' (HMNG) */
- hungScriptTag, /* 'hung' (HUNG) */
- indsScriptTag, /* 'inds' (INDS) */
- javaScriptTag, /* 'java' (JAVA) */
- kaliScriptTag, /* 'kali' (KALI) */
- latfScriptTag, /* 'latf' (LATF) */
- latgScriptTag, /* 'latg' (LATG) */
- lepcScriptTag, /* 'lepc' (LEPC) */
- linaScriptTag, /* 'lina' (LINA) */
- mandScriptTag, /* 'mand' (MAND) */
- mayaScriptTag, /* 'maya' (MAYA) */
- meroScriptTag, /* 'mero' (MERO) */
- nkooScriptTag, /* 'nko ' (NKO) */
- orkhScriptTag, /* 'orkh' (ORKH) */
- permScriptTag, /* 'perm' (PERM) */
- phagScriptTag, /* 'phag' (PHAGS_PA) */
- phnxScriptTag, /* 'phnx' (PHOENICIAN) */
- plrdScriptTag, /* 'plrd' (PLRD) */
- roroScriptTag, /* 'roro' (RORO) */
- saraScriptTag, /* 'sara' (SARA) */
- syreScriptTag, /* 'syre' (SYRE) */
- syrjScriptTag, /* 'syrj' (SYRJ) */
- syrnScriptTag, /* 'syrn' (SYRN) */
- tengScriptTag, /* 'teng' (TENG) */
- vaiiScriptTag, /* 'vai ' (VAII) */
- vispScriptTag, /* 'visp' (VISP) */
- xsuxScriptTag, /* 'xsux' (CUNEIFORM) */
- zxxxScriptTag, /* 'zxxx' (ZXXX) */
- zzzzScriptTag /* 'zzzz' (UNKNOWN) */
-};
-
-const LETag OpenTypeLayoutEngine::languageTags[] = {
- nullLanguageTag, /* '' (null) */
- araLanguageTag, /* 'ARA' (Arabic) */
- asmLanguageTag, /* 'ASM' (Assamese) */
- benLanguageTag, /* 'BEN' (Bengali) */
- farLanguageTag, /* 'FAR' (Farsi) */
- gujLanguageTag, /* 'GUJ' (Gujarati) */
- hinLanguageTag, /* 'HIN' (Hindi) */
- iwrLanguageTag, /* 'IWR' (Hebrew) */
- jiiLanguageTag, /* 'JII' (Yiddish) */
- janLanguageTag, /* 'JAN' (Japanese) */
- kanLanguageTag, /* 'KAN' (Kannada) */
- kokLanguageTag, /* 'KOK' (Konkani) */
- korLanguageTag, /* 'KOR' (Korean) */
- kshLanguageTag, /* 'KSH' (Kashmiri) */
- malLanguageTag, /* 'MAL' (Malayalam (Traditional)) */
- marLanguageTag, /* 'MAR' (Marathi) */
- mlrLanguageTag, /* 'MLR' (Malayalam (Reformed)) */
- mniLanguageTag, /* 'MNI' (Manipuri) */
- oriLanguageTag, /* 'ORI' (Oriya) */
- sanLanguageTag, /* 'SAN' (Sanscrit) */
- sndLanguageTag, /* 'SND' (Sindhi) */
- snhLanguageTag, /* 'SNH' (Sinhalese) */
- syrLanguageTag, /* 'SYR' (Syriac) */
- tamLanguageTag, /* 'TAM' (Tamil) */
- telLanguageTag, /* 'TEL' (Telugu) */
- thaLanguageTag, /* 'THA' (Thai) */
- urdLanguageTag, /* 'URD' (Urdu) */
- zhpLanguageTag, /* 'ZHP' (Chinese (Phonetic)) */
- zhsLanguageTag, /* 'ZHS' (Chinese (Simplified)) */
- zhtLanguageTag /* 'ZHT' (Chinese (Traditional)) */
-};
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h
deleted file mode 100644
index 7fb6f5e65b8..00000000000
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 08/21/2006 02:35:14 PM HST
- */
-
-#ifndef __SCRIPTANDLANGUAGES_H
-#define __SCRIPTANDLANGUAGES_H
-
-#include "LETypes.h"
-
-/**
- * \file
- * \internal
- */
-
-U_NAMESPACE_BEGIN
-
-const LETag zyyyScriptTag = 0x7A797979; /* 'zyyy' (COMMON) */
-const LETag qaaiScriptTag = 0x71616169; /* 'qaai' (INHERITED) */
-const LETag arabScriptTag = 0x61726162; /* 'arab' (ARABIC) */
-const LETag armnScriptTag = 0x61726D6E; /* 'armn' (ARMENIAN) */
-const LETag bengScriptTag = 0x62656E67; /* 'beng' (BENGALI) */
-const LETag bopoScriptTag = 0x626F706F; /* 'bopo' (BOPOMOFO) */
-const LETag cherScriptTag = 0x63686572; /* 'cher' (CHEROKEE) */
-const LETag coptScriptTag = 0x636F7074; /* 'copt' (COPTIC) */
-const LETag cyrlScriptTag = 0x6379726C; /* 'cyrl' (CYRILLIC) */
-const LETag dsrtScriptTag = 0x64737274; /* 'dsrt' (DESERET) */
-const LETag devaScriptTag = 0x64657661; /* 'deva' (DEVANAGARI) */
-const LETag ethiScriptTag = 0x65746869; /* 'ethi' (ETHIOPIC) */
-const LETag georScriptTag = 0x67656F72; /* 'geor' (GEORGIAN) */
-const LETag gothScriptTag = 0x676F7468; /* 'goth' (GOTHIC) */
-const LETag grekScriptTag = 0x6772656B; /* 'grek' (GREEK) */
-const LETag gujrScriptTag = 0x67756A72; /* 'gujr' (GUJARATI) */
-const LETag guruScriptTag = 0x67757275; /* 'guru' (GURMUKHI) */
-const LETag haniScriptTag = 0x68616E69; /* 'hani' (HAN) */
-const LETag hangScriptTag = 0x68616E67; /* 'hang' (HANGUL) */
-const LETag hebrScriptTag = 0x68656272; /* 'hebr' (HEBREW) */
-const LETag hiraScriptTag = 0x68697261; /* 'hira' (HIRAGANA) */
-const LETag kndaScriptTag = 0x6B6E6461; /* 'knda' (KANNADA) */
-const LETag kanaScriptTag = 0x6B616E61; /* 'kana' (KATAKANA) */
-const LETag khmrScriptTag = 0x6B686D72; /* 'khmr' (KHMER) */
-const LETag laooScriptTag = 0x6C616F20; /* 'lao ' (LAO) */
-const LETag latnScriptTag = 0x6C61746E; /* 'latn' (LATIN) */
-const LETag mlymScriptTag = 0x6D6C796D; /* 'mlym' (MALAYALAM) */
-const LETag mongScriptTag = 0x6D6F6E67; /* 'mong' (MONGOLIAN) */
-const LETag mymrScriptTag = 0x6D796D72; /* 'mymr' (MYANMAR) */
-const LETag ogamScriptTag = 0x6F67616D; /* 'ogam' (OGHAM) */
-const LETag italScriptTag = 0x6974616C; /* 'ital' (OLD_ITALIC) */
-const LETag oryaScriptTag = 0x6F727961; /* 'orya' (ORIYA) */
-const LETag runrScriptTag = 0x72756E72; /* 'runr' (RUNIC) */
-const LETag sinhScriptTag = 0x73696E68; /* 'sinh' (SINHALA) */
-const LETag syrcScriptTag = 0x73797263; /* 'syrc' (SYRIAC) */
-const LETag tamlScriptTag = 0x74616D6C; /* 'taml' (TAMIL) */
-const LETag teluScriptTag = 0x74656C75; /* 'telu' (TELUGU) */
-const LETag thaaScriptTag = 0x74686161; /* 'thaa' (THAANA) */
-const LETag thaiScriptTag = 0x74686169; /* 'thai' (THAI) */
-const LETag tibtScriptTag = 0x74696274; /* 'tibt' (TIBETAN) */
-const LETag cansScriptTag = 0x63616E73; /* 'cans' (CANADIAN_ABORIGINAL) */
-const LETag yiiiScriptTag = 0x79692020; /* 'yi ' (YI) */
-const LETag tglgScriptTag = 0x74676C67; /* 'tglg' (TAGALOG) */
-const LETag hanoScriptTag = 0x68616E6F; /* 'hano' (HANUNOO) */
-const LETag buhdScriptTag = 0x62756864; /* 'buhd' (BUHID) */
-const LETag tagbScriptTag = 0x74616762; /* 'tagb' (TAGBANWA) */
-const LETag braiScriptTag = 0x62726169; /* 'brai' (BRAILLE) */
-const LETag cprtScriptTag = 0x63707274; /* 'cprt' (CYPRIOT) */
-const LETag limbScriptTag = 0x6C696D62; /* 'limb' (LIMBU) */
-const LETag linbScriptTag = 0x6C696E62; /* 'linb' (LINEAR_B) */
-const LETag osmaScriptTag = 0x6F736D61; /* 'osma' (OSMANYA) */
-const LETag shawScriptTag = 0x73686177; /* 'shaw' (SHAVIAN) */
-const LETag taleScriptTag = 0x74616C65; /* 'tale' (TAI_LE) */
-const LETag ugarScriptTag = 0x75676172; /* 'ugar' (UGARITIC) */
-const LETag hrktScriptTag = 0x68726B74; /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
-const LETag bugiScriptTag = 0x62756769; /* 'bugi' (BUGINESE) */
-const LETag glagScriptTag = 0x676C6167; /* 'glag' (GLAGOLITIC) */
-const LETag kharScriptTag = 0x6B686172; /* 'khar' (KHAROSHTHI) */
-const LETag syloScriptTag = 0x73796C6F; /* 'sylo' (SYLOTI_NAGRI) */
-const LETag taluScriptTag = 0x74616C75; /* 'talu' (NEW_TAI_LUE) */
-const LETag tfngScriptTag = 0x74666E67; /* 'tfng' (TIFINAGH) */
-const LETag xpeoScriptTag = 0x7870656F; /* 'xpeo' (OLD_PERSIAN) */
-const LETag baliScriptTag = 0x62616C69; /* 'bali' (BALINESE) */
-const LETag batkScriptTag = 0x6261746B; /* 'batk' (BATK) */
-const LETag blisScriptTag = 0x626C6973; /* 'blis' (BLIS) */
-const LETag brahScriptTag = 0x62726168; /* 'brah' (BRAH) */
-const LETag chamScriptTag = 0x6368616D; /* 'cham' (CHAM) */
-const LETag cirtScriptTag = 0x63697274; /* 'cirt' (CIRT) */
-const LETag cyrsScriptTag = 0x63797273; /* 'cyrs' (CYRS) */
-const LETag egydScriptTag = 0x65677964; /* 'egyd' (EGYD) */
-const LETag egyhScriptTag = 0x65677968; /* 'egyh' (EGYH) */
-const LETag egypScriptTag = 0x65677970; /* 'egyp' (EGYP) */
-const LETag geokScriptTag = 0x67656F6B; /* 'geok' (GEOK) */
-const LETag hansScriptTag = 0x68616E73; /* 'hans' (HANS) */
-const LETag hantScriptTag = 0x68616E74; /* 'hant' (HANT) */
-const LETag hmngScriptTag = 0x686D6E67; /* 'hmng' (HMNG) */
-const LETag hungScriptTag = 0x68756E67; /* 'hung' (HUNG) */
-const LETag indsScriptTag = 0x696E6473; /* 'inds' (INDS) */
-const LETag javaScriptTag = 0x6A617661; /* 'java' (JAVA) */
-const LETag kaliScriptTag = 0x6B616C69; /* 'kali' (KALI) */
-const LETag latfScriptTag = 0x6C617466; /* 'latf' (LATF) */
-const LETag latgScriptTag = 0x6C617467; /* 'latg' (LATG) */
-const LETag lepcScriptTag = 0x6C657063; /* 'lepc' (LEPC) */
-const LETag linaScriptTag = 0x6C696E61; /* 'lina' (LINA) */
-const LETag mandScriptTag = 0x6D616E64; /* 'mand' (MAND) */
-const LETag mayaScriptTag = 0x6D617961; /* 'maya' (MAYA) */
-const LETag meroScriptTag = 0x6D65726F; /* 'mero' (MERO) */
-const LETag nkooScriptTag = 0x6E6B6F20; /* 'nko ' (NKO) */
-const LETag orkhScriptTag = 0x6F726B68; /* 'orkh' (ORKH) */
-const LETag permScriptTag = 0x7065726D; /* 'perm' (PERM) */
-const LETag phagScriptTag = 0x70686167; /* 'phag' (PHAGS_PA) */
-const LETag phnxScriptTag = 0x70686E78; /* 'phnx' (PHOENICIAN) */
-const LETag plrdScriptTag = 0x706C7264; /* 'plrd' (PLRD) */
-const LETag roroScriptTag = 0x726F726F; /* 'roro' (RORO) */
-const LETag saraScriptTag = 0x73617261; /* 'sara' (SARA) */
-const LETag syreScriptTag = 0x73797265; /* 'syre' (SYRE) */
-const LETag syrjScriptTag = 0x7379726A; /* 'syrj' (SYRJ) */
-const LETag syrnScriptTag = 0x7379726E; /* 'syrn' (SYRN) */
-const LETag tengScriptTag = 0x74656E67; /* 'teng' (TENG) */
-const LETag vaiiScriptTag = 0x76616920; /* 'vai ' (VAII) */
-const LETag vispScriptTag = 0x76697370; /* 'visp' (VISP) */
-const LETag xsuxScriptTag = 0x78737578; /* 'xsux' (CUNEIFORM) */
-const LETag zxxxScriptTag = 0x7A787878; /* 'zxxx' (ZXXX) */
-const LETag zzzzScriptTag = 0x7A7A7A7A; /* 'zzzz' (UNKNOWN) */
-
-const LETag nullScriptTag = 0x00000000; /* '' (NULL) */
-
-
-const LETag nullLanguageTag = 0x00000000; /* '' (null) */
-const LETag araLanguageTag = 0x41524120; /* 'ARA' (Arabic) */
-const LETag asmLanguageTag = 0x41534D20; /* 'ASM' (Assamese) */
-const LETag benLanguageTag = 0x42454E20; /* 'BEN' (Bengali) */
-const LETag farLanguageTag = 0x46415220; /* 'FAR' (Farsi) */
-const LETag gujLanguageTag = 0x47554A20; /* 'GUJ' (Gujarati) */
-const LETag hinLanguageTag = 0x48494E20; /* 'HIN' (Hindi) */
-const LETag iwrLanguageTag = 0x49575220; /* 'IWR' (Hebrew) */
-const LETag jiiLanguageTag = 0x4A494920; /* 'JII' (Yiddish) */
-const LETag janLanguageTag = 0x4A414E20; /* 'JAN' (Japanese) */
-const LETag kanLanguageTag = 0x4B414E20; /* 'KAN' (Kannada) */
-const LETag kokLanguageTag = 0x4B4F4B20; /* 'KOK' (Konkani) */
-const LETag korLanguageTag = 0x4B4F5220; /* 'KOR' (Korean) */
-const LETag kshLanguageTag = 0x4B534820; /* 'KSH' (Kashmiri) */
-const LETag malLanguageTag = 0x4D414C20; /* 'MAL' (Malayalam (Traditional)) */
-const LETag marLanguageTag = 0x4D415220; /* 'MAR' (Marathi) */
-const LETag mlrLanguageTag = 0x4D4C5220; /* 'MLR' (Malayalam (Reformed)) */
-const LETag mniLanguageTag = 0x4D4E4920; /* 'MNI' (Manipuri) */
-const LETag oriLanguageTag = 0x4F524920; /* 'ORI' (Oriya) */
-const LETag sanLanguageTag = 0x53414E20; /* 'SAN' (Sanscrit) */
-const LETag sndLanguageTag = 0x534E4420; /* 'SND' (Sindhi) */
-const LETag snhLanguageTag = 0x534E4820; /* 'SNH' (Sinhalese) */
-const LETag syrLanguageTag = 0x53595220; /* 'SYR' (Syriac) */
-const LETag tamLanguageTag = 0x54414D20; /* 'TAM' (Tamil) */
-const LETag telLanguageTag = 0x54454C20; /* 'TEL' (Telugu) */
-const LETag thaLanguageTag = 0x54484120; /* 'THA' (Thai) */
-const LETag urdLanguageTag = 0x55524420; /* 'URD' (Urdu) */
-const LETag zhpLanguageTag = 0x5A485020; /* 'ZHP' (Chinese (Phonetic)) */
-const LETag zhsLanguageTag = 0x5A485320; /* 'ZHS' (Chinese (Simplified)) */
-const LETag zhtLanguageTag = 0x5A485420; /* 'ZHT' (Chinese (Traditional)) */
-
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.cpp b/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.cpp
deleted file mode 100644
index b915cb9b92c..00000000000
--- a/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "SegmentArrayProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentArrayProcessor)
-
-SegmentArrayProcessor::SegmentArrayProcessor()
-{
-}
-
-SegmentArrayProcessor::SegmentArrayProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
-
- segmentArrayLookupTable = (const SegmentArrayLookupTable *) &header->table;
-}
-
-SegmentArrayProcessor::~SegmentArrayProcessor()
-{
-}
-
-void SegmentArrayProcessor::process(LEGlyphStorage &glyphStorage)
-{
- const LookupSegment *segments = segmentArrayLookupTable->segments;
- le_int32 glyphCount = glyphStorage.getGlyphCount();
- le_int32 glyph;
-
- for (glyph = 0; glyph < glyphCount; glyph += 1) {
- LEGlyphID thisGlyph = glyphStorage[glyph];
- const LookupSegment *lookupSegment = segmentArrayLookupTable->lookupSegment(segments, thisGlyph);
-
- if (lookupSegment != NULL) {
- TTGlyphID firstGlyph = SWAPW(lookupSegment->firstGlyph);
- le_int16 offset = SWAPW(lookupSegment->value);
-
- if (offset != 0) {
- TTGlyphID *glyphArray = (TTGlyphID *) ((char *) subtableHeader + offset);
- TTGlyphID newGlyph = SWAPW(glyphArray[LE_GET_GLYPH(thisGlyph) - firstGlyph]);
-
- glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
- }
- }
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.h b/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.h
deleted file mode 100644
index 7e2028c98b5..00000000000
--- a/Build/source/libs/icu-xetex/layout/SegmentArrayProcessor.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SEGMENTARRAYPROCESSOR_H
-#define __SEGMENTARRAYPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class SegmentArrayProcessor : public NonContextualGlyphSubstitutionProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage);
-
- SegmentArrayProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~SegmentArrayProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- SegmentArrayProcessor();
-
-protected:
- const SegmentArrayLookupTable *segmentArrayLookupTable;
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.cpp b/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.cpp
deleted file mode 100644
index 75e33eb01d2..00000000000
--- a/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "SegmentSingleProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentSingleProcessor)
-
-SegmentSingleProcessor::SegmentSingleProcessor()
-{
-}
-
-SegmentSingleProcessor::SegmentSingleProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
-
- segmentSingleLookupTable = (const SegmentSingleLookupTable *) &header->table;
-}
-
-SegmentSingleProcessor::~SegmentSingleProcessor()
-{
-}
-
-void SegmentSingleProcessor::process(LEGlyphStorage &glyphStorage)
-{
- const LookupSegment *segments = segmentSingleLookupTable->segments;
- le_int32 glyphCount = glyphStorage.getGlyphCount();
- le_int32 glyph;
-
- for (glyph = 0; glyph < glyphCount; glyph += 1) {
- LEGlyphID thisGlyph = glyphStorage[glyph];
- const LookupSegment *lookupSegment = segmentSingleLookupTable->lookupSegment(segments, thisGlyph);
-
- if (lookupSegment != NULL) {
- TTGlyphID newGlyph = (TTGlyphID) LE_GET_GLYPH(thisGlyph) + SWAPW(lookupSegment->value);
-
- glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
- }
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.h b/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.h
deleted file mode 100644
index 64b2b72f162..00000000000
--- a/Build/source/libs/icu-xetex/layout/SegmentSingleProcessor.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SEGMENTSINGLEPROCESSOR_H
-#define __SEGMENTSINGLEPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class SegmentSingleProcessor : public NonContextualGlyphSubstitutionProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage);
-
- SegmentSingleProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~SegmentSingleProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- SegmentSingleProcessor();
-
-protected:
- const SegmentSingleLookupTable *segmentSingleLookupTable;
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp b/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp
deleted file mode 100644
index 36d5d4b53e5..00000000000
--- a/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- *
- * (C) Copyright SIL International. 2007.
- * (C) Copyright IBM Corp. 1998-2005.
- * Based on code distributed with ICU 3.6
- * and the Unicode Character Database, version 5.0.0
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- * Generated on: 2007-01-16 12:28:32 GMT
-
- */
-
-#include "LETypes.h"
-#include "ArabicShaping.h"
-
-U_NAMESPACE_BEGIN
-
-const le_uint8 ArabicShaping::shapingTypeTable[] = {
- 0x00, 0x02, /* classFormat */
- 0x00, 0xB7, /* classRangeCount */
- 0x00, 0xAD, 0x00, 0xAD, 0x00, 0x05,
- 0x03, 0x00, 0x03, 0x6F, 0x00, 0x05,
- 0x04, 0x83, 0x04, 0x86, 0x00, 0x05,
- 0x04, 0x88, 0x04, 0x89, 0x00, 0x05,
- 0x05, 0x91, 0x05, 0xBD, 0x00, 0x05,
- 0x05, 0xBF, 0x05, 0xBF, 0x00, 0x05,
- 0x05, 0xC1, 0x05, 0xC2, 0x00, 0x05,
- 0x05, 0xC4, 0x05, 0xC5, 0x00, 0x05,
- 0x05, 0xC7, 0x05, 0xC7, 0x00, 0x05,
- 0x06, 0x10, 0x06, 0x15, 0x00, 0x05,
- 0x06, 0x22, 0x06, 0x25, 0x00, 0x04,
- 0x06, 0x26, 0x06, 0x26, 0x00, 0x02,
- 0x06, 0x27, 0x06, 0x27, 0x00, 0x04,
- 0x06, 0x28, 0x06, 0x28, 0x00, 0x02,
- 0x06, 0x29, 0x06, 0x29, 0x00, 0x04,
- 0x06, 0x2A, 0x06, 0x2E, 0x00, 0x02,
- 0x06, 0x2F, 0x06, 0x32, 0x00, 0x04,
- 0x06, 0x33, 0x06, 0x3A, 0x00, 0x02,
- 0x06, 0x40, 0x06, 0x40, 0x00, 0x01,
- 0x06, 0x41, 0x06, 0x47, 0x00, 0x02,
- 0x06, 0x48, 0x06, 0x48, 0x00, 0x04,
- 0x06, 0x49, 0x06, 0x4A, 0x00, 0x02,
- 0x06, 0x4B, 0x06, 0x5E, 0x00, 0x05,
- 0x06, 0x6E, 0x06, 0x6F, 0x00, 0x02,
- 0x06, 0x70, 0x06, 0x70, 0x00, 0x05,
- 0x06, 0x71, 0x06, 0x73, 0x00, 0x04,
- 0x06, 0x75, 0x06, 0x77, 0x00, 0x04,
- 0x06, 0x78, 0x06, 0x87, 0x00, 0x02,
- 0x06, 0x88, 0x06, 0x99, 0x00, 0x04,
- 0x06, 0x9A, 0x06, 0xBF, 0x00, 0x02,
- 0x06, 0xC0, 0x06, 0xC0, 0x00, 0x04,
- 0x06, 0xC1, 0x06, 0xC2, 0x00, 0x02,
- 0x06, 0xC3, 0x06, 0xCB, 0x00, 0x04,
- 0x06, 0xCC, 0x06, 0xCC, 0x00, 0x02,
- 0x06, 0xCD, 0x06, 0xCD, 0x00, 0x04,
- 0x06, 0xCE, 0x06, 0xCE, 0x00, 0x02,
- 0x06, 0xCF, 0x06, 0xCF, 0x00, 0x04,
- 0x06, 0xD0, 0x06, 0xD1, 0x00, 0x02,
- 0x06, 0xD2, 0x06, 0xD3, 0x00, 0x04,
- 0x06, 0xD5, 0x06, 0xD5, 0x00, 0x04,
- 0x06, 0xD6, 0x06, 0xDC, 0x00, 0x05,
- 0x06, 0xDE, 0x06, 0xE4, 0x00, 0x05,
- 0x06, 0xE7, 0x06, 0xE8, 0x00, 0x05,
- 0x06, 0xEA, 0x06, 0xED, 0x00, 0x05,
- 0x06, 0xEE, 0x06, 0xEF, 0x00, 0x04,
- 0x06, 0xFA, 0x06, 0xFC, 0x00, 0x02,
- 0x06, 0xFF, 0x06, 0xFF, 0x00, 0x02,
- 0x07, 0x0F, 0x07, 0x0F, 0x00, 0x05,
- 0x07, 0x10, 0x07, 0x10, 0x00, 0x04,
- 0x07, 0x11, 0x07, 0x11, 0x00, 0x05,
- 0x07, 0x12, 0x07, 0x14, 0x00, 0x02,
- 0x07, 0x15, 0x07, 0x19, 0x00, 0x04,
- 0x07, 0x1A, 0x07, 0x1D, 0x00, 0x02,
- 0x07, 0x1E, 0x07, 0x1E, 0x00, 0x04,
- 0x07, 0x1F, 0x07, 0x27, 0x00, 0x02,
- 0x07, 0x28, 0x07, 0x28, 0x00, 0x04,
- 0x07, 0x29, 0x07, 0x29, 0x00, 0x02,
- 0x07, 0x2A, 0x07, 0x2A, 0x00, 0x04,
- 0x07, 0x2B, 0x07, 0x2B, 0x00, 0x02,
- 0x07, 0x2C, 0x07, 0x2C, 0x00, 0x04,
- 0x07, 0x2D, 0x07, 0x2E, 0x00, 0x02,
- 0x07, 0x2F, 0x07, 0x2F, 0x00, 0x04,
- 0x07, 0x30, 0x07, 0x4A, 0x00, 0x05,
- 0x07, 0x4D, 0x07, 0x4D, 0x00, 0x04,
- 0x07, 0x4E, 0x07, 0x58, 0x00, 0x02,
- 0x07, 0x59, 0x07, 0x5B, 0x00, 0x04,
- 0x07, 0x5C, 0x07, 0x6A, 0x00, 0x02,
- 0x07, 0x6B, 0x07, 0x6C, 0x00, 0x04,
- 0x07, 0x6D, 0x07, 0x6D, 0x00, 0x02,
- 0x07, 0xA6, 0x07, 0xB0, 0x00, 0x05,
- 0x07, 0xCA, 0x07, 0xEA, 0x00, 0x02,
- 0x07, 0xEB, 0x07, 0xF3, 0x00, 0x05,
- 0x07, 0xFA, 0x07, 0xFA, 0x00, 0x01,
- 0x09, 0x01, 0x09, 0x02, 0x00, 0x05,
- 0x09, 0x3C, 0x09, 0x3C, 0x00, 0x05,
- 0x09, 0x41, 0x09, 0x48, 0x00, 0x05,
- 0x09, 0x4D, 0x09, 0x4D, 0x00, 0x05,
- 0x09, 0x51, 0x09, 0x54, 0x00, 0x05,
- 0x09, 0x62, 0x09, 0x63, 0x00, 0x05,
- 0x09, 0x81, 0x09, 0x81, 0x00, 0x05,
- 0x09, 0xBC, 0x09, 0xBC, 0x00, 0x05,
- 0x09, 0xC1, 0x09, 0xC4, 0x00, 0x05,
- 0x09, 0xCD, 0x09, 0xCD, 0x00, 0x05,
- 0x09, 0xE2, 0x09, 0xE3, 0x00, 0x05,
- 0x0A, 0x01, 0x0A, 0x02, 0x00, 0x05,
- 0x0A, 0x3C, 0x0A, 0x3C, 0x00, 0x05,
- 0x0A, 0x41, 0x0A, 0x42, 0x00, 0x05,
- 0x0A, 0x47, 0x0A, 0x48, 0x00, 0x05,
- 0x0A, 0x4B, 0x0A, 0x4D, 0x00, 0x05,
- 0x0A, 0x70, 0x0A, 0x71, 0x00, 0x05,
- 0x0A, 0x81, 0x0A, 0x82, 0x00, 0x05,
- 0x0A, 0xBC, 0x0A, 0xBC, 0x00, 0x05,
- 0x0A, 0xC1, 0x0A, 0xC5, 0x00, 0x05,
- 0x0A, 0xC7, 0x0A, 0xC8, 0x00, 0x05,
- 0x0A, 0xCD, 0x0A, 0xCD, 0x00, 0x05,
- 0x0A, 0xE2, 0x0A, 0xE3, 0x00, 0x05,
- 0x0B, 0x01, 0x0B, 0x01, 0x00, 0x05,
- 0x0B, 0x3C, 0x0B, 0x3C, 0x00, 0x05,
- 0x0B, 0x3F, 0x0B, 0x3F, 0x00, 0x05,
- 0x0B, 0x41, 0x0B, 0x43, 0x00, 0x05,
- 0x0B, 0x4D, 0x0B, 0x4D, 0x00, 0x05,
- 0x0B, 0x56, 0x0B, 0x56, 0x00, 0x05,
- 0x0B, 0x82, 0x0B, 0x82, 0x00, 0x05,
- 0x0B, 0xC0, 0x0B, 0xC0, 0x00, 0x05,
- 0x0B, 0xCD, 0x0B, 0xCD, 0x00, 0x05,
- 0x0C, 0x3E, 0x0C, 0x40, 0x00, 0x05,
- 0x0C, 0x46, 0x0C, 0x48, 0x00, 0x05,
- 0x0C, 0x4A, 0x0C, 0x4D, 0x00, 0x05,
- 0x0C, 0x55, 0x0C, 0x56, 0x00, 0x05,
- 0x0C, 0xBC, 0x0C, 0xBC, 0x00, 0x05,
- 0x0C, 0xBF, 0x0C, 0xBF, 0x00, 0x05,
- 0x0C, 0xC6, 0x0C, 0xC6, 0x00, 0x05,
- 0x0C, 0xCC, 0x0C, 0xCD, 0x00, 0x05,
- 0x0C, 0xE2, 0x0C, 0xE3, 0x00, 0x05,
- 0x0D, 0x41, 0x0D, 0x43, 0x00, 0x05,
- 0x0D, 0x4D, 0x0D, 0x4D, 0x00, 0x05,
- 0x0D, 0xCA, 0x0D, 0xCA, 0x00, 0x05,
- 0x0D, 0xD2, 0x0D, 0xD4, 0x00, 0x05,
- 0x0D, 0xD6, 0x0D, 0xD6, 0x00, 0x05,
- 0x0E, 0x31, 0x0E, 0x31, 0x00, 0x05,
- 0x0E, 0x34, 0x0E, 0x3A, 0x00, 0x05,
- 0x0E, 0x47, 0x0E, 0x4E, 0x00, 0x05,
- 0x0E, 0xB1, 0x0E, 0xB1, 0x00, 0x05,
- 0x0E, 0xB4, 0x0E, 0xB9, 0x00, 0x05,
- 0x0E, 0xBB, 0x0E, 0xBC, 0x00, 0x05,
- 0x0E, 0xC8, 0x0E, 0xCD, 0x00, 0x05,
- 0x0F, 0x18, 0x0F, 0x19, 0x00, 0x05,
- 0x0F, 0x35, 0x0F, 0x35, 0x00, 0x05,
- 0x0F, 0x37, 0x0F, 0x37, 0x00, 0x05,
- 0x0F, 0x39, 0x0F, 0x39, 0x00, 0x05,
- 0x0F, 0x71, 0x0F, 0x7E, 0x00, 0x05,
- 0x0F, 0x80, 0x0F, 0x84, 0x00, 0x05,
- 0x0F, 0x86, 0x0F, 0x87, 0x00, 0x05,
- 0x0F, 0x90, 0x0F, 0x97, 0x00, 0x05,
- 0x0F, 0x99, 0x0F, 0xBC, 0x00, 0x05,
- 0x0F, 0xC6, 0x0F, 0xC6, 0x00, 0x05,
- 0x10, 0x2D, 0x10, 0x30, 0x00, 0x05,
- 0x10, 0x32, 0x10, 0x32, 0x00, 0x05,
- 0x10, 0x36, 0x10, 0x37, 0x00, 0x05,
- 0x10, 0x39, 0x10, 0x39, 0x00, 0x05,
- 0x10, 0x58, 0x10, 0x59, 0x00, 0x05,
- 0x13, 0x5F, 0x13, 0x5F, 0x00, 0x05,
- 0x17, 0x12, 0x17, 0x14, 0x00, 0x05,
- 0x17, 0x32, 0x17, 0x34, 0x00, 0x05,
- 0x17, 0x52, 0x17, 0x53, 0x00, 0x05,
- 0x17, 0x72, 0x17, 0x73, 0x00, 0x05,
- 0x17, 0xB4, 0x17, 0xB5, 0x00, 0x05,
- 0x17, 0xB7, 0x17, 0xBD, 0x00, 0x05,
- 0x17, 0xC6, 0x17, 0xC6, 0x00, 0x05,
- 0x17, 0xC9, 0x17, 0xD3, 0x00, 0x05,
- 0x17, 0xDD, 0x17, 0xDD, 0x00, 0x05,
- 0x18, 0x0B, 0x18, 0x0D, 0x00, 0x05,
- 0x18, 0xA9, 0x18, 0xA9, 0x00, 0x05,
- 0x19, 0x20, 0x19, 0x22, 0x00, 0x05,
- 0x19, 0x27, 0x19, 0x28, 0x00, 0x05,
- 0x19, 0x32, 0x19, 0x32, 0x00, 0x05,
- 0x19, 0x39, 0x19, 0x3B, 0x00, 0x05,
- 0x1A, 0x17, 0x1A, 0x18, 0x00, 0x05,
- 0x1B, 0x00, 0x1B, 0x03, 0x00, 0x05,
- 0x1B, 0x34, 0x1B, 0x34, 0x00, 0x05,
- 0x1B, 0x36, 0x1B, 0x3A, 0x00, 0x05,
- 0x1B, 0x3C, 0x1B, 0x3C, 0x00, 0x05,
- 0x1B, 0x42, 0x1B, 0x42, 0x00, 0x05,
- 0x1B, 0x6B, 0x1B, 0x73, 0x00, 0x05,
- 0x1D, 0xC0, 0x1D, 0xCA, 0x00, 0x05,
- 0x1D, 0xFE, 0x1D, 0xFF, 0x00, 0x05,
- 0x20, 0x0B, 0x20, 0x0B, 0x00, 0x05,
- 0x20, 0x0D, 0x20, 0x0D, 0x00, 0x01,
- 0x20, 0x0E, 0x20, 0x0F, 0x00, 0x05,
- 0x20, 0x2A, 0x20, 0x2E, 0x00, 0x05,
- 0x20, 0x60, 0x20, 0x63, 0x00, 0x05,
- 0x20, 0x6A, 0x20, 0x6F, 0x00, 0x05,
- 0x20, 0xD0, 0x20, 0xEF, 0x00, 0x05,
- 0x30, 0x2A, 0x30, 0x2F, 0x00, 0x05,
- 0x30, 0x99, 0x30, 0x9A, 0x00, 0x05,
- 0xA8, 0x06, 0xA8, 0x06, 0x00, 0x05,
- 0xA8, 0x0B, 0xA8, 0x0B, 0x00, 0x05,
- 0xA8, 0x25, 0xA8, 0x26, 0x00, 0x05,
- 0xFB, 0x1E, 0xFB, 0x1E, 0x00, 0x05,
- 0xFE, 0x00, 0xFE, 0x0F, 0x00, 0x05,
- 0xFE, 0x20, 0xFE, 0x23, 0x00, 0x05,
- 0xFE, 0xFF, 0xFE, 0xFF, 0x00, 0x05,
- 0xFF, 0xF9, 0xFF, 0xFB, 0x00, 0x05
-};
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.cpp b/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.cpp
deleted file mode 100644
index d677f545f6b..00000000000
--- a/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "SimpleArrayProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleArrayProcessor)
-
-SimpleArrayProcessor::SimpleArrayProcessor()
-{
-}
-
-SimpleArrayProcessor::SimpleArrayProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
-
- simpleArrayLookupTable = (const SimpleArrayLookupTable *) &header->table;
-}
-
-SimpleArrayProcessor::~SimpleArrayProcessor()
-{
-}
-
-void SimpleArrayProcessor::process(LEGlyphStorage &glyphStorage)
-{
- le_int32 glyphCount = glyphStorage.getGlyphCount();
- le_int32 glyph;
-
- for (glyph = 0; glyph < glyphCount; glyph += 1) {
- LEGlyphID thisGlyph = glyphStorage[glyph];
- if (LE_GET_GLYPH(thisGlyph) < 0xFFFF) {
- TTGlyphID newGlyph = SWAPW(simpleArrayLookupTable->valueArray[LE_GET_GLYPH(thisGlyph)]);
-
- glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
- }
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.h b/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.h
deleted file mode 100644
index afee79c4971..00000000000
--- a/Build/source/libs/icu-xetex/layout/SimpleArrayProcessor.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SIMPLEARRAYPROCESSOR_H
-#define __SIMPLEARRAYPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class SimpleArrayProcessor : public NonContextualGlyphSubstitutionProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage);
-
- SimpleArrayProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~SimpleArrayProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- SimpleArrayProcessor();
-
-protected:
- const SimpleArrayLookupTable *simpleArrayLookupTable;
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.cpp b/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.cpp
deleted file mode 100644
index e8759d21a19..00000000000
--- a/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "SinglePositioningSubtables.h"
-#include "ValueRecords.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 SinglePositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- switch(SWAPW(subtableFormat))
- {
- case 0:
- return 0;
-
- case 1:
- {
- const SinglePositioningFormat1Subtable *subtable = (const SinglePositioningFormat1Subtable *) this;
-
- return subtable->process(glyphIterator, fontInstance);
- }
-
- case 2:
- {
- const SinglePositioningFormat2Subtable *subtable = (const SinglePositioningFormat2Subtable *) this;
-
- return subtable->process(glyphIterator, fontInstance);
- }
-
- default:
- return 0;
- }
-}
-
-le_uint32 SinglePositioningFormat1Subtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- valueRecord.adjustPosition(SWAPW(valueFormat), (const char *) this, *glyphIterator, fontInstance);
-
- return 1;
- }
-
- return 0;
-}
-
-le_uint32 SinglePositioningFormat2Subtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int16 coverageIndex = (le_int16) getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- valueRecordArray[0].adjustPosition(coverageIndex, SWAPW(valueFormat), (const char *) this, *glyphIterator, fontInstance);
-
- return 1;
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.h b/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.h
deleted file mode 100644
index ec2ffcc9269..00000000000
--- a/Build/source/libs/icu-xetex/layout/SinglePositioningSubtables.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SINGLEPOSITIONINGSUBTABLES_H
-#define __SINGLEPOSITIONINGSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphPositioningTables.h"
-#include "ValueRecords.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct SinglePositioningSubtable : GlyphPositioningSubtable
-{
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct SinglePositioningFormat1Subtable : SinglePositioningSubtable
-{
- ValueFormat valueFormat;
- ValueRecord valueRecord;
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-struct SinglePositioningFormat2Subtable : SinglePositioningSubtable
-{
- ValueFormat valueFormat;
- le_uint16 valueCount;
- ValueRecord valueRecordArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.cpp b/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.cpp
deleted file mode 100644
index ae72ddfd04f..00000000000
--- a/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "SingleSubstitutionSubtables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-le_uint32 SingleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- switch(SWAPW(subtableFormat))
- {
- case 0:
- return 0;
-
- case 1:
- {
- const SingleSubstitutionFormat1Subtable *subtable = (const SingleSubstitutionFormat1Subtable *) this;
-
- return subtable->process(glyphIterator, filter);
- }
-
- case 2:
- {
- const SingleSubstitutionFormat2Subtable *subtable = (const SingleSubstitutionFormat2Subtable *) this;
-
- return subtable->process(glyphIterator, filter);
- }
-
- default:
- return 0;
- }
-}
-
-le_uint32 SingleSubstitutionFormat1Subtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- TTGlyphID substitute = ((TTGlyphID) LE_GET_GLYPH(glyph)) + SWAPW(deltaGlyphID);
-
- if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, substitute))) {
- glyphIterator->setCurrGlyphID(substitute);
- }
-
- return 1;
- }
-
- return 0;
-}
-
-le_uint32 SingleSubstitutionFormat2Subtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
-{
- LEGlyphID glyph = glyphIterator->getCurrGlyphID();
- le_int32 coverageIndex = getGlyphCoverage(glyph);
-
- if (coverageIndex >= 0) {
- TTGlyphID substitute = SWAPW(substituteArray[coverageIndex]);
-
- if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, substitute))) {
- glyphIterator->setCurrGlyphID(substitute);
- }
-
- return 1;
- }
-
- return 0;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.h b/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.h
deleted file mode 100644
index dfd2dad8809..00000000000
--- a/Build/source/libs/icu-xetex/layout/SingleSubstitutionSubtables.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SINGLESUBSTITUTIONSUBTABLES_H
-#define __SINGLESUBSTITUTIONSUBTABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-struct SingleSubstitutionSubtable : GlyphSubstitutionSubtable
-{
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-struct SingleSubstitutionFormat1Subtable : SingleSubstitutionSubtable
-{
- le_int16 deltaGlyphID;
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-struct SingleSubstitutionFormat2Subtable : SingleSubstitutionSubtable
-{
- le_uint16 glyphCount;
- TTGlyphID substituteArray[ANY_NUMBER];
-
- le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/SingleTableProcessor.cpp b/Build/source/libs/icu-xetex/layout/SingleTableProcessor.cpp
deleted file mode 100644
index 94a4edd7571..00000000000
--- a/Build/source/libs/icu-xetex/layout/SingleTableProcessor.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "SingleTableProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SingleTableProcessor)
-
-SingleTableProcessor::SingleTableProcessor()
-{
-}
-
-SingleTableProcessor::SingleTableProcessor(const MorphSubtableHeader *moprhSubtableHeader)
- : NonContextualGlyphSubstitutionProcessor(moprhSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) moprhSubtableHeader;
-
- singleTableLookupTable = (const SingleTableLookupTable *) &header->table;
-}
-
-SingleTableProcessor::~SingleTableProcessor()
-{
-}
-
-void SingleTableProcessor::process(LEGlyphStorage &glyphStorage)
-{
- const LookupSingle *entries = singleTableLookupTable->entries;
- le_int32 glyph;
- le_int32 glyphCount = glyphStorage.getGlyphCount();
-
- for (glyph = 0; glyph < glyphCount; glyph += 1) {
- const LookupSingle *lookupSingle = singleTableLookupTable->lookupSingle(entries, glyphStorage[glyph]);
-
- if (lookupSingle != NULL) {
- glyphStorage[glyph] = SWAPW(lookupSingle->value);
- }
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SingleTableProcessor.h b/Build/source/libs/icu-xetex/layout/SingleTableProcessor.h
deleted file mode 100644
index d6ca048b049..00000000000
--- a/Build/source/libs/icu-xetex/layout/SingleTableProcessor.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SINGLETABLEPROCESSOR_H
-#define __SINGLETABLEPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class SingleTableProcessor : public NonContextualGlyphSubstitutionProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage);
-
- SingleTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~SingleTableProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- SingleTableProcessor();
-
-protected:
- const SingleTableLookupTable *singleTableLookupTable;
-
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/StateTableProcessor.cpp b/Build/source/libs/icu-xetex/layout/StateTableProcessor.cpp
deleted file mode 100644
index 223959b8b16..00000000000
--- a/Build/source/libs/icu-xetex/layout/StateTableProcessor.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "StateTables.h"
-#include "MorphStateTables.h"
-#include "SubtableProcessor.h"
-#include "StateTableProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-StateTableProcessor::StateTableProcessor()
-{
-}
-
-StateTableProcessor::StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : SubtableProcessor(morphSubtableHeader)
-{
- stateTableHeader = (const MorphStateTableHeader *) morphSubtableHeader;
-
- stateSize = SWAPW(stateTableHeader->stHeader.stateSize);
- classTableOffset = SWAPW(stateTableHeader->stHeader.classTableOffset);
- stateArrayOffset = SWAPW(stateTableHeader->stHeader.stateArrayOffset);
- entryTableOffset = SWAPW(stateTableHeader->stHeader.entryTableOffset);
-
- classTable = (const ClassTable *) ((char *) &stateTableHeader->stHeader + classTableOffset);
- firstGlyph = SWAPW(classTable->firstGlyph);
- lastGlyph = firstGlyph + SWAPW(classTable->nGlyphs);
-}
-
-StateTableProcessor::~StateTableProcessor()
-{
-}
-
-void StateTableProcessor::process(LEGlyphStorage &glyphStorage)
-{
- // Start at state 0
- // XXX: How do we know when to start at state 1?
- ByteOffset currentState = stateArrayOffset;
-
- // XXX: reverse?
- le_int32 currGlyph = 0;
- le_int32 glyphCount = glyphStorage.getGlyphCount();
-
- beginStateTable();
-
- while (currGlyph <= glyphCount) {
- ClassCode classCode = classCodeOOB;
- if (currGlyph == glyphCount) {
- // XXX: How do we handle EOT vs. EOL?
- classCode = classCodeEOT;
- } else {
- TTGlyphID glyphCode = (TTGlyphID) LE_GET_GLYPH(glyphStorage[currGlyph]);
-
- if (glyphCode == 0xFFFF) {
- classCode = classCodeDEL;
- } else if ((glyphCode >= firstGlyph) && (glyphCode < lastGlyph)) {
- classCode = classTable->classArray[glyphCode - firstGlyph];
- }
- }
-
- const EntryTableIndex *stateArray = (const EntryTableIndex *) ((char *) &stateTableHeader->stHeader + currentState);
- EntryTableIndex entryTableIndex = stateArray[(le_uint8)classCode];
-
- currentState = processStateEntry(glyphStorage, currGlyph, entryTableIndex);
- }
-
- endStateTable();
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/StateTableProcessor.h b/Build/source/libs/icu-xetex/layout/StateTableProcessor.h
deleted file mode 100644
index 41c50debe94..00000000000
--- a/Build/source/libs/icu-xetex/layout/StateTableProcessor.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __STATETABLEPROCESSOR_H
-#define __STATETABLEPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "MorphStateTables.h"
-#include "SubtableProcessor.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class StateTableProcessor : public SubtableProcessor
-{
-public:
- void process(LEGlyphStorage &glyphStorage);
-
- virtual void beginStateTable() = 0;
-
- virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
-
- virtual void endStateTable() = 0;
-
-protected:
- StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
- virtual ~StateTableProcessor();
-
- StateTableProcessor();
-
- le_int16 stateSize;
- ByteOffset classTableOffset;
- ByteOffset stateArrayOffset;
- ByteOffset entryTableOffset;
-
- const ClassTable *classTable;
- TTGlyphID firstGlyph;
- TTGlyphID lastGlyph;
-
- const MorphStateTableHeader *stateTableHeader;
-
-private:
- StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class
- StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/StateTables.h b/Build/source/libs/icu-xetex/layout/StateTables.h
deleted file mode 100644
index 8b5f867770a..00000000000
--- a/Build/source/libs/icu-xetex/layout/StateTables.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __STATETABLES_H
-#define __STATETABLES_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LayoutTables.h"
-
-U_NAMESPACE_BEGIN
-
-struct StateTableHeader
-{
- le_int16 stateSize;
- ByteOffset classTableOffset;
- ByteOffset stateArrayOffset;
- ByteOffset entryTableOffset;
-};
-
-enum ClassCodes
-{
- classCodeEOT = 0,
- classCodeOOB = 1,
- classCodeDEL = 2,
- classCodeEOL = 3,
- classCodeFirstFree = 4,
- classCodeMAX = 0xFF
-};
-
-typedef le_uint8 ClassCode;
-
-struct ClassTable
-{
- TTGlyphID firstGlyph;
- le_uint16 nGlyphs;
- ClassCode classArray[ANY_NUMBER];
-};
-
-enum StateNumber
-{
- stateSOT = 0,
- stateSOL = 1,
- stateFirstFree = 2,
- stateMAX = 0xFF
-};
-
-typedef le_uint8 EntryTableIndex;
-
-struct StateEntry
-{
- ByteOffset newStateOffset;
- le_int16 flags;
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/SubstitutionLookups.cpp b/Build/source/libs/icu-xetex/layout/SubstitutionLookups.cpp
deleted file mode 100644
index fa6771ac1f7..00000000000
--- a/Build/source/libs/icu-xetex/layout/SubstitutionLookups.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-#include "SubstitutionLookups.h"
-#include "CoverageTables.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-/*
- NOTE: This could be optimized somewhat by keeping track
- of the previous sequenceIndex in the loop and doing next()
- or prev() of the delta between that and the current
- sequenceIndex instead of always resetting to the front.
-*/
-void SubstitutionLookup::applySubstitutionLookups(
- LookupProcessor *lookupProcessor,
- SubstitutionLookupRecord *substLookupRecordArray,
- le_uint16 substCount,
- GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance,
- le_int32 position)
-{
- GlyphIterator tempIterator(*glyphIterator);
-
- for (le_uint16 subst = 0; subst < substCount; subst += 1) {
- le_uint16 sequenceIndex = SWAPW(substLookupRecordArray[subst].sequenceIndex);
- le_uint16 lookupListIndex = SWAPW(substLookupRecordArray[subst].lookupListIndex);
-
- tempIterator.setCurrStreamPosition(position);
- tempIterator.next(sequenceIndex);
-
- lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance);
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SubstitutionLookups.h b/Build/source/libs/icu-xetex/layout/SubstitutionLookups.h
deleted file mode 100644
index 3365850642b..00000000000
--- a/Build/source/libs/icu-xetex/layout/SubstitutionLookups.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SUBSTITUTIONLOOKUPS_H
-#define __SUBSTITUTIONLOOKUPS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphSubstitutionTables.h"
-#include "GlyphIterator.h"
-#include "LookupProcessor.h"
-
-U_NAMESPACE_BEGIN
-
-struct SubstitutionLookupRecord
-{
- le_uint16 sequenceIndex;
- le_uint16 lookupListIndex;
-};
-
-struct SubstitutionLookup
-{
- static void applySubstitutionLookups(
- LookupProcessor *lookupProcessor,
- SubstitutionLookupRecord *substLookupRecordArray,
- le_uint16 substCount,
- GlyphIterator *glyphIterator,
- const LEFontInstance *fontInstance,
- le_int32 position);
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/SubtableProcessor.cpp b/Build/source/libs/icu-xetex/layout/SubtableProcessor.cpp
deleted file mode 100644
index dd5ce187b21..00000000000
--- a/Build/source/libs/icu-xetex/layout/SubtableProcessor.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-SubtableProcessor::SubtableProcessor()
-{
-}
-
-SubtableProcessor::SubtableProcessor(const MorphSubtableHeader *morphSubtableHeader)
-{
- subtableHeader = morphSubtableHeader;
-
- length = SWAPW(subtableHeader->length);
- coverage = SWAPW(subtableHeader->coverage);
- subtableFeatures = SWAPL(subtableHeader->subtableFeatures);
-}
-
-SubtableProcessor::~SubtableProcessor()
-{
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/SubtableProcessor.h b/Build/source/libs/icu-xetex/layout/SubtableProcessor.h
deleted file mode 100644
index f304cb956e9..00000000000
--- a/Build/source/libs/icu-xetex/layout/SubtableProcessor.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __SUBTABLEPROCESSOR_H
-#define __SUBTABLEPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class SubtableProcessor : public UMemory {
-public:
- virtual void process(LEGlyphStorage &glyphStorage) = 0;
- virtual ~SubtableProcessor();
-
-protected:
- SubtableProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- SubtableProcessor();
-
- le_int16 length;
- SubtableCoverage coverage;
- FeatureFlags subtableFeatures;
-
- const MorphSubtableHeader *subtableHeader;
-
-private:
-
- SubtableProcessor(const SubtableProcessor &other); // forbid copying of this class
- SubtableProcessor &operator=(const SubtableProcessor &other); // forbid copying of this class
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp
deleted file mode 100644
index 38f8a3275ce..00000000000
--- a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LayoutEngine.h"
-#include "ThaiLayoutEngine.h"
-#include "ScriptAndLanguageTags.h"
-#include "LEGlyphStorage.h"
-
-#include "ThaiShaping.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ThaiLayoutEngine)
-
-ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
-{
- fErrorChar = 0x25CC;
-
- // Figure out which presentation forms the font uses
- if (fontInstance->canDisplay(0x0E64)) {
- // WorldType uses reserved space in Thai block
- fGlyphSet = 0;
- } else if (fontInstance->canDisplay(0xF701)) {
- // Microsoft corporate zone
- fGlyphSet = 1;
-
- if (!fontInstance->canDisplay(fErrorChar)) {
- fErrorChar = 0xF71B;
- }
- } else if (fontInstance->canDisplay(0xF885)) {
- // Apple corporate zone
- fGlyphSet = 2;
- } else {
- // no presentation forms in the font
- fGlyphSet = 3;
- }
-}
-
-ThaiLayoutEngine::~ThaiLayoutEngine()
-{
- // nothing to do
-}
-
-// Input: characters (0..max provided for context)
-// Output: glyphs, char indices
-// Returns: the glyph count
-// NOTE: this assumes that ThaiShaping::compose will allocate the outChars array...
-le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- LEUnicode *outChars;
- le_int32 glyphCount;
-
- // This is enough room for the worst-case expansion
- // (it says here...)
- outChars = LE_NEW_ARRAY(LEUnicode, count * 2);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(count * 2, FALSE, success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar, outChars, glyphStorage);
- mapCharsToGlyphs(outChars, 0, glyphCount, FALSE, FALSE, TRUE, glyphStorage, success);
-
- LE_DELETE_ARRAY(outChars);
-
- glyphStorage.adoptGlyphCount(glyphCount);
- return glyphCount;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.h b/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.h
deleted file mode 100644
index aad7addfca9..00000000000
--- a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.h
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __THAILAYOUTENGINE_H
-#define __THAILAYOUTENGINE_H
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LayoutEngine.h"
-
-#include "ThaiShaping.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-/**
- * This class implements layout for the Thai script, using the ThaiShapingClass.
- * All existing Thai fonts use an encoding which assigns character codes to all
- * the variant forms needed to display accents and tone marks correctly in context.
- * This class can deal with fonts using the Microsoft, Macintosh, and WorldType encodings.
- *
- * @internal
- */
-class ThaiLayoutEngine : public LayoutEngine
-{
-public:
- /**
- * This constructs an instance of ThaiLayoutEngine for the given font, script and
- * language. It examines the font, using LEFontInstance::canDisplay, to set fGlyphSet
- * and fErrorChar. (see below)
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param languageCode - the language
- *
- * @see LEFontInstance
- * @see ScriptAndLanguageTags.h for script and language codes
- *
- * @internal
- */
- ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~ThaiLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-protected:
- /**
- * A small integer indicating which Thai encoding
- * the font uses.
- *
- * @see ThaiShaping
- *
- * @internal
- */
- le_uint8 fGlyphSet;
-
- /**
- * The character used as a base for vowels and
- * tone marks that are out of sequence. Usually
- * this will be Unicode 0x25CC, if the font can
- * display it.
- *
- * @see ThaiShaping
- *
- * @internal
- */
- LEUnicode fErrorChar;
-
- /**
- * This method performs Thai layout. It calls ThaiShaping::compose to
- * generate the correct contextual character codes, and then calls
- * mapCharsToGlyphs to generate the glyph indices.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the number of glyphs in the glyph index array
- *
- * @see ThaiShaping
- *
- * @internal
- */
- virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ThaiShaping.cpp b/Build/source/libs/icu-xetex/layout/ThaiShaping.cpp
deleted file mode 100644
index 1680f0fe515..00000000000
--- a/Build/source/libs/icu-xetex/layout/ThaiShaping.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-#include "LEGlyphStorage.h"
-#include "ThaiShaping.h"
-
-U_NAMESPACE_BEGIN
-
-enum {
- CH_SPACE = 0x0020,
- CH_YAMAKKAN = 0x0E4E,
- CH_MAI_HANAKAT = 0x0E31,
- CH_SARA_AA = 0x0E32,
- CH_SARA_AM = 0x0E33,
- CH_SARA_UEE = 0x0E37,
- CH_MAITAIKHU = 0x0E47,
- CH_NIKHAHIT = 0x0E4D,
- CH_SARA_U = 0x0E38,
- CH_PHINTHU = 0x0E3A,
- CH_YO_YING = 0x0E0D,
- CH_THO_THAN = 0x0E10,
- CH_DOTTED_CIRCLE = 0x25CC
-};
-
- le_uint8 ThaiShaping::getCharClass(LEUnicode ch)
-{
- le_uint8 charClass = NON;
-
- if (ch >= 0x0E00 && ch <= 0x0E5B) {
- charClass = classTable[ch - 0x0E00];
- }
-
- return charClass;
-}
-
-
-LEUnicode ThaiShaping::leftAboveVowel(LEUnicode vowel, le_uint8 glyphSet)
-{
- static const LEUnicode leftAboveVowels[][7] = {
- {0x0E61, 0x0E32, 0x0E33, 0x0E64, 0x0E65, 0x0E66, 0x0E67},
- {0xF710, 0x0E32, 0x0E33, 0xF701, 0xF702, 0xF703, 0xF704},
- {0xF884, 0x0E32, 0x0E33, 0xF885, 0xF886, 0xF887, 0xF788},
- {0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37}
- };
-
- if (vowel >= CH_MAI_HANAKAT && vowel <= CH_SARA_UEE) {
- return leftAboveVowels[glyphSet][vowel - CH_MAI_HANAKAT];
- }
-
- if (vowel == CH_YAMAKKAN && glyphSet == 0) {
- return 0x0E7E;
- }
-
- return vowel;
-}
-
-LEUnicode ThaiShaping::lowerRightTone(LEUnicode tone, le_uint8 glyphSet)
-{
- static const LEUnicode lowerRightTones[][7] = {
- {0x0E68, 0x0E69, 0x0E6A, 0x0E6B, 0x0E6C, 0x0E6D, 0x0E6E},
- {0x0E47, 0xF70A, 0xF70B, 0xF70C, 0xF70D, 0xF70E, 0x0E4D},
- {0x0E47, 0xF88B, 0xF88E, 0xF891, 0xF894, 0xF897, 0x0E4D},
- {0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D}
- };
-
- if (tone >= CH_MAITAIKHU && tone <= CH_NIKHAHIT) {
- return lowerRightTones[glyphSet][tone - CH_MAITAIKHU];
- }
-
- return tone;
-}
-
-LEUnicode ThaiShaping::lowerLeftTone(LEUnicode tone, le_uint8 glyphSet)
-{
- static const LEUnicode lowerLeftTones[][7] = {
- {0x0E76, 0x0E77, 0x0E78, 0x0E79, 0x0E7A, 0x0E7B, 0x0E7C},
- {0xF712, 0xF705, 0xF706, 0xF707, 0xF708, 0xF709, 0xF711},
- {0xF889, 0xF88C, 0xF88F, 0xF892, 0xF895, 0xF898, 0xF899},
- {0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D}
- };
-
- if (tone >= CH_MAITAIKHU && tone <= CH_NIKHAHIT) {
- return lowerLeftTones[glyphSet][tone - CH_MAITAIKHU];
- }
-
- return tone;
-}
-
-LEUnicode ThaiShaping::upperLeftTone(LEUnicode tone, le_uint8 glyphSet)
-{
- static const LEUnicode upperLeftTones[][7] = {
- {0x0E6F, 0x0E70, 0x0E71, 0x0E72, 0x0E73, 0x0E74, 0x0E75},
- {0xF712, 0xF713, 0xF714, 0xF715, 0xF716, 0xF717, 0xF711},
- {0xF889, 0xF88A, 0xF88D, 0xF890, 0xF893, 0xF896, 0xF899},
- {0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D}
- };
-
- if (tone >= CH_MAITAIKHU && tone <= CH_NIKHAHIT) {
- return upperLeftTones[glyphSet][tone - CH_MAITAIKHU];
- }
-
- return tone;
-}
-
-LEUnicode ThaiShaping::lowerBelowVowel(LEUnicode vowel, le_uint8 glyphSet)
-{
- static const LEUnicode lowerBelowVowels[][3] = {
- {0x0E3C, 0x0E3D, 0x0E3E},
- {0xF718, 0xF719, 0xF71A},
- {0x0E38, 0x0E39, 0x0E3A},
- {0x0E38, 0x0E39, 0x0E3A}
-
- };
-
- if (vowel >= CH_SARA_U && vowel <= CH_PHINTHU) {
- return lowerBelowVowels[glyphSet][vowel - CH_SARA_U];
- }
-
- return vowel;
-}
-
-LEUnicode ThaiShaping::noDescenderCOD(LEUnicode cod, le_uint8 glyphSet)
-{
- static const LEUnicode noDescenderCODs[][4] = {
- {0x0E60, 0x0E0E, 0x0E0F, 0x0E63},
- {0xF70F, 0x0E0E, 0x0E0F, 0xF700},
- {0x0E0D, 0x0E0E, 0x0E0F, 0x0E10},
- {0x0E0D, 0x0E0E, 0x0E0F, 0x0E10}
-
- };
-
- if (cod >= CH_YO_YING && cod <= CH_THO_THAN) {
- return noDescenderCODs[glyphSet][cod - CH_YO_YING];
- }
-
- return cod;
-}
-
-le_uint8 ThaiShaping::doTransition (StateTransition transition, LEUnicode currChar, le_int32 inputIndex, le_uint8 glyphSet,
- LEUnicode errorChar, LEUnicode *outputBuffer, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
-{
- LEErrorCode success = LE_NO_ERROR;
-
- switch (transition.action) {
- case tA:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
-
- case tC:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
-
- case tD:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = leftAboveVowel(currChar, glyphSet);
- break;
-
- case tE:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = lowerRightTone(currChar, glyphSet);
- break;
-
- case tF:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = lowerLeftTone(currChar, glyphSet);
- break;
-
- case tG:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = upperLeftTone(currChar, glyphSet);
- break;
-
- case tH:
- {
- LEUnicode cod = outputBuffer[outputIndex - 1];
- LEUnicode coa = noDescenderCOD(cod, glyphSet);
-
- if (cod != coa) {
- outputBuffer[outputIndex - 1] = coa;
-
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
- }
-
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = lowerBelowVowel(currChar, glyphSet);
- break;
- }
-
- case tR:
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = errorChar;
-
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
-
- case tS:
- if (currChar == CH_SARA_AM) {
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = errorChar;
- }
-
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
-
- default:
- // FIXME: if we get here, there's an error
- // in the state table!
- glyphStorage.setCharIndex(outputIndex, inputIndex, success);
- outputBuffer[outputIndex++] = currChar;
- break;
- }
-
- return transition.nextState;
-}
-
-le_uint8 ThaiShaping::getNextState(LEUnicode ch, le_uint8 prevState, le_int32 inputIndex, le_uint8 glyphSet, LEUnicode errorChar,
- le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
-{
- StateTransition transition;
-
- charClass = getCharClass(ch);
- transition = getTransition(prevState, charClass);
-
- return doTransition(transition, ch, inputIndex, glyphSet, errorChar, output, glyphStorage, outputIndex);
-}
-
-le_bool ThaiShaping::isLegalHere(LEUnicode ch, le_uint8 prevState)
-{
- le_uint8 charClass = getCharClass(ch);
- StateTransition transition = getTransition(prevState, charClass);
-
- switch (transition.action) {
- case tA:
- case tC:
- case tD:
- case tE:
- case tF:
- case tG:
- case tH:
- return TRUE;
-
- case tR:
- case tS:
- return FALSE;
-
- default:
- // FIXME: if we get here, there's an error
- // in the state table!
- return FALSE;
- }
-}
-
-le_int32 ThaiShaping::compose(const LEUnicode *input, le_int32 offset, le_int32 charCount, le_uint8 glyphSet,
- LEUnicode errorChar, LEUnicode *output, LEGlyphStorage &glyphStorage)
-{
- le_uint8 state = 0;
- le_int32 inputIndex;
- le_int32 outputIndex = 0;
- le_uint8 conState = 0xFF;
- le_int32 conInput = -1;
- le_int32 conOutput = -1;
-
- for (inputIndex = 0; inputIndex < charCount; inputIndex += 1) {
- LEUnicode ch = input[inputIndex + offset];
- le_uint8 charClass;
-
- // Decompose SARA AM into NIKHAHIT + SARA AA
- if (ch == CH_SARA_AM && isLegalHere(ch, state)) {
- outputIndex = conOutput;
- state = getNextState(CH_NIKHAHIT, conState, inputIndex, glyphSet, errorChar, charClass,
- output, glyphStorage, outputIndex);
-
- for (int j = conInput + 1; j < inputIndex; j += 1) {
- ch = input[j + offset];
- state = getNextState(ch, state, j, glyphSet, errorChar, charClass,
- output, glyphStorage, outputIndex);
- }
-
- ch = CH_SARA_AA;
- }
-
- state = getNextState(ch, state, inputIndex, glyphSet, errorChar, charClass,
- output, glyphStorage, outputIndex);
-
- if (charClass >= CON && charClass <= COD) {
- conState = state;
- conInput = inputIndex;
- conOutput = outputIndex;
- }
- }
-
- return outputIndex;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ThaiShaping.h b/Build/source/libs/icu-xetex/layout/ThaiShaping.h
deleted file mode 100644
index 4c6d6a51f4f..00000000000
--- a/Build/source/libs/icu-xetex/layout/ThaiShaping.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __THAISHAPING_H
-#define __THAISHAPING_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEGlyphFilter.h"
-#include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class ThaiShaping /* not : public UObject because all methods are static */ {
-public:
-
- enum {
- // Character classes
- NON = 0,
- CON = 1,
- COA = 2,
- COD = 3,
- LVO = 4,
- FV1 = 5,
- FV2 = 6,
- FV3 = 7,
- BV1 = 8,
- BV2 = 9,
- BDI = 10,
- TON = 11,
- AD1 = 12,
- AD2 = 13,
- AD3 = 14,
- NIK = 15,
- AV1 = 16,
- AV2 = 17,
- AV3 = 18,
- classCount = 19,
-
- // State Transition actions
- tA = 0,
- tC = 1,
- tD = 2,
- tE = 3,
- tF = 4,
- tG = 5,
- tH = 6,
- tR = 7,
- tS = 8
- };
-
- struct StateTransition
- {
- le_uint8 nextState;
- le_uint8 action;
-
- le_uint8 getNextState() { return nextState; };
- le_uint8 getAction() { return action; };
- };
-
- static le_int32 compose(const LEUnicode *input, le_int32 offset, le_int32 charCount, le_uint8 glyphSet,
- LEUnicode errorChar, LEUnicode *output, LEGlyphStorage &glyphStorage);
-
-private:
- // forbid instantiation
- ThaiShaping();
-
- static const le_uint8 classTable[];
- static const StateTransition thaiStateTable[][classCount];
-
- inline static StateTransition getTransition(le_uint8 state, le_uint8 currClass);
-
- static le_uint8 doTransition(StateTransition transition, LEUnicode currChar, le_int32 inputIndex, le_uint8 glyphSet,
- LEUnicode errorChar, LEUnicode *outputBuffer, LEGlyphStorage &glyphStorage, le_int32 &outputIndex);
-
- static le_uint8 getNextState(LEUnicode ch, le_uint8 state, le_int32 inputIndex, le_uint8 glyphSet, LEUnicode errorChar,
- le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex);
-
- static le_bool isLegalHere(LEUnicode ch, le_uint8 prevState);
- static le_uint8 getCharClass(LEUnicode ch);
-
- static LEUnicode noDescenderCOD(LEUnicode cod, le_uint8 glyphSet);
- static LEUnicode leftAboveVowel(LEUnicode vowel, le_uint8 glyphSet);
- static LEUnicode lowerBelowVowel(LEUnicode vowel, le_uint8 glyphSet);
- static LEUnicode lowerRightTone(LEUnicode tone, le_uint8 glyphSet);
- static LEUnicode lowerLeftTone(LEUnicode tone, le_uint8 glyphSet);
- static LEUnicode upperLeftTone(LEUnicode tone, le_uint8 glyphSet);
-
-};
-
-inline ThaiShaping::StateTransition ThaiShaping::getTransition(le_uint8 state, le_uint8 currClass)
-{
- return thaiStateTable[state][currClass];
-}
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/ThaiStateTables.cpp b/Build/source/libs/icu-xetex/layout/ThaiStateTables.cpp
deleted file mode 100644
index b1f8b184fbf..00000000000
--- a/Build/source/libs/icu-xetex/layout/ThaiStateTables.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1999-2003 - All Rights Reserved
- *
- * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
- * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
- */
-
-#include "LETypes.h"
-#include "ThaiShaping.h"
-
-U_NAMESPACE_BEGIN
-
-const le_uint8 ThaiShaping::classTable[] = {
- // 0 1 2 3 4 5 6 7 8 9 A B C D E F
- // -------------------------------------------------------------------------------
- /*0E00*/ NON, CON, CON, CON, CON, CON, CON, CON, CON, CON, CON, CON, CON, COD, COD, COD,
- /*0E10*/ COD, CON, CON, CON, CON, CON, CON, CON, CON, CON, CON, COA, CON, COA, CON, COA,
- /*0E20*/ CON, CON, CON, CON, FV3, CON, FV3, CON, CON, CON, CON, CON, CON, CON, CON, NON,
- /*0E30*/ FV1, AV2, FV1, FV1, AV1, AV3, AV2, AV3, BV1, BV2, BDI, NON, NON, NON, NON, NON,
- /*0E40*/ LVO, LVO, LVO, LVO, LVO, FV2, NON, AD2, TON, TON, TON, TON, AD1, NIK, AD3, NON,
- /*0E50*/ NON, NON, NON, NON, NON, NON, NON, NON, NON, NON, NON, NON
-};
-
-const ThaiShaping::StateTransition ThaiShaping::thaiStateTable[][ThaiShaping::classCount] = {
- //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- //| N C C C L F F F B B B T A A A N A A A |
- //| O O O O V V V V V V D O D D D I V V V |
- //| N N A D O 1 2 3 1 2 I N 1 2 3 K 1 2 3 |
- //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- /*00*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*01*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 2, tC}, { 6, tC}, { 0, tC}, { 8, tE}, { 0, tE}, { 0, tE}, { 0, tC}, { 9, tE}, {11, tC}, {14, tC}, {16, tC}},
- /*02*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 3, tE}, { 0, tE}, { 0, tR}, { 0, tR}, { 4, tE}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*03*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*04*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 5, tC}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*05*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*06*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 7, tE}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*07*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*08*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*09*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {10, tC}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*10*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*11*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {12, tC}, { 0, tC}, { 0, tR}, { 0, tR}, {13, tC}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*12*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*13*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*14*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {15, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*15*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*16*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {17, tC}, { 0, tR}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*17*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*18*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tS}, { 0, tA}, {19, tC}, {23, tC}, { 0, tC}, {25, tF}, { 0, tF}, { 0, tF}, { 0, tD}, {26, tF}, {28, tD}, {31, tD}, {33, tD}},
- /*19*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {20, tF}, { 0, tF}, { 0, tR}, { 0, tR}, {21, tF}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*20*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*21*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {22, tC}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*22*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*23*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {24, tF}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*24*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*25*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*26*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {27, tG}, { 0, tG}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*27*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*28*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {29, tG}, { 0, tG}, { 0, tR}, { 0, tR}, {30, tG}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*29*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*30*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*31*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {32, tG}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*32*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*33*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {34, tG}, { 0, tR}, { 0, tG}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*34*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*35*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tS}, { 0, tA}, {36, tH}, {40, tH}, { 0, tH}, {42, tE}, { 0, tE}, { 0, tE}, { 0, tC}, {43, tE}, {45, tC}, {48, tC}, {50, tC}},
- /*36*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {37, tE}, { 0, tE}, { 0, tR}, { 0, tR}, {38, tE}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*37*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*38*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {39, tC}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*39*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*40*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {41, tE}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*41*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*42*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*43*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {44, tC}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*44*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*45*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {46, tC}, { 0, tC}, { 0, tR}, { 0, tR}, {47, tC}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*46*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*47*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*48*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {49, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*49*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*50*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {51, tC}, { 0, tR}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
- /*51*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}}
-};
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp
deleted file mode 100644
index be97ab5baf4..00000000000
--- a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * Developed at DIT - Government of Bhutan
- *
- * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
- *
- * This file is a modification of the ICU file KhmerReordering.cpp
- * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
- * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
- * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
- *
- */
-
-
-#include "OpenTypeLayoutEngine.h"
-#include "TibetanLayoutEngine.h"
-#include "LEGlyphStorage.h"
-#include "TibetanReordering.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TibetanOpenTypeLayoutEngine)
-
-TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
-{
- fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags)
- : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
-{
- fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
- fFeatureOrder = TRUE;
-}
-
-TibetanOpenTypeLayoutEngine::~TibetanOpenTypeLayoutEngine()
-{
- // nothing to do
-}
-
-// Input: characters
-// Output: characters, char indices, tags
-// Returns: output character count
-le_int32 TibetanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
-{
- if (LE_FAILURE(success)) {
- return 0;
- }
-
- if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
- success = LE_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- le_int32 worstCase = count * 3; // worst case is 3 for Khmer TODO check if 2 is enough
-
- outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
-
- if (outChars == NULL) {
- success = LE_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
-
- glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
-
- if (LE_FAILURE(success)) {
- LE_DELETE_ARRAY(outChars);
- return 0;
- }
-
- // NOTE: assumes this allocates featureTags...
- // (probably better than doing the worst case stuff here...)
- le_int32 outCharCount = TibetanReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage);
-
- glyphStorage.adoptGlyphCount(outCharCount);
- return outCharCount;
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h
deleted file mode 100644
index 9deb4f0241a..00000000000
--- a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * Developed at DIT - Government of Bhutan
- *
- * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
- *
- * This file is a modification of the ICU file KhmerReordering.cpp
- * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
- * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
- * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
- *
- */
-
-#ifndef __TIBETANLAYOUTENGINE_H
-#define __TIBETANLAYOUTENGINE_H
-
-// #include "LETypes.h"
-// #include "LEFontInstance.h"
-// #include "LEGlyphFilter.h"
-// #include "LayoutEngine.h"
-// #include "OpenTypeLayoutEngine.h"
-
-// #include "GlyphSubstitutionTables.h"
-// #include "GlyphDefinitionTables.h"
-// #include "GlyphPositioningTables.h"
-
-U_NAMESPACE_BEGIN
-
-// class MPreFixups;
-// class LEGlyphStorage;
-
-/**
- * This class implements OpenType layout for Dzongkha and Tibetan OpenType fonts
- *
- * @internal
- */
-class TibetanOpenTypeLayoutEngine : public OpenTypeLayoutEngine
-{
-public:
- /**
- * This is the main constructor. It constructs an instance of TibetanOpenTypeLayoutEngine for
- * a particular font, script and language. It takes the GSUB table as a parameter since
- * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
- * Tibetan OpenType font.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- * @param gsubTable - the GSUB table
- *
- * @see LayoutEngine::layoutEngineFactory
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
-
- /**
- * This constructor is used when the font requires a "canned" GSUB table which can't be known
- * until after this constructor has been invoked.
- *
- * @param fontInstance - the font
- * @param scriptCode - the script
- * @param langaugeCode - the language
- *
- * @see OpenTypeLayoutEngine
- * @see ScriptAndLangaugeTags.h for script and language codes
- *
- * @internal
- */
- TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
- le_int32 typoFlags);
-
- /**
- * The destructor, virtual for correct polymorphic invocation.
- *
- * @internal
- */
- virtual ~TibetanOpenTypeLayoutEngine();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 3.6
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 3.6
- */
- static UClassID getStaticClassID();
-
-protected:
-
- /**
- * This method does Tibetan OpenType character processing. It assigns the OpenType feature
- * tags to the characters, and may generate output characters which have been reordered.
- * It may also split some vowels, resulting in more output characters than input characters.
- *
- * Input parameters:
- * @param chars - the input character context
- * @param offset - the index of the first character to process
- * @param count - the number of characters to process
- * @param max - the number of characters in the input context
- * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
- * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
- * the auxillary data array will be set to the feature tags.
- *
- * Output parameters:
- * @param success - set to an error code if the operation fails
- *
- * @return the output character count
- *
- * @internal
- */
- virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp b/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp
deleted file mode 100644
index e7035126b68..00000000000
--- a/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
- *
- * Developed at DIT - Government of Bhutan
- *
- * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
- *
- * This file is a modification of the ICU file KhmerReordering.cpp
- * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
- * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
- * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
- *
- */
-
-//#include <stdio.h>
-#include "LETypes.h"
-#include "OpenTypeTables.h"
-#include "TibetanReordering.h"
-#include "LEGlyphStorage.h"
-
-
-U_NAMESPACE_BEGIN
-
-// Characters that get refered to by name...
-enum
-{
- C_DOTTED_CIRCLE = 0x25CC,
- C_PRE_NUMBER_MARK = 0x0F3F
- };
-
-
-enum
-{
- // simple classes, they are used in the statetable (in this file) to control the length of a syllable
- // they are also used to know where a character should be placed (location in reference to the base character)
- // and also to know if a character, when independtly displayed, should be displayed with a dotted-circle to
- // indicate error in syllable construction
- _xx = TibetanClassTable::CC_RESERVED,
- _ba = TibetanClassTable::CC_BASE,
- _sj = TibetanClassTable::CC_SUBJOINED | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _tp = TibetanClassTable::CC_TSA_PHRU | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
- _ac = TibetanClassTable::CC_A_CHUNG | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _cs = TibetanClassTable::CC_COMP_SANSKRIT | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _ha = TibetanClassTable::CC_HALANTA | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _bv = TibetanClassTable::CC_BELOW_VOWEL | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _av = TibetanClassTable::CC_ABOVE_VOWEL | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
- _an = TibetanClassTable::CC_ANUSVARA | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
- _cb = TibetanClassTable::CC_CANDRABINDU | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
- _vs = TibetanClassTable::CC_VISARGA | TibetanClassTable::CF_DOTTED_CIRCLE| TibetanClassTable::CF_POS_AFTER,
- _as = TibetanClassTable::CC_ABOVE_S_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
- _bs = TibetanClassTable::CC_BELOW_S_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
- _di = TibetanClassTable::CC_DIGIT | TibetanClassTable::CF_DIGIT,
- _pd = TibetanClassTable::CC_PRE_DIGIT_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_PREDIGIT | TibetanClassTable::CF_POS_BEFORE ,
- _bd = TibetanClassTable::CC_POST_BELOW_DIGIT_M | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_AFTER
-};
-
-
-// Character class tables
-//_xx Non Combining characters
-//_ba Base Consonants
-//_sj Subjoined consonants
-//_tp Tsa - phru
-//_ac A-chung, Vowel Lengthening mark
-//_cs Precomposed Sanskrit vowel + subjoined consonants
-//_ha Halanta/Virama
-//_bv Below vowel
-//_av above vowel
-//_an Anusvara
-//_cb Candrabindu
-//_vs Visaraga/Post mark
-//_as Upper Stress marks
-//_bs Lower Stress marks
-//_di Digit
-//_pd Number pre combining, Needs reordering
-//_bd Other number combining marks
-
-static const TibetanClassTable::CharClass tibetanCharClasses[] =
-{
- // 0 1 2 3 4 5 6 7 8 9 a b c d e f
- _xx, _ba, _xx, _xx, _ba, _ba, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0F00 - 0F0F 0
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _bd, _bd, _xx, _xx, _xx, _xx, _xx, _xx, // 0F10 - 0F1F 1
- _di, _di, _di, _di, _di, _di, _di, _di, _di, _di, _xx, _xx, _xx, _xx, _xx, _xx, // 0F20 - 0F2F 2
- _xx, _xx, _xx, _xx, _xx, _bs, _xx, _bs, _xx, _tp, _xx, _xx, _xx, _xx, _bd, _pd, // 0F30 - 0F3F 3
- _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _xx, _ba, _ba, _ba, _ba, _ba, _ba, _ba, // 0F40 - 0F4F 4
- _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, // 0F50 - 0F5F 5
- _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _xx, _xx, _xx, _xx, _xx, // 0F60 - 0F6F 6
- _xx, _ac, _av, _cs, _bv, _bv, _cs, _cs, _cs, _cs, _av, _av, _av, _av, _an, _vs, // 0F70 - 0F7F 7
- _av, _cs, _cb, _cb, _ha, _xx, _as, _as, _ba, _ba, _ba, _ba, _xx, _xx, _xx, _xx, // 0F80 - 0F8F 8
- _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _xx, _sj, _sj, _sj, _sj, _sj, _sj, _sj, // 0F90 - 0F9F 9
- _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, // 0FA0 - 0FAF a
- _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _xx, _sj, _sj, // 0FB0 - 0FBF b
- _xx, _xx, _xx, _xx, _xx, _xx, _bs, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FC0 - 0FCF c
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx,// 0FD0 - 0FDF d
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FE0 - 0FEF e
- _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FF0 - 0FFF f
-};
-
-
-//
-// Tibetan Class Tables
-//
-
-//
-// The range of characters defined in the above table is defined here. For Tibetan 0F00 to 0FFF
-// Even if the Tibetan range is bigger, most of the characters are not combinable, and therefore treated
-// as _xx
-static const TibetanClassTable tibetanClassTable = {0x0F00, 0x0FFF, tibetanCharClasses};
-
-
-// Below we define how a character in the input string is either in the tibetanCharClasses table
-// (in which case we get its type back), or an unknown object in which case we get _xx (CC_RESERVED) back
-TibetanClassTable::CharClass TibetanClassTable::getCharClass(LEUnicode ch) const
-{
- if (ch < firstChar || ch > lastChar) {
- return CC_RESERVED;
- }
-
- return classTable[ch - firstChar];
-}
-
-const TibetanClassTable *TibetanClassTable::getTibetanClassTable()
-{
- return &tibetanClassTable;
-}
-
-
-
-class TibetanReorderingOutput : public UMemory {
-private:
- le_int32 fOutIndex;
- LEUnicode *fOutChars;
-
- LEGlyphStorage &fGlyphStorage;
-
-
-public:
- TibetanReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
- : fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
- {
- // nothing else to do...
- }
-
- ~TibetanReorderingOutput()
- {
- // nothing to do here...
- }
-
- void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask featureMask)
- {
- LEErrorCode success = LE_NO_ERROR;
-
- fOutChars[fOutIndex] = ch;
-
- fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
- fGlyphStorage.setAuxData(fOutIndex, featureMask, NULL, success);
-
- fOutIndex += 1;
- }
-
- le_int32 getOutputIndex()
- {
- return fOutIndex;
- }
-};
-
-
-//TODO remove unused flags
-#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-#define blwfFeatureTag LE_BLWF_FEATURE_TAG
-#define pstfFeatureTag LE_PSTF_FEATURE_TAG
-#define presFeatureTag LE_PRES_FEATURE_TAG
-#define blwsFeatureTag LE_BLWS_FEATURE_TAG
-#define abvsFeatureTag LE_ABVS_FEATURE_TAG
-#define pstsFeatureTag LE_PSTS_FEATURE_TAG
-
-#define blwmFeatureTag LE_BLWM_FEATURE_TAG
-#define abvmFeatureTag LE_ABVM_FEATURE_TAG
-#define distFeatureTag LE_DIST_FEATURE_TAG
-
-#define prefFeatureTag LE_PREF_FEATURE_TAG
-#define abvfFeatureTag LE_ABVF_FEATURE_TAG
-#define cligFeatureTag LE_CLIG_FEATURE_TAG
-#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
-
-// Shaping features
-#define prefFeatureMask 0x80000000UL
-#define blwfFeatureMask 0x40000000UL
-#define abvfFeatureMask 0x20000000UL
-#define pstfFeatureMask 0x10000000UL
-#define presFeatureMask 0x08000000UL
-#define blwsFeatureMask 0x04000000UL
-#define abvsFeatureMask 0x02000000UL
-#define pstsFeatureMask 0x01000000UL
-#define cligFeatureMask 0x00800000UL
-#define ccmpFeatureMask 0x00040000UL
-
-// Positioning features
-#define distFeatureMask 0x00400000UL
-#define blwmFeatureMask 0x00200000UL
-#define abvmFeatureMask 0x00100000UL
-#define mkmkFeatureMask 0x00080000UL
-
-#define tagPref (ccmpFeatureMask | prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
-#define tagAbvf (ccmpFeatureMask | abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
-#define tagPstf (ccmpFeatureMask | blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
-#define tagBlwf (ccmpFeatureMask | blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-#define tagDefault (ccmpFeatureMask | prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-
-
-
-// These are in the order in which the features need to be applied
-// for correct processing
-static const FeatureMap featureMap[] =
-{
- // Shaping features
- {ccmpFeatureTag, ccmpFeatureMask},
- {prefFeatureTag, prefFeatureMask},
- {blwfFeatureTag, blwfFeatureMask},
- {abvfFeatureTag, abvfFeatureMask},
- {pstfFeatureTag, pstfFeatureMask},
- {presFeatureTag, presFeatureMask},
- {blwsFeatureTag, blwsFeatureMask},
- {abvsFeatureTag, abvsFeatureMask},
- {pstsFeatureTag, pstsFeatureMask},
- {cligFeatureTag, cligFeatureMask},
-
- // Positioning features
- {distFeatureTag, distFeatureMask},
- {blwmFeatureTag, blwmFeatureMask},
- {abvmFeatureTag, abvmFeatureMask},
- {mkmkFeatureTag, mkmkFeatureMask},
-};
-
-static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
-
-// The stateTable is used to calculate the end (the length) of a well
-// formed Tibetan Syllable.
-//
-// Each horizontal line is ordered exactly the same way as the values in TibetanClassTable
-// CharClassValues in TibetanReordering.h This coincidence of values allows the
-// follow up of the table.
-//
-// Each line corresponds to a state, which does not necessarily need to be a type
-// of component... for example, state 2 is a base, with is always a first character
-// in the syllable, but the state could be produced a consonant of any type when
-// it is the first character that is analysed (in ground state).
-//
-static const le_int8 tibetanStateTable[][TibetanClassTable::CC_COUNT] =
-{
-
-
- //Dzongkha state table
- //xx ba sj tp ac cs ha bv av an cb vs as bs di pd bd
- { 1, 2, 4, 3, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, 20, 21, 21,}, // 0 - ground state
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 1 - exit state (or sign to the right of the syllable)
- {-1, -1, 4, 3, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 2 - Base consonant
- {-1, -1, 5, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 3 - Tsa phru after base
- {-1, -1, 4, 6, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 4 - Subjoined consonant after base
- {-1, -1, 5, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 5 - Subjoined consonant after tsa phru
- {-1, -1, -1, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 6 - Tsa phru after subjoined consonant
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, -1, -1, -1,}, // 7 - Pre Composed Sanskrit
- {-1, -1, -1, -1, -1, -1, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 8 - A-chung
- {-1, -1, -1, -1, -1, -1, -1, -1, 14, 13, 17, -1, 19, 19, -1, -1, -1,}, // 9 - Halanta
- {-1, -1, -1, -1, -1, -1, -1, 11, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 10 - below vowel 1
- {-1, -1, -1, -1, -1, -1, -1, 12, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 11 - below vowel 2
- {-1, -1, -1, -1, -1, -1, -1, -1, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 12 - below vowel 3
- {-1, -1, -1, -1, -1, -1, -1, -1, 14, 17, 17, 18, 19, 19, -1, -1, -1,}, // 13 - Anusvara before vowel
- {-1, -1, -1, -1, -1, -1, -1, -1, 15, 17, 17, 18, 19, 19, -1, -1, -1,}, // 14 - above vowel 1
- {-1, -1, -1, -1, -1, -1, -1, -1, 16, 17, 17, 18, 19, 19, -1, -1, -1,}, // 15 - above vowel 2
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 17, 18, 19, 19, -1, -1, -1,}, // 16 - above vowel 3
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 19, -1, -1, -1,}, // 17 - Anusvara or Candrabindu after vowel
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, -1, -1, -1,}, // 18 - Visarga
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 19 - strss mark
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 21,}, // 20 - digit
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 21 - digit mark
-
-
-};
-
-
-const FeatureMap *TibetanReordering::getFeatureMap(le_int32 &count)
-{
- count = featureMapCount;
-
- return featureMap;
-}
-
-
-// Given an input string of characters and a location in which to start looking
-// calculate, using the state table, which one is the last character of the syllable
-// that starts in the starting position.
-le_int32 TibetanReordering::findSyllable(const TibetanClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
-{
- le_int32 cursor = prev;
- le_int8 state = 0;
-
- while (cursor < charCount) {
- TibetanClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor]) & TibetanClassTable::CF_CLASS_MASK);
-
- state = tibetanStateTable[state][charClass];
-
- if (state < 0) {
- break;
- }
-
- cursor += 1;
- }
-
- return cursor;
-}
-
-
-// This is the real reordering function as applied to the Tibetan language
-
-le_int32 TibetanReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage)
-{
- const TibetanClassTable *classTable = TibetanClassTable::getTibetanClassTable();
-
- TibetanReorderingOutput output(outChars, glyphStorage);
- TibetanClassTable::CharClass charClass;
- le_int32 i, prev = 0;
-
- // This loop only exits when we reach the end of a run, which may contain
- // several syllables.
- while (prev < charCount) {
- le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
-
- // shall we add a dotted circle?
- // If in the position in which the base should be (first char in the string) there is
- // a character that has the Dotted circle flag (a character that cannot be a base)
- // then write a dotted circle
- if (classTable->getCharClass(chars[prev]) & TibetanClassTable::CF_DOTTED_CIRCLE) {
- output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
- }
-
- // copy the rest to output, inverting the pre-number mark if present after a digit.
- for (i = prev; i < syllable; i += 1) {
- charClass = classTable->getCharClass(chars[i]);
-
- if ((TibetanClassTable::CF_DIGIT & charClass)
- && ( classTable->getCharClass(chars[i+1]) & TibetanClassTable::CF_PREDIGIT))
- {
- output.writeChar(C_PRE_NUMBER_MARK, i, tagPref);
- output.writeChar(chars[i], i+1 , tagPref);
- i += 1;
- } else {
- switch (charClass & TibetanClassTable::CF_POS_MASK) {
-
- // If the present character is a number, and the next character is a pre-number combining mark
- // then the two characters are reordered
-
- case TibetanClassTable::CF_POS_ABOVE :
- output.writeChar(chars[i], i, tagAbvf);
- break;
-
- case TibetanClassTable::CF_POS_AFTER :
- output.writeChar(chars[i], i, tagPstf);
- break;
-
- case TibetanClassTable::CF_POS_BELOW :
- output.writeChar(chars[i], i, tagBlwf);
- break;
-
- default:
- // default - any other characters
- output.writeChar(chars[i], i, tagDefault);
- break;
- } // switch
- } // if
- } // for
-
- prev = syllable; // move the pointer to the start of next syllable
- }
-
- return output.getOutputIndex();
-}
-
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TibetanReordering.h b/Build/source/libs/icu-xetex/layout/TibetanReordering.h
deleted file mode 100644
index cafcf5646c8..00000000000
--- a/Build/source/libs/icu-xetex/layout/TibetanReordering.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- * Developed at DIT - Government of Bhutan
- *
- * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
- *
- * This file is a modification of the ICU file KhmerReordering.h
- * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
- * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
- * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
- *
- */
-
-#ifndef __TIBETANREORDERING_H
-#define __TIBETANORDERING_H
-
-/**
- * \file
- * \internal
- */
-
-// #include "LETypes.h"
-// #include "OpenTypeTables.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-// Vocabulary
-// Base -> A consonant in its full (not subscript) form. It is the
-// center of the syllable, it can be souranded by subjoined consonants, vowels,
-// signs... but there is only one base in a stack, it has to be coded as
-// the first character of the syllable.Included here are also groups of base + subjoined
-// which are represented by one single code point in unicode (e.g. 0F43) Also other characters that might take
-// subjoined consonants or other combining characters.
-// Subjoined -> Subjoined consonants and groups of subjoined consonants which have a single code-point
-// to repersent the group (even if each subjoined consonant is represented independently
-// by anothe code-point
-// Tsa Phru --> Tsa Phru character, Bhutanese people will always place it right after the base, but sometimes, due to
-// "normalization"
-// is placed after all the subjoined consonants, and it is also permitted there.
-// A Chung Vowel lengthening mark --> . 0F71 It is placed after the base and any subjoined consonants but before any vowels
-// Precomposed Sanskrit vowels --> The are combinations of subjoined consonants + vowels that have been assigned
-// a given code-point (in spite of each single part of them having also a code-point
-// They are avoided, and users are encouraged to use the combination of code-points that
-// represents the same sound instead of using this combined characters. This is included here
-// for compatibility with possible texts that use them (they are not in the Dzongkha keyboard).
-// Halanta -> The Halanta or Virama character 0F84 indicates that a consonant should not use its inheernt vowel,
-// in spite of not having other vowels present. It is usually placed immediatly after a base consonant,
-// but in some special cases it can also be placed after a subjoined consonant, so this is also
-// permitted in this algorithm. (Halanta is always displayed in Tibetan not used as a connecting char)
-//
-// Subjoined vowels -> Dependent vowels (matras) placed below the base and below all subjoined consonants. There
-// might be as much as three subjoined vowels in a given stack (only one in general text, but up
-// to three for abreviations, they have to be permitted).
-// Superscript vowels -> There are three superscript vowels, and they can be repeated or combined (up to three
-// times. They can combine with subjoined vowels, and are always coded after these.
-// Anusvara --> Nasalisation sign. Traditioinally placed in absence of vowels, but also after vowels. In some
-// special cases it can be placed before a vowel, so this is also permitted
-// Candrabindu -> Forms of the Anusvara with different glyphs (and different in identity) which can be placed
-// without vowel or after the vowel, but never before. Cannot combine with Anusvara.
-// Stress marks -> Marks placed above or below a syllable, affecting the whole syllable. They are combining
-// marks, so they have to be attached to a specific stack. The are using to emphasise a syllable.
-//
-// Digits -> Digits are not considered as non-combining characters because there are a few characters which
-// combine with them, so they have to be considered independently.
-// Digit combining marks -> dependent marks that combine with digits.
-//
-// TODO
-// There are a number of characters in the CJK block that are used in Tibetan script, two of these are symbols
-// are used as bases for combining glyphs, and have not been encoded in Tibetan. As these characters are outside
-// of the tibetan block, they have not been treated in this program.
-
-
-struct TibetanClassTable // This list must include all types of components that can be used inside a syllable
-{
- enum CharClassValues // order is important here! This order must be the same that is found in each horizontal
- // line in the statetable for Tibetan (file TibetanReordering.cpp). It assigns one number
- // to each type of character that has to be considered when analysing the order in which
- // characters can be placed
- {
- CC_RESERVED = 0, //Non Combining Characters
- CC_BASE = 1, // Base Consonants, Base Consonants with Subjoined attached in code point, Sanskrit base marks
- CC_SUBJOINED = 2, // Subjoined Consonats, combination of more than Subjoined Consonants in the code point
- CC_TSA_PHRU = 3, // Tsa-Phru character 0F39
- CC_A_CHUNG = 4, // Vowel Lenthening a-chung mark 0F71
- CC_COMP_SANSKRIT = 5, // Precomposed Sanskrit vowels including Subjoined characters and vowels
- CC_HALANTA = 6, // Halanta Character 0F84
- CC_BELOW_VOWEL = 7, // Subjoined vowels
- CC_ABOVE_VOWEL = 8, // Superscript vowels
- CC_ANUSVARA = 9, // Tibetan sign Rjes Su Nga Ro 0F7E
- CC_CANDRABINDU = 10, // Tibetan sign Sna Ldan and Nyi Zla Naa Da 0F82, 0F83
- CC_VISARGA = 11, // Tibetan sign Rnam Bcad (0F7F)
- CC_ABOVE_S_MARK = 12, // Stress Marks placed above the text
- CC_BELOW_S_MARK = 13, // Stress Marks placed below the text
- CC_DIGIT = 14, // Dzongkha Digits
- CC_PRE_DIGIT_MARK = 15, // Mark placed before the digit
- CC_POST_BELOW_DIGIT_M = 16, // Mark placed below or after the digit
- CC_COUNT = 17 // This is the number of character classes
- };
-
- enum CharClassFlags
- {
- CF_CLASS_MASK = 0x0000FFFF,
-
- CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with this flag is the first in a syllable
- CF_DIGIT = 0x01000000, // flag to speed up comparaisson
- CF_PREDIGIT = 0x02000000, // flag to detect pre-digit marks for reordering
-
- // position flags
- CF_POS_BEFORE = 0x00080000,
- CF_POS_BELOW = 0x00040000,
- CF_POS_ABOVE = 0x00020000,
- CF_POS_AFTER = 0x00010000,
- CF_POS_MASK = 0x000f0000
- };
-
- typedef le_uint32 CharClass;
-
- typedef le_int32 ScriptFlags;
-
- LEUnicode firstChar; // for Tibetan this will become xOF00
- LEUnicode lastChar; // and this x0FFF
- const CharClass *classTable;
-
- CharClass getCharClass(LEUnicode ch) const;
-
- static const TibetanClassTable *getTibetanClassTable();
-};
-
-
-class TibetanReordering /* not : public UObject because all methods are static */ {
-public:
- static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage);
-
- static const FeatureMap *getFeatureMap(le_int32 &count);
-
-private:
- // do not instantiate
- TibetanReordering();
-
- static le_int32 findSyllable(const TibetanClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
-
-};
-
-
-U_NAMESPACE_END
-#endif
diff --git a/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.cpp b/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.cpp
deleted file mode 100644
index a68c056267f..00000000000
--- a/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-#include "TrimmedArrayProcessor.h"
-#include "LEGlyphStorage.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TrimmedArrayProcessor)
-
-TrimmedArrayProcessor::TrimmedArrayProcessor()
-{
-}
-
-TrimmedArrayProcessor::TrimmedArrayProcessor(const MorphSubtableHeader *morphSubtableHeader)
- : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader)
-{
- const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
-
- trimmedArrayLookupTable = (const TrimmedArrayLookupTable *) &header->table;
- firstGlyph = SWAPW(trimmedArrayLookupTable->firstGlyph);
- lastGlyph = firstGlyph + SWAPW(trimmedArrayLookupTable->glyphCount);
-}
-
-TrimmedArrayProcessor::~TrimmedArrayProcessor()
-{
-}
-
-void TrimmedArrayProcessor::process(LEGlyphStorage &glyphStorage)
-{
- le_int32 glyphCount = glyphStorage.getGlyphCount();
- le_int32 glyph;
-
- for (glyph = 0; glyph < glyphCount; glyph += 1) {
- LEGlyphID thisGlyph = glyphStorage[glyph];
- TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(thisGlyph);
-
- if ((ttGlyph > firstGlyph) && (ttGlyph < lastGlyph)) {
- TTGlyphID newGlyph = SWAPW(trimmedArrayLookupTable->valueArray[ttGlyph - firstGlyph]);
-
- glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
- }
- }
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.h b/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.h
deleted file mode 100644
index 9d86980c327..00000000000
--- a/Build/source/libs/icu-xetex/layout/TrimmedArrayProcessor.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
- *
- */
-
-#ifndef __TRIMMEDARRAYPROCESSOR_H
-#define __TRIMMEDARRAYPROCESSOR_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "MorphTables.h"
-#include "SubtableProcessor.h"
-#include "NonContextualGlyphSubst.h"
-#include "NonContextualGlyphSubstProc.h"
-
-U_NAMESPACE_BEGIN
-
-class LEGlyphStorage;
-
-class TrimmedArrayProcessor : public NonContextualGlyphSubstitutionProcessor
-{
-public:
- virtual void process(LEGlyphStorage &glyphStorage);
-
- TrimmedArrayProcessor(const MorphSubtableHeader *morphSubtableHeader);
-
- virtual ~TrimmedArrayProcessor();
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.8
- */
- static UClassID getStaticClassID();
-
-private:
- TrimmedArrayProcessor();
-
-protected:
- TTGlyphID firstGlyph;
- TTGlyphID lastGlyph;
- const TrimmedArrayLookupTable *trimmedArrayLookupTable;
-
-};
-
-U_NAMESPACE_END
-#endif
-
diff --git a/Build/source/libs/icu-xetex/layout/ValueRecords.cpp b/Build/source/libs/icu-xetex/layout/ValueRecords.cpp
deleted file mode 100644
index bdf68468d0c..00000000000
--- a/Build/source/libs/icu-xetex/layout/ValueRecords.cpp
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "ValueRecords.h"
-#include "DeviceTables.h"
-#include "GlyphIterator.h"
-#include "LESwaps.h"
-
-U_NAMESPACE_BEGIN
-
-#define Nibble(value, nibble) ((value >> (nibble * 4)) & 0xF)
-#define NibbleBits(value, nibble) (bitsInNibble[Nibble(value, nibble)])
-
-le_int16 ValueRecord::getFieldValue(ValueFormat valueFormat, ValueRecordField field) const
-{
- le_int16 valueIndex = getFieldIndex(valueFormat, field);
- le_int16 value = values[valueIndex];
-
- return SWAPW(value);
-}
-
-le_int16 ValueRecord::getFieldValue(le_int16 index, ValueFormat valueFormat, ValueRecordField field) const
-{
- le_int16 baseIndex = getFieldCount(valueFormat) * index;
- le_int16 valueIndex = getFieldIndex(valueFormat, field);
- le_int16 value = values[baseIndex + valueIndex];
-
- return SWAPW(value);
-}
-
-void ValueRecord::adjustPosition(ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- float xPlacementAdjustment = 0;
- float yPlacementAdjustment = 0;
- float xAdvanceAdjustment = 0;
- float yAdvanceAdjustment = 0;
-
- if ((valueFormat & vfbXPlacement) != 0) {
- le_int16 value = getFieldValue(valueFormat, vrfXPlacement);
- LEPoint pixels;
-
- fontInstance->transformFunits(value, 0, pixels);
-
- xPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbYPlacement) != 0) {
- le_int16 value = getFieldValue(valueFormat, vrfYPlacement);
- LEPoint pixels;
-
- fontInstance->transformFunits(0, value, pixels);
-
- xPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbXAdvance) != 0) {
- le_int16 value = getFieldValue(valueFormat, vrfXAdvance);
- LEPoint pixels;
-
- fontInstance->transformFunits(value, 0, pixels);
-
- xAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbYAdvance) != 0) {
- le_int16 value = getFieldValue(valueFormat, vrfYAdvance);
- LEPoint pixels;
-
- fontInstance->transformFunits(0, value, pixels);
-
- xAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- // FIXME: The device adjustments should really be transformed, but
- // the only way I know how to do that is to convert them to le_int16 units,
- // transform them, and then convert them back to pixels. Sigh...
- if ((valueFormat & vfbAnyDevice) != 0) {
- le_int16 xppem = (le_int16) fontInstance->getXPixelsPerEm();
- le_int16 yppem = (le_int16) fontInstance->getYPixelsPerEm();
-
- if ((valueFormat & vfbXPlaDevice) != 0) {
- Offset dtOffset = getFieldValue(valueFormat, vrfXPlaDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 xAdj = dt->getAdjustment(xppem);
-
- if (fontInstance->getLayoutDirVertical())
- yPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj);
- else
- xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj);
- }
- }
-
- if ((valueFormat & vfbYPlaDevice) != 0) {
- Offset dtOffset = getFieldValue(valueFormat, vrfYPlaDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 yAdj = dt->getAdjustment(yppem);
-
- if (fontInstance->getLayoutDirVertical())
- xPlacementAdjustment -= fontInstance->yPixelsToUnits(yAdj);
- else
- yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj);
- }
- }
-
- if ((valueFormat & vfbXAdvDevice) != 0) {
- Offset dtOffset = getFieldValue(valueFormat, vrfXAdvDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 xAdj = dt->getAdjustment(xppem);
-
- if (fontInstance->getLayoutDirVertical())
- yAdvanceAdjustment -= fontInstance->xPixelsToUnits(xAdj);
- else
- xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj);
- }
- }
-
- if ((valueFormat & vfbYAdvDevice) != 0) {
- Offset dtOffset = getFieldValue(valueFormat, vrfYAdvDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 yAdj = dt->getAdjustment(yppem);
-
- if (fontInstance->getLayoutDirVertical())
- xAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj);
- else
- yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj);
- }
- }
- }
-
- glyphIterator.adjustCurrGlyphPositionAdjustment(
- xPlacementAdjustment, yPlacementAdjustment, xAdvanceAdjustment, yAdvanceAdjustment);
-}
-
-void ValueRecord::adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
- const LEFontInstance *fontInstance) const
-{
- float xPlacementAdjustment = 0;
- float yPlacementAdjustment = 0;
- float xAdvanceAdjustment = 0;
- float yAdvanceAdjustment = 0;
-
- if ((valueFormat & vfbXPlacement) != 0) {
- le_int16 value = getFieldValue(index, valueFormat, vrfXPlacement);
- LEPoint pixels;
-
- fontInstance->transformFunits(value, 0, pixels);
-
- xPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbYPlacement) != 0) {
- le_int16 value = getFieldValue(index, valueFormat, vrfYPlacement);
- LEPoint pixels;
-
- fontInstance->transformFunits(0, value, pixels);
-
- xPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yPlacementAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbXAdvance) != 0) {
- le_int16 value = getFieldValue(index, valueFormat, vrfXAdvance);
- LEPoint pixels;
-
- fontInstance->transformFunits(value, 0, pixels);
-
- xAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- if ((valueFormat & vfbYAdvance) != 0) {
- le_int16 value = getFieldValue(index, valueFormat, vrfYAdvance);
- LEPoint pixels;
-
- fontInstance->transformFunits(0, value, pixels);
-
- xAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? fontInstance->yPixelsToUnits(pixels.fY)
- : fontInstance->xPixelsToUnits(pixels.fX);
- yAdvanceAdjustment += fontInstance->getLayoutDirVertical()
- ? -fontInstance->xPixelsToUnits(pixels.fX)
- : fontInstance->yPixelsToUnits(pixels.fY);
- }
-
- // FIXME: The device adjustments should really be transformed, but
- // the only way I know how to do that is to convert them to le_int16 units,
- // transform them, and then convert them back to pixels. Sigh...
- if ((valueFormat & vfbAnyDevice) != 0) {
- le_int16 xppem = (le_int16) fontInstance->getXPixelsPerEm();
- le_int16 yppem = (le_int16) fontInstance->getYPixelsPerEm();
-
- if ((valueFormat & vfbXPlaDevice) != 0) {
- Offset dtOffset = getFieldValue(index, valueFormat, vrfXPlaDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 xAdj = dt->getAdjustment(xppem);
-
- if (fontInstance->getLayoutDirVertical())
- yPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj);
- else
- xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj);
- }
- }
-
- if ((valueFormat & vfbYPlaDevice) != 0) {
- Offset dtOffset = getFieldValue(index, valueFormat, vrfYPlaDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 yAdj = dt->getAdjustment(yppem);
-
- if (fontInstance->getLayoutDirVertical())
- xPlacementAdjustment -= fontInstance->yPixelsToUnits(yAdj);
- else
- yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj);
- }
- }
-
- if ((valueFormat & vfbXAdvDevice) != 0) {
- Offset dtOffset = getFieldValue(index, valueFormat, vrfXAdvDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 xAdj = dt->getAdjustment(xppem);
-
- if (fontInstance->getLayoutDirVertical())
- yAdvanceAdjustment -= fontInstance->xPixelsToUnits(xAdj);
- else
- xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj);
- }
- }
-
- if ((valueFormat & vfbYAdvDevice) != 0) {
- Offset dtOffset = getFieldValue(index, valueFormat, vrfYAdvDevice);
-
- if (dtOffset != 0) {
- const DeviceTable *dt = (const DeviceTable *) (base + dtOffset);
- le_int16 yAdj = dt->getAdjustment(yppem);
-
- if (fontInstance->getLayoutDirVertical())
- xAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj);
- else
- yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj);
- }
- }
- }
-
- glyphIterator.adjustCurrGlyphPositionAdjustment(
- xPlacementAdjustment, yPlacementAdjustment, xAdvanceAdjustment, yAdvanceAdjustment);
-}
-
-le_int16 ValueRecord::getSize(ValueFormat valueFormat)
-{
- return getFieldCount(valueFormat) * sizeof(le_int16);
-}
-
-le_int16 ValueRecord::getFieldCount(ValueFormat valueFormat)
-{
- static const le_int16 bitsInNibble[] =
- {
- 0 + 0 + 0 + 0,
- 0 + 0 + 0 + 1,
- 0 + 0 + 1 + 0,
- 0 + 0 + 1 + 1,
- 0 + 1 + 0 + 0,
- 0 + 1 + 0 + 1,
- 0 + 1 + 1 + 0,
- 0 + 1 + 1 + 1,
- 1 + 0 + 0 + 0,
- 1 + 0 + 0 + 1,
- 1 + 0 + 1 + 0,
- 1 + 0 + 1 + 1,
- 1 + 1 + 0 + 0,
- 1 + 1 + 0 + 1,
- 1 + 1 + 1 + 0,
- 1 + 1 + 1 + 1
- };
-
- valueFormat &= ~vfbReserved;
-
- return NibbleBits(valueFormat, 0) + NibbleBits(valueFormat, 1) +
- NibbleBits(valueFormat, 2) + NibbleBits(valueFormat, 3);
-}
-
-le_int16 ValueRecord::getFieldIndex(ValueFormat valueFormat, ValueRecordField field)
-{
- static const le_uint16 beforeMasks[] =
- {
- 0x0000,
- 0x0001,
- 0x0003,
- 0x0007,
- 0x000F,
- 0x001F,
- 0x003F,
- 0x007F,
- 0x00FF,
- 0x01FF,
- 0x03FF,
- 0x07FF,
- 0x0FFF,
- 0x1FFF,
- 0x3FFF,
- 0x7FFF,
- 0xFFFF
- };
-
- return getFieldCount(valueFormat & beforeMasks[field]);
-}
-
-U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ValueRecords.h b/Build/source/libs/icu-xetex/layout/ValueRecords.h
deleted file mode 100644
index 83db7b31972..00000000000
--- a/Build/source/libs/icu-xetex/layout/ValueRecords.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
- *
- */
-
-#ifndef __VALUERECORDS_H
-#define __VALUERECORDS_H
-
-/**
- * \file
- * \internal
- */
-
-#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "OpenTypeTables.h"
-#include "GlyphIterator.h"
-
-U_NAMESPACE_BEGIN
-
-typedef le_uint16 ValueFormat;
-typedef le_int16 ValueRecordField;
-
-struct ValueRecord
-{
- le_int16 values[ANY_NUMBER];
-
- le_int16 getFieldValue(ValueFormat valueFormat, ValueRecordField field) const;
- le_int16 getFieldValue(le_int16 index, ValueFormat valueFormat, ValueRecordField field) const;
- void adjustPosition(ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
- const LEFontInstance *fontInstance) const;
- void adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
- const LEFontInstance *fontInstance) const;
-
- static le_int16 getSize(ValueFormat valueFormat);
-
-private:
- static le_int16 getFieldCount(ValueFormat valueFormat);
- static le_int16 getFieldIndex(ValueFormat valueFormat, ValueRecordField field);
-};
-
-enum ValueRecordFields
-{
- vrfXPlacement = 0,
- vrfYPlacement = 1,
- vrfXAdvance = 2,
- vrfYAdvance = 3,
- vrfXPlaDevice = 4,
- vrfYPlaDevice = 5,
- vrfXAdvDevice = 6,
- vrfYAdvDevice = 7
-};
-
-enum ValueFormatBits
-{
- vfbXPlacement = 0x0001,
- vfbYPlacement = 0x0002,
- vfbXAdvance = 0x0004,
- vfbYAdvance = 0x0008,
- vfbXPlaDevice = 0x0010,
- vfbYPlaDevice = 0x0020,
- vfbXAdvDevice = 0x0040,
- vfbYAdvDevice = 0x0080,
- vfbReserved = 0xFF00,
- vfbAnyDevice = vfbXPlaDevice + vfbYPlaDevice + vfbXAdvDevice + vfbYAdvDevice
-};
-
-U_NAMESPACE_END
-#endif
-
-
diff --git a/Build/source/libs/icu-xetex/layout/layout.rc b/Build/source/libs/icu-xetex/layout/layout.rc
deleted file mode 100644
index 7eb64da2edf..00000000000
--- a/Build/source/libs/icu-xetex/layout/layout.rc
+++ /dev/null
@@ -1,108 +0,0 @@
-// Do not edit with Microsoft Developer Studio Resource Editor.
-// It will permanently substitute version numbers that are intended to be
-// picked up by the pre-processor during each build.
-// Copyright (c) 2001-2005 International Business Machines
-// Corporation and others. All Rights Reserved.
-//
-#include "../common/msvcres.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include <winresrc.h>
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-//
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1252)
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "../common/msvcres.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include <winresrc.h>\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-#define STR(s) #s
-#define CommaVersionString(a, b, c, d) STR(a) ", " STR(b) ", " STR(c) ", " STR(d) "\0"
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0
- PRODUCTVERSION U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS VOS__WINDOWS32
- FILETYPE VFT_DLL
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "00000000"
- BEGIN
- VALUE "Comments", ICU_WEBSITE "\0"
- VALUE "CompanyName", "IBM Corporation and others\0"
- VALUE "FileDescription", "IBM ICU Layout DLL\0"
- VALUE "FileVersion", CommaVersionString(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0)
- VALUE "LegalCopyright", U_COPYRIGHT_STRING "\0"
-#ifdef _DEBUG
- VALUE "OriginalFilename", "icule" U_ICU_VERSION_SHORT "d.dll\0")
-#else
- VALUE "OriginalFilename", "icule" U_ICU_VERSION_SHORT ".dll\0")
-#endif
- VALUE "PrivateBuild", "\0"
- VALUE "ProductName", "International Components for Unicode\0"
- VALUE "ProductVersion", CommaVersionString(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0)
- VALUE "SpecialBuild", "\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x000, 0000
- END
-END
-
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/Build/source/libs/icu-xetex/layout/layout.vcproj b/Build/source/libs/icu-xetex/layout/layout.vcproj
deleted file mode 100644
index 12ab9c54c10..00000000000
--- a/Build/source/libs/icu-xetex/layout/layout.vcproj
+++ /dev/null
@@ -1,786 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="layout"
- SccProjectName=""
- SccLocalPath="">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\..\..\lib"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\include;..\common"
- PreprocessorDefinitions="WIN32;_DEBUG;U_LAYOUT_IMPLEMENTATION"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- BufferSecurityCheck="TRUE"
- DisableLanguageExtensions="TRUE"
- TreatWChar_tAsBuiltInType="TRUE"
- PrecompiledHeaderFile=".\Debug/layout.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- OutputFile="..\..\bin\icule36d.dll"
- LinkIncremental="2"
- SuppressStartupBanner="TRUE"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icule36d.pdb"
- BaseAddress="0x4ac00000"
- ImportLibrary="..\..\lib\iculed.lib"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\..\..\lib\iculed.tlb"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="..\common"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\..\..\lib"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\include;..\common"
- PreprocessorDefinitions="WIN32;NDEBUG;U_LAYOUT_IMPLEMENTATION"
- StringPooling="TRUE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="TRUE"
- DisableLanguageExtensions="TRUE"
- TreatWChar_tAsBuiltInType="TRUE"
- PrecompiledHeaderFile=".\Release/layout.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- OutputFile="..\..\bin\icule36.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icule36.pdb"
- EnableCOMDATFolding="2"
- BaseAddress="0x4ac00000"
- ImportLibrary="..\..\lib\icule.lib"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\..\..\lib\icule.tlb"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="..\common"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath=".\AlternateSubstSubtables.cpp">
- </File>
- <File
- RelativePath=".\AnchorTables.cpp">
- </File>
- <File
- RelativePath=".\ArabicLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\ArabicShaping.cpp">
- </File>
- <File
- RelativePath=".\CanonData.cpp">
- </File>
- <File
- RelativePath=".\CanonShaping.cpp">
- </File>
- <File
- RelativePath=".\ClassDefinitionTables.cpp">
- </File>
- <File
- RelativePath=".\ContextualGlyphSubstProc.cpp">
- </File>
- <File
- RelativePath=".\ContextualSubstSubtables.cpp">
- </File>
- <File
- RelativePath=".\CoverageTables.cpp">
- </File>
- <File
- RelativePath=".\CursiveAttachmentSubtables.cpp">
- </File>
- <File
- RelativePath=".\DeviceTables.cpp">
- </File>
- <File
- RelativePath=".\ExtensionSubtables.cpp">
- </File>
- <File
- RelativePath=".\Features.cpp">
- </File>
- <File
- RelativePath=".\GDEFMarkFilter.cpp">
- </File>
- <File
- RelativePath=".\GlyphDefinitionTables.cpp">
- </File>
- <File
- RelativePath=".\GlyphIterator.cpp">
- </File>
- <File
- RelativePath="GlyphLookupTables.cpp">
- </File>
- <File
- RelativePath=".\GlyphPositionAdjustments.cpp">
- </File>
- <File
- RelativePath=".\GlyphPositioningTables.cpp">
- </File>
- <File
- RelativePath=".\GlyphPosnLookupProc.cpp">
- </File>
- <File
- RelativePath=".\GlyphSubstitutionTables.cpp">
- </File>
- <File
- RelativePath=".\GlyphSubstLookupProc.cpp">
- </File>
- <File
- RelativePath=".\GXLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\HangulLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\HanLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\IndicClassTables.cpp">
- </File>
- <File
- RelativePath=".\IndicLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\IndicRearrangementProcessor.cpp">
- </File>
- <File
- RelativePath=".\IndicReordering.cpp">
- </File>
- <File
- RelativePath=".\KernTable.cpp">
- </File>
- <File
- RelativePath=".\KhmerLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\KhmerReordering.cpp">
- </File>
- <File
- RelativePath=".\LayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\LEFontInstance.cpp">
- </File>
- <File
- RelativePath=".\LEGlyphStorage.cpp">
- </File>
- <File
- RelativePath=".\LEInsertionList.cpp">
- </File>
- <File
- RelativePath=".\LigatureSubstProc.cpp">
- </File>
- <File
- RelativePath=".\LigatureSubstSubtables.cpp">
- </File>
- <File
- RelativePath=".\LookupProcessor.cpp">
- </File>
- <File
- RelativePath=".\Lookups.cpp">
- </File>
- <File
- RelativePath=".\LookupTables.cpp">
- </File>
- <File
- RelativePath=".\MarkArrays.cpp">
- </File>
- <File
- RelativePath=".\MarkToBasePosnSubtables.cpp">
- </File>
- <File
- RelativePath=".\MarkToLigaturePosnSubtables.cpp">
- </File>
- <File
- RelativePath=".\MarkToMarkPosnSubtables.cpp">
- </File>
- <File
- RelativePath=".\MirroredCharData.cpp">
- </File>
- <File
- RelativePath=".\MorphTables.cpp">
- </File>
- <File
- RelativePath=".\MPreFixups.cpp">
- </File>
- <File
- RelativePath=".\MultipleSubstSubtables.cpp">
- </File>
- <File
- RelativePath=".\NonContextualGlyphSubstProc.cpp">
- </File>
- <File
- RelativePath=".\OpenTypeLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\OpenTypeUtilities.cpp">
- </File>
- <File
- RelativePath=".\PairPositioningSubtables.cpp">
- </File>
- <File
- RelativePath=".\ScriptAndLanguage.cpp">
- </File>
- <File
- RelativePath=".\ScriptAndLanguageTags.cpp">
- </File>
- <File
- RelativePath=".\SegmentArrayProcessor.cpp">
- </File>
- <File
- RelativePath=".\SegmentSingleProcessor.cpp">
- </File>
- <File
- RelativePath=".\ShapingTypeData.cpp">
- </File>
- <File
- RelativePath=".\SimpleArrayProcessor.cpp">
- </File>
- <File
- RelativePath=".\SinglePositioningSubtables.cpp">
- </File>
- <File
- RelativePath=".\SingleSubstitutionSubtables.cpp">
- </File>
- <File
- RelativePath=".\SingleTableProcessor.cpp">
- </File>
- <File
- RelativePath=".\StateTableProcessor.cpp">
- </File>
- <File
- RelativePath=".\SubstitutionLookups.cpp">
- </File>
- <File
- RelativePath=".\SubtableProcessor.cpp">
- </File>
- <File
- RelativePath=".\ThaiLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\ThaiShaping.cpp">
- </File>
- <File
- RelativePath=".\ThaiStateTables.cpp">
- </File>
- <File
- RelativePath=".\TibetanLayoutEngine.cpp">
- </File>
- <File
- RelativePath=".\TibetanReordering.cpp">
- </File>
- <File
- RelativePath=".\TrimmedArrayProcessor.cpp">
- </File>
- <File
- RelativePath=".\ValueRecords.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <File
- RelativePath=".\AlternateSubstSubtables.h">
- </File>
- <File
- RelativePath=".\AnchorTables.h">
- </File>
- <File
- RelativePath=".\ArabicLayoutEngine.h">
- </File>
- <File
- RelativePath=".\ArabicShaping.h">
- </File>
- <File
- RelativePath=".\AttachmentPosnSubtables.h">
- </File>
- <File
- RelativePath=".\CanonShaping.h">
- </File>
- <File
- RelativePath=".\CharSubstitutionFilter.h">
- </File>
- <File
- RelativePath=".\ClassDefinitionTables.h">
- </File>
- <File
- RelativePath=".\ContextualGlyphInsertion.h">
- </File>
- <File
- RelativePath=".\ContextualGlyphSubstitution.h">
- </File>
- <File
- RelativePath=".\ContextualGlyphSubstProc.h">
- </File>
- <File
- RelativePath=".\ContextualSubstSubtables.h">
- </File>
- <File
- RelativePath=".\CoverageTables.h">
- </File>
- <File
- RelativePath=".\CursiveAttachmentSubtables.h">
- </File>
- <File
- RelativePath=".\DefaultCharMapper.h">
- </File>
- <File
- RelativePath=".\DeviceTables.h">
- </File>
- <File
- RelativePath=".\ExtensionSubtables.h">
- </File>
- <File
- RelativePath=".\Features.h">
- </File>
- <File
- RelativePath=".\GDEFMarkFilter.h">
- </File>
- <File
- RelativePath=".\GlyphDefinitionTables.h">
- </File>
- <File
- RelativePath=".\GlyphIterator.h">
- </File>
- <File
- RelativePath="GlyphLookupTables.h">
- </File>
- <File
- RelativePath=".\GlyphPositionAdjustments.h">
- </File>
- <File
- RelativePath=".\GlyphPositioningTables.h">
- </File>
- <File
- RelativePath=".\GlyphPosnLookupProc.h">
- </File>
- <File
- RelativePath=".\GlyphSubstitutionTables.h">
- </File>
- <File
- RelativePath=".\GlyphSubstLookupProc.h">
- </File>
- <File
- RelativePath=".\GXLayoutEngine.h">
- </File>
- <File
- RelativePath=".\HangulLayoutEngine.h">
- </File>
- <File
- RelativePath=".\HanLayoutEngine.h">
- </File>
- <File
- RelativePath=".\IndicLayoutEngine.h">
- </File>
- <File
- RelativePath=".\IndicRearrangement.h">
- </File>
- <File
- RelativePath=".\IndicRearrangementProcessor.h">
- </File>
- <File
- RelativePath=".\IndicReordering.h">
- </File>
- <File
- RelativePath=".\KernTable.h">
- </File>
- <File
- RelativePath=".\KhmerLayoutEngine.h">
- </File>
- <File
- RelativePath=".\KhmerReordering.h">
- </File>
- <File
- RelativePath=".\LayoutEngine.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LayoutTables.h">
- </File>
- <File
- RelativePath=".\LEFontInstance.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LEGlyphFilter.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LEGlyphStorage.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LEInsertionList.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LELanguages.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LEScripts.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LESwaps.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LETypes.h">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\layout
-"
- Outputs="..\..\include\layout\$(InputFileName)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\LigatureSubstitution.h">
- </File>
- <File
- RelativePath=".\LigatureSubstProc.h">
- </File>
- <File
- RelativePath=".\LigatureSubstSubtables.h">
- </File>
- <File
- RelativePath=".\LookupProcessor.h">
- </File>
- <File
- RelativePath=".\Lookups.h">
- </File>
- <File
- RelativePath=".\LookupTables.h">
- </File>
- <File
- RelativePath=".\MarkArrays.h">
- </File>
- <File
- RelativePath=".\MarkToBasePosnSubtables.h">
- </File>
- <File
- RelativePath=".\MarkToLigaturePosnSubtables.h">
- </File>
- <File
- RelativePath=".\MarkToMarkPosnSubtables.h">
- </File>
- <File
- RelativePath=".\MorphStateTables.h">
- </File>
- <File
- RelativePath=".\MorphTables.h">
- </File>
- <File
- RelativePath=".\MPreFixups.h">
- </File>
- <File
- RelativePath=".\MultipleSubstSubtables.h">
- </File>
- <File
- RelativePath=".\NonContextualGlyphSubst.h">
- </File>
- <File
- RelativePath=".\NonContextualGlyphSubstProc.h">
- </File>
- <File
- RelativePath=".\OpenTypeLayoutEngine.h">
- </File>
- <File
- RelativePath=".\OpenTypeTables.h">
- </File>
- <File
- RelativePath=".\OpenTypeUtilities.h">
- </File>
- <File
- RelativePath=".\PairPositioningSubtables.h">
- </File>
- <File
- RelativePath=".\ScriptAndLanguage.h">
- </File>
- <File
- RelativePath=".\ScriptAndLanguageTags.h">
- </File>
- <File
- RelativePath=".\SegmentArrayProcessor.h">
- </File>
- <File
- RelativePath=".\SegmentSingleProcessor.h">
- </File>
- <File
- RelativePath=".\SimpleArrayProcessor.h">
- </File>
- <File
- RelativePath=".\SinglePositioningSubtables.h">
- </File>
- <File
- RelativePath=".\SingleSubstitutionSubtables.h">
- </File>
- <File
- RelativePath=".\SingleTableProcessor.h">
- </File>
- <File
- RelativePath=".\StateTableProcessor.h">
- </File>
- <File
- RelativePath=".\StateTables.h">
- </File>
- <File
- RelativePath=".\SubstitutionLookups.h">
- </File>
- <File
- RelativePath=".\SubtableProcessor.h">
- </File>
- <File
- RelativePath=".\ThaiLayoutEngine.h">
- </File>
- <File
- RelativePath=".\ThaiShaping.h">
- </File>
- <File
- RelativePath=".\TibetanLayoutEngine.h">
- </File>
- <File
- RelativePath=".\TibetanReordering.h">
- </File>
- <File
- RelativePath=".\TrimmedArrayProcessor.h">
- </File>
- <File
- RelativePath=".\ValueRecords.h">
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
- <File
- RelativePath=".\layout.rc">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>