Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e36025a2
Commit
e36025a2
authored
Sep 23, 2014
by
Nikolay Sivov
Committed by
Alexandre Julliard
Sep 24, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dwrite: Implement itemization by script id using Unicode.org data.
parent
b5eec813
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1053 additions
and
248 deletions
+1053
-248
Makefile.in
dlls/dwrite/Makefile.in
+2
-1
analyzer.c
dlls/dwrite/analyzer.c
+18
-244
scripts.c
dlls/dwrite/scripts.c
+796
-0
scripts.h
dlls/dwrite/scripts.h
+121
-0
make_unicode
tools/make_unicode
+116
-3
No files found.
dlls/dwrite/Makefile.in
View file @
e36025a2
...
...
@@ -9,4 +9,5 @@ C_SRCS = \
layout.c
\
linebreak.c
\
main.c
\
opentype.c
opentype.c
\
scripts.c
dlls/dwrite/analyzer.c
View file @
e36025a2
...
...
@@ -23,248 +23,27 @@
#include "dwrite.h"
#include "dwrite_private.h"
#include "scripts.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
dwrite
);
extern
const
unsigned
short
wine_linebreak_table
[];
extern
const
unsigned
short
wine_scripts_table
[];
enum
scriptcode
{
Script_Arabic
=
0
,
Script_Armenian
=
1
,
Script_Balinese
=
2
,
Script_Bengali
=
3
,
Script_Buginese
=
6
,
Script_Canadian
=
8
,
Script_Cherokee
=
11
,
Script_Controls
=
12
,
Script_Coptic
=
13
,
Script_Cyrillic
=
16
,
Script_Devanagari
=
18
,
Script_Ethiopic
=
19
,
Script_Georgian
=
20
,
Script_Glagolitic
=
22
,
Script_Greek
=
23
,
Script_Gujarati
=
24
,
Script_Gurmukhi
=
25
,
Script_Hangul
=
27
,
Script_Hebrew
=
29
,
Script_Kannada
=
32
,
Script_Khmer
=
36
,
Script_Lao
=
37
,
Script_Latin
=
38
,
Script_Lepcha
=
39
,
Script_Limbu
=
40
,
Script_Malayalam
=
44
,
Script_Mongolian
=
45
,
Script_Myanmar
=
46
,
Script_New_TaiLue
=
47
,
Script_NKo
=
48
,
Script_Ogham
=
49
,
Script_OlChiki
=
50
,
Script_Oriya
=
53
,
Script_Runic
=
58
,
Script_Sinhala
=
61
,
Script_Sundanese
=
62
,
Script_Syriac
=
64
,
Script_TaiLe
=
67
,
Script_Tamil
=
68
,
Script_Telugu
=
69
,
Script_Thaana
=
70
,
Script_Thai
=
71
,
Script_Tibetan
=
72
,
Script_Tifinagh
=
73
,
Script_Symbol
=
77
,
Script_Unknown
=
(
UINT16
)
-
1
};
struct
script_range
{
UINT16
script
;
DWORD
first
;
DWORD
last
;
};
static
const
struct
script_range
script_ranges
[]
=
{
/* C0 Controls: U+0000–U+001F */
/* ASCII punctuation and symbols: U+0020–U+002F */
/* ASCII digits: U+0030–U+0039 */
/* ASCII punctuation and symbols: U+003A–U+0040 */
{
Script_Symbol
,
0x00
,
0x040
},
/* Latin uppercase: U+0041–U+005A */
{
Script_Latin
,
0x41
,
0x5a
},
/* ASCII punctuation and symbols: U+005B–U+0060 */
{
Script_Symbol
,
0x5b
,
0x060
},
/* Latin lowercase: U+0061–U+007A */
{
Script_Latin
,
0x61
,
0x7a
},
/* ASCII punctuation and symbols, control char DEL: U+007B–U+007F */
{
Script_Symbol
,
0x7b
,
0x7f
},
/* C1 Controls: U+0080–U+009F */
{
Script_Controls
,
0x80
,
0x9f
},
/* Latin-1 Supplement: U+00A0–U+00FF */
/* Latin Extended-A: U+0100–U+017F */
/* Latin Extended-B: U+0180–U+024F */
/* IPA Extensions: U+0250–U+02AF */
/* Spacing Modifier Letters: U+02B0–U+02FF */
{
Script_Latin
,
0xa0
,
0x2ff
},
/* Combining Diacritical Marks: U+0300–U+036F */
{
Script_Symbol
,
0x300
,
0x36f
},
/* Greek: U+0370–U+03E1 */
{
Script_Greek
,
0x370
,
0x3e1
},
/* Coptic: U+03E2–U+03Ef */
{
Script_Coptic
,
0x3e2
,
0x3ef
},
/* Greek: U+03F0–U+03FF */
{
Script_Greek
,
0x3f0
,
0x3ff
},
/* Cyrillic: U+0400–U+04FF */
/* Cyrillic Supplement: U+0500–U+052F */
/* Cyrillic Supplement range is incomplete cause it's based on Unicode 5.2
that doesn't define some Abkhaz and Azerbaijani letters, we support Unicode 6.0 range here */
{
Script_Cyrillic
,
0x400
,
0x52f
},
/* Armenian: U+0530–U+058F */
{
Script_Armenian
,
0x530
,
0x58f
},
/* Hebrew: U+0590–U+05FF */
{
Script_Hebrew
,
0x590
,
0x5ff
},
/* Arabic: U+0600–U+06FF */
{
Script_Arabic
,
0x600
,
0x6ff
},
/* Syriac: U+0600–U+06FF */
{
Script_Syriac
,
0x700
,
0x74f
},
/* Arabic Supplement: U+0750–U+077F */
{
Script_Arabic
,
0x750
,
0x77f
},
/* Thaana: U+0780–U+07BF */
{
Script_Thaana
,
0x780
,
0x7bf
},
/* N'Ko: U+07C0–U+07FF */
{
Script_NKo
,
0x7c0
,
0x7ff
},
/* Devanagari: U+0900–U+097F */
{
Script_Devanagari
,
0x900
,
0x97f
},
/* Bengali: U+0980–U+09FF */
{
Script_Bengali
,
0x980
,
0x9ff
},
/* Gurmukhi: U+0A00–U+0A7F */
{
Script_Gurmukhi
,
0xa00
,
0xa7f
},
/* Gujarati: U+0A80–U+0AFF */
{
Script_Gujarati
,
0xa80
,
0xaff
},
/* Oriya: U+0B00–U+0B7F */
{
Script_Oriya
,
0xb00
,
0xb7f
},
/* Tamil: U+0B80–U+0BFF */
{
Script_Tamil
,
0xb80
,
0xbff
},
/* Telugu: U+0C00–U+0C7F */
{
Script_Telugu
,
0xc00
,
0xc7f
},
/* Kannada: U+0C80–U+0CFF */
{
Script_Kannada
,
0xc80
,
0xcff
},
/* Malayalam: U+0D00–U+0D7F */
{
Script_Malayalam
,
0xd00
,
0xd7f
},
/* Sinhala: U+0D80–U+0DFF */
{
Script_Sinhala
,
0xd80
,
0xdff
},
/* Thai: U+0E00–U+0E7F */
{
Script_Thai
,
0xe00
,
0xe7f
},
/* Lao: U+0E80–U+0EFF */
{
Script_Lao
,
0xe80
,
0xeff
},
/* Tibetan: U+0F00–U+0FFF */
{
Script_Tibetan
,
0xf00
,
0xfff
},
/* Myanmar: U+1000–U+109F */
{
Script_Myanmar
,
0x1000
,
0x109f
},
/* Georgian: U+10A0–U+10FF */
{
Script_Georgian
,
0x10a0
,
0x10ff
},
/* Hangul Jamo: U+1100–U+11FF */
{
Script_Hangul
,
0x1100
,
0x11ff
},
/* Ethiopic: U+1200–U+137F */
/* Ethiopic Extensions: U+1380–U+139F */
{
Script_Ethiopic
,
0x1200
,
0x139f
},
/* Cherokee: U+13A0–U+13FF */
{
Script_Cherokee
,
0x13a0
,
0x13ff
},
/* Canadian Aboriginal Syllabics: U+1400–U+167F */
{
Script_Canadian
,
0x1400
,
0x167f
},
/* Ogham: U+1680–U+169F */
{
Script_Ogham
,
0x1680
,
0x169f
},
/* Runic: U+16A0–U+16F0 */
{
Script_Runic
,
0x16a0
,
0x16f0
},
/* Khmer: U+1780–U+17FF */
{
Script_Khmer
,
0x1780
,
0x17ff
},
/* Mongolian: U+1800–U+18AF */
{
Script_Mongolian
,
0x1800
,
0x18af
},
/* Limbu: U+1900–U+194F */
{
Script_Limbu
,
0x1900
,
0x194f
},
/* Tai Le: U+1950–U+197F */
{
Script_TaiLe
,
0x1950
,
0x197f
},
/* New Tai Lue: U+1980–U+19DF */
{
Script_New_TaiLue
,
0x1980
,
0x19df
},
/* Khmer Symbols: U+19E0–U+19FF */
{
Script_Khmer
,
0x19e0
,
0x19ff
},
/* Buginese: U+1A00–U+1A1F */
{
Script_Buginese
,
0x1a00
,
0x1a1f
},
/* Tai Tham: U+1A20–U+1AAF */
{
Script_Symbol
,
0x1a20
,
0x1aaf
},
/* Balinese: U+1B00–U+1B7F */
{
Script_Balinese
,
0x1b00
,
0x1b7f
},
/* Sundanese: U+1B80–U+1BBF */
{
Script_Sundanese
,
0x1b80
,
0x1bbf
},
/* Batak: U+1BC0–U+1BFF */
{
Script_Symbol
,
0x1bc0
,
0x1bff
},
/* Lepcha: U+1C00–U+1C4F */
{
Script_Lepcha
,
0x1c00
,
0x1c4f
},
/* Ol Chiki: U+1C50–U+1C7F */
{
Script_OlChiki
,
0x1c50
,
0x1c7f
},
/* Sundanese Supplement: U+1CC0–U+1CCF */
{
Script_Symbol
,
0x1cc0
,
0x1ccf
},
/* Vedic Extensions: U+1CD0-U+1CFF */
{
Script_Devanagari
,
0x1cd0
,
0x1cff
},
/* Phonetic Extensions: U+1D00–U+1DBF */
{
Script_Latin
,
0x1d00
,
0x1dbf
},
/* Combining Diacritical Marks Supplement: U+1DC0–U+1DFF */
{
Script_Symbol
,
0x1dc0
,
0x1dff
},
/* Latin Extended Additional: U+1E00–U+1EFF */
{
Script_Latin
,
0x1e00
,
0x1eff
},
/* Greek Extended: U+1F00–U+1F00 */
{
Script_Greek
,
0x1f00
,
0x1fff
},
/* General Punctuation: U+2000–U+206f */
/* Superscripts and Subscripts: U+2070–U+209f */
/* Currency Symbols: U+20A0–U+20CF */
/* Combining Diacritical Marks for Symbols: U+20D0–U+20FF */
/* Letterlike Symbols: U+2100–U+214F */
/* Number Forms: U+2150–U+218F */
/* Arrows: U+2190–U+21FF */
/* Mathematical Operators: U+2200–U+22FF */
/* Miscellaneous Technical: U+2300–U+23FF */
/* Control Pictures: U+2400–U+243F */
/* Optical Character Recognition: U+2440–U+245F */
/* Enclosed Alphanumerics: U+2460–U+24FF */
/* Box Drawing: U+2500–U+25FF */
/* Block Elements: U+2580–U+259F */
/* Geometric Shapes: U+25A0–U+25FF */
/* Miscellaneous Symbols: U+2600–U+26FF */
/* Dingbats: U+2700–U+27BF */
/* Miscellaneous Mathematical Symbols-A: U+27C0–U+27EF */
/* Supplemental Arrows-A: U+27F0–U+27FF */
/* Braille Patterns: U+2800–U+28FF */
/* Supplemental Arrows-B: U+2900–U+297F */
/* Miscellaneous Mathematical Symbols-B: U+2980–U+29FF */
/* Supplemental Mathematical Operators: U+2A00–U+2AFF */
/* Miscellaneous Symbols and Arrows: U+2B00–U+2BFF */
{
Script_Symbol
,
0x2000
,
0x2bff
},
/* Glagolitic: U+2C00–U+2C5F */
{
Script_Glagolitic
,
0x2c00
,
0x2c5f
},
/* Latin Extended-C: U+2C60–U+2C7F */
{
Script_Latin
,
0x2c60
,
0x2c7f
},
/* Coptic: U+2C80–U+2CFF */
{
Script_Coptic
,
0x2c80
,
0x2cff
},
/* Georgian Supplement: U+2D00–U+2D2F */
{
Script_Georgian
,
0x2d00
,
0x2d2f
},
/* Tifinagh: U+2D30–U+2D7F */
{
Script_Tifinagh
,
0x2d30
,
0x2d7f
},
/* unsupported range */
{
Script_Unknown
}
};
static
UINT16
get_char_script
(
WCHAR
c
)
static
inline
unsigned
short
get_table_entry
(
const
unsigned
short
*
table
,
WCHAR
ch
)
{
DWORD
ch
=
c
;
unsigned
int
i
;
return
table
[
table
[
table
[
ch
>>
8
]
+
((
ch
>>
4
)
&
0x0f
)]
+
(
ch
&
0xf
)]
;
}
for
(
i
=
0
;
i
<
sizeof
(
script_ranges
)
/
sizeof
(
struct
script_range
);
i
++
)
{
const
struct
script_range
*
range
=
&
script_ranges
[
i
];
if
(
range
->
script
==
Script_Unknown
||
(
range
->
first
<=
ch
&&
range
->
last
>=
ch
))
return
range
->
script
;
static
inline
UINT16
get_char_script
(
WCHAR
c
)
{
UINT16
script
=
get_table_entry
(
wine_scripts_table
,
c
);
if
(
script
==
Script_Unknown
)
{
WORD
type
;
if
(
GetStringTypeW
(
CT_CTYPE1
,
&
c
,
1
,
&
type
)
&&
(
type
&
C1_CNTRL
))
script
=
Script_Control
;
}
return
Script_Unknown
;
return
script
;
}
static
HRESULT
analyze_script
(
const
WCHAR
*
text
,
UINT32
len
,
IDWriteTextAnalysisSink
*
sink
)
...
...
@@ -283,9 +62,9 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis
{
UINT16
script
=
get_char_script
(
text
[
i
]);
/*
Script_Latin_Symb script
type is ignored when preceded or followed by another script */
if
(
sa
.
script
==
Script_
Symbol
)
sa
.
script
=
script
;
if
(
script
==
Script_Symb
ol
)
script
=
sa
.
script
;
/*
Unknown
type is ignored when preceded or followed by another script */
if
(
sa
.
script
==
Script_
Unknown
)
sa
.
script
=
script
;
if
(
script
==
Script_Unknown
&&
sa
.
script
!=
Script_Contr
ol
)
script
=
sa
.
script
;
/* this is a length of a sequence to be reported next */
if
(
sa
.
script
==
script
)
length
++
;
...
...
@@ -293,7 +72,7 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis
{
HRESULT
hr
;
sa
.
shapes
=
sa
.
script
!=
Script_Control
s
?
DWRITE_SCRIPT_SHAPES_DEFAULT
:
DWRITE_SCRIPT_SHAPES_NO_VISUAL
;
sa
.
shapes
=
sa
.
script
!=
Script_Control
?
DWRITE_SCRIPT_SHAPES_DEFAULT
:
DWRITE_SCRIPT_SHAPES_NO_VISUAL
;
hr
=
IDWriteTextAnalysisSink_SetScriptAnalysis
(
sink
,
pos
,
length
,
&
sa
);
if
(
FAILED
(
hr
))
return
hr
;
pos
=
i
;
...
...
@@ -303,7 +82,7 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis
}
/* 1 length case or normal completion call */
sa
.
shapes
=
sa
.
script
!=
Script_Control
s
?
DWRITE_SCRIPT_SHAPES_DEFAULT
:
DWRITE_SCRIPT_SHAPES_NO_VISUAL
;
sa
.
shapes
=
sa
.
script
!=
Script_Control
?
DWRITE_SCRIPT_SHAPES_DEFAULT
:
DWRITE_SCRIPT_SHAPES_NO_VISUAL
;
return
IDWriteTextAnalysisSink_SetScriptAnalysis
(
sink
,
pos
,
length
,
&
sa
);
}
...
...
@@ -381,11 +160,6 @@ static inline void set_break_condition(UINT32 pos, enum BreakConditionLocation l
}
}
static
inline
unsigned
short
get_table_entry
(
const
unsigned
short
*
table
,
WCHAR
ch
)
{
return
table
[
table
[
table
[
ch
>>
8
]
+
((
ch
>>
4
)
&
0x0f
)]
+
(
ch
&
0xf
)];
}
static
HRESULT
analyze_linebreaks
(
const
WCHAR
*
text
,
UINT32
count
,
DWRITE_LINE_BREAKPOINT
*
breakpoints
)
{
struct
linebreaking_state
state
;
...
...
dlls/dwrite/scripts.c
0 → 100644
View file @
e36025a2
/* Unicode Script IDs */
/* generated from http://www.unicode.org/Public/7.0.0/ucd/Scripts.txt */
/* DO NOT EDIT!! */
const
unsigned
short
wine_scripts_table
[
6288
]
=
{
/* level 1 offsets */
0x0100
,
0x0110
,
0x0120
,
0x0130
,
0x0140
,
0x0150
,
0x0160
,
0x0170
,
0x0180
,
0x0190
,
0x01a0
,
0x01b0
,
0x01c0
,
0x01d0
,
0x01e0
,
0x01f0
,
0x0200
,
0x0210
,
0x0220
,
0x0230
,
0x0240
,
0x0240
,
0x0250
,
0x0260
,
0x0270
,
0x0280
,
0x0290
,
0x02a0
,
0x02b0
,
0x02c0
,
0x0110
,
0x02d0
,
0x02e0
,
0x02f0
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0310
,
0x0300
,
0x0300
,
0x0300
,
0x0320
,
0x0330
,
0x0340
,
0x0350
,
0x0360
,
0x0370
,
0x0380
,
0x0390
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03b0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03a0
,
0x03c0
,
0x03d0
,
0x03d0
,
0x03d0
,
0x03d0
,
0x03e0
,
0x03f0
,
0x0400
,
0x0410
,
0x0420
,
0x0430
,
0x0440
,
0x0450
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0210
,
0x0460
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x0300
,
0x03a0
,
0x0470
,
0x0480
,
0x0490
,
0x04a0
,
0x04b0
,
0x04c0
,
/* level 2 offsets */
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04e0
,
0x04f0
,
0x04e0
,
0x04f0
,
0x04d0
,
0x04d0
,
0x0500
,
0x0500
,
0x0510
,
0x0520
,
0x0510
,
0x0520
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0530
,
0x04d0
,
0x04d0
,
0x0540
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x0550
,
0x0560
,
0x0570
,
0x0580
,
0x0570
,
0x0570
,
0x0570
,
0x0590
,
0x0570
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05b0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05c0
,
0x05d0
,
0x05e0
,
0x05c0
,
0x05d0
,
0x05f0
,
0x0600
,
0x0610
,
0x0610
,
0x0620
,
0x0610
,
0x0630
,
0x0640
,
0x0650
,
0x0660
,
0x0670
,
0x0670
,
0x0680
,
0x0690
,
0x06a0
,
0x06b0
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x06c0
,
0x0670
,
0x0670
,
0x06d0
,
0x06e0
,
0x06e0
,
0x06e0
,
0x06f0
,
0x0670
,
0x0670
,
0x0670
,
0x0700
,
0x0700
,
0x0700
,
0x0710
,
0x0720
,
0x0720
,
0x0720
,
0x0730
,
0x0740
,
0x0740
,
0x0750
,
0x0760
,
0x0770
,
0x0780
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x0670
,
0x0790
,
0x04d0
,
0x04d0
,
0x07a0
,
0x0670
,
0x07b0
,
0x07b0
,
0x07b0
,
0x07b0
,
0x07b0
,
0x07c0
,
0x07d0
,
0x07b0
,
0x07e0
,
0x07f0
,
0x0800
,
0x0810
,
0x0820
,
0x0830
,
0x0840
,
0x0850
,
0x0860
,
0x0870
,
0x0880
,
0x0890
,
0x08a0
,
0x08b0
,
0x08c0
,
0x08d0
,
0x08e0
,
0x08f0
,
0x0900
,
0x0910
,
0x0920
,
0x0930
,
0x0940
,
0x0950
,
0x0960
,
0x0970
,
0x0980
,
0x0990
,
0x09a0
,
0x09b0
,
0x09c0
,
0x09d0
,
0x09e0
,
0x09f0
,
0x0a00
,
0x0a10
,
0x0a20
,
0x0a30
,
0x0a40
,
0x0a50
,
0x0a60
,
0x0a70
,
0x0a80
,
0x0a90
,
0x0aa0
,
0x0ab0
,
0x0ac0
,
0x0ad0
,
0x0ae0
,
0x0af0
,
0x0b00
,
0x0b10
,
0x0b20
,
0x0b30
,
0x0b40
,
0x0b50
,
0x0b60
,
0x0b70
,
0x0b80
,
0x0b90
,
0x0ba0
,
0x0bb0
,
0x0bc0
,
0x0bd0
,
0x0be0
,
0x0bf0
,
0x0c00
,
0x0c10
,
0x0c20
,
0x0c30
,
0x0c40
,
0x0c50
,
0x0c60
,
0x0c70
,
0x0c70
,
0x0c80
,
0x0c70
,
0x0c90
,
0x04d0
,
0x04d0
,
0x0ca0
,
0x0cb0
,
0x0cc0
,
0x0cd0
,
0x0ce0
,
0x0cf0
,
0x04d0
,
0x04d0
,
0x0d00
,
0x0d00
,
0x0d00
,
0x0d00
,
0x0d10
,
0x0d00
,
0x0d20
,
0x0d30
,
0x0d00
,
0x0d10
,
0x0d00
,
0x0d40
,
0x0d40
,
0x0d50
,
0x04d0
,
0x04d0
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d60
,
0x0d70
,
0x0d70
,
0x0d80
,
0x0d70
,
0x0d70
,
0x0d90
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0db0
,
0x0db0
,
0x0db0
,
0x0db0
,
0x0dc0
,
0x0dd0
,
0x0db0
,
0x0db0
,
0x0dc0
,
0x0db0
,
0x0db0
,
0x0de0
,
0x0df0
,
0x0e00
,
0x0db0
,
0x0db0
,
0x0db0
,
0x0df0
,
0x0db0
,
0x0db0
,
0x0db0
,
0x0e10
,
0x0db0
,
0x0e20
,
0x0db0
,
0x0e30
,
0x0e40
,
0x0e40
,
0x0e40
,
0x0e40
,
0x0e40
,
0x0e50
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e70
,
0x0e80
,
0x0e90
,
0x0e90
,
0x0e90
,
0x0e90
,
0x0ea0
,
0x0eb0
,
0x0ec0
,
0x0ed0
,
0x0ee0
,
0x0ef0
,
0x0f00
,
0x0f10
,
0x0f20
,
0x0f30
,
0x0f40
,
0x0f40
,
0x0f40
,
0x0f40
,
0x0f40
,
0x0f50
,
0x0f60
,
0x0f60
,
0x0f70
,
0x0f80
,
0x0f90
,
0x0f90
,
0x0f90
,
0x0f90
,
0x0f90
,
0x0fa0
,
0x0f90
,
0x0f90
,
0x0fb0
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0e60
,
0x0fc0
,
0x0fd0
,
0x0fe0
,
0x0ff0
,
0x0ff0
,
0x1000
,
0x1010
,
0x1020
,
0x1030
,
0x1040
,
0x1040
,
0x1050
,
0x1040
,
0x1060
,
0x1070
,
0x0f40
,
0x0f40
,
0x1080
,
0x1090
,
0x1010
,
0x1010
,
0x1010
,
0x10a0
,
0x1010
,
0x10b0
,
0x10c0
,
0x10c0
,
0x1020
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x10d0
,
0x10d0
,
0x10d0
,
0x10d0
,
0x10e0
,
0x10d0
,
0x10d0
,
0x10f0
,
0x1100
,
0x1100
,
0x1100
,
0x1100
,
0x1110
,
0x1110
,
0x1110
,
0x1120
,
0x1130
,
0x1130
,
0x1130
,
0x1140
,
0x1150
,
0x1160
,
0x1160
,
0x1160
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1170
,
0x04d0
,
0x04d0
,
0x04d0
,
0x0510
,
0x0510
,
0x1180
,
0x0510
,
0x0510
,
0x1190
,
0x11a0
,
0x11b0
,
0x0510
,
0x0510
,
0x0510
,
0x11c0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x0570
,
0x11d0
,
0x0570
,
0x0570
,
0x11d0
,
0x11e0
,
0x0570
,
0x11f0
,
0x0570
,
0x0570
,
0x0570
,
0x1200
,
0x1200
,
0x1210
,
0x0570
,
0x1220
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1230
,
0x04d0
,
0x1240
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1250
,
0x1260
,
0x1270
,
0x04d0
,
0x0510
,
0x0510
,
0x0530
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1280
,
0x1290
,
0x1290
,
0x12a0
,
0x1290
,
0x1290
,
0x12a0
,
0x0510
,
0x0510
,
0x12b0
,
0x12b0
,
0x12b0
,
0x12b0
,
0x12b0
,
0x12b0
,
0x12b0
,
0x12c0
,
0x0d70
,
0x0d70
,
0x0d80
,
0x12d0
,
0x12d0
,
0x12d0
,
0x12e0
,
0x12f0
,
0x0db0
,
0x1300
,
0x1310
,
0x1310
,
0x1310
,
0x1310
,
0x05a0
,
0x05a0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1320
,
0x1330
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1340
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1350
,
0x04d0
,
0x04d0
,
0x1360
,
0x04d0
,
0x1370
,
0x1380
,
0x1390
,
0x13a0
,
0x13a0
,
0x13a0
,
0x13a0
,
0x13b0
,
0x13c0
,
0x13d0
,
0x13d0
,
0x13d0
,
0x13d0
,
0x13e0
,
0x13f0
,
0x1400
,
0x1410
,
0x1420
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x1430
,
0x04d0
,
0x1400
,
0x1440
,
0x04d0
,
0x04d0
,
0x04d0
,
0x13d0
,
0x0da0
,
0x1430
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x0da0
,
0x1430
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x13d0
,
0x13d0
,
0x1450
,
0x13d0
,
0x13d0
,
0x13d0
,
0x13d0
,
0x13d0
,
0x1460
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1350
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1470
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1480
,
0x1490
,
0x1480
,
0x1480
,
0x1480
,
0x14a0
,
0x14b0
,
0x14b0
,
0x14b0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14c0
,
0x14d0
,
0x04d0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x05a0
,
0x14e0
,
0x14f0
,
0x14f0
,
0x14f0
,
0x14f0
,
0x14f0
,
0x1500
,
0x04d0
,
0x04d0
,
0x1510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x0510
,
0x1520
,
0x0510
,
0x1530
,
0x1540
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1550
,
0x1560
,
0x1560
,
0x1570
,
0x04d0
,
0x1580
,
0x1580
,
0x1580
,
0x1590
,
0x15a0
,
0x15a0
,
0x15a0
,
0x15a0
,
0x15b0
,
0x15c0
,
0x07b0
,
0x15d0
,
0x15e0
,
0x15e0
,
0x15f0
,
0x1600
,
0x1600
,
0x1610
,
0x0da0
,
0x1620
,
0x1630
,
0x1630
,
0x1630
,
0x1630
,
0x1640
,
0x1650
,
0x0d60
,
0x1660
,
0x1670
,
0x1670
,
0x1670
,
0x1680
,
0x1690
,
0x16a0
,
0x0d60
,
0x0d60
,
0x1010
,
0x1010
,
0x1010
,
0x1010
,
0x16b0
,
0x16c0
,
0x16d0
,
0x16e0
,
0x16f0
,
0x1700
,
0x1310
,
0x0510
,
0x0510
,
0x1710
,
0x1720
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x16d0
,
0x16d0
,
0x1730
,
0x1740
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x0da0
,
0x1750
,
0x0da0
,
0x1760
,
0x0da0
,
0x0da0
,
0x1770
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1780
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1320
,
0x1790
,
0x04d0
,
0x04d0
,
0x17a0
,
0x17b0
,
0x0610
,
0x17c0
,
0x17d0
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x17e0
,
0x17f0
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x1800
,
0x04d0
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x1810
,
0x0670
,
0x0670
,
0x1820
,
0x04d0
,
0x04d0
,
0x1800
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x04d0
,
0x1830
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x0670
,
0x1840
,
0x04d0
,
0x04d0
,
0x04e0
,
0x04f0
,
0x04e0
,
0x04f0
,
0x1850
,
0x13c0
,
0x13d0
,
0x1860
,
0x0da0
,
0x1430
,
0x1870
,
0x1880
,
0x04d0
,
0x04d0
,
/* values */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x000a
,
0x000a
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0000
,
0x0000
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0000
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0000
,
0x0000
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0000
,
0x0000
,
0x0003
,
0x0000
,
0x0000
,
0x0003
,
0x0003
,
0x0003
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0000
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0063
,
0x0000
,
0x0000
,
0x0063
,
0x0063
,
0x0063
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x006a
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x004c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x0000
,
0x0000
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x005a
,
0x0000
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0040
,
0x0000
,
0x0000
,
0x0040
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x0000
,
0x0000
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x0000
,
0x0000
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0025
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0025
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0000
,
0x0024
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0000
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0024
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0050
,
0x0050
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0000
,
0x0068
,
0x0000
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0068
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0000
,
0x0069
,
0x0069
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0069
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x002f
,
0x002f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x0000
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x002f
,
0x0000
,
0x002f
,
0x002f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x003f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x0000
,
0x0000
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x003f
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x005f
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x0000
,
0x0000
,
0x005f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x005f
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x0000
,
0x005f
,
0x005f
,
0x005f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x006b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0000
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0036
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x0000
,
0x0000
,
0x0036
,
0x0036
,
0x0036
,
0x0036
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x0000
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x0000
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x006c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006c
,
0x006c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x0000
,
0x001f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001f
,
0x0000
,
0x0000
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x0000
,
0x001f
,
0x001f
,
0x001f
,
0x001f
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0014
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x004d
,
0x0000
,
0x0000
,
0x0000
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0000
,
0x0000
,
0x0000
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0059
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0000
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0064
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0028
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x000e
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0065
,
0x0000
,
0x0065
,
0x0065
,
0x0065
,
0x0000
,
0x0065
,
0x0065
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0000
,
0x0000
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0033
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0047
,
0x0047
,
0x0000
,
0x0000
,
0x0047
,
0x0000
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0000
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0047
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x000f
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0000
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0039
,
0x0000
,
0x0000
,
0x0000
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0039
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0000
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x004b
,
0x0000
,
0x0000
,
0x0000
,
0x004b
,
0x004b
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x000d
,
0x0000
,
0x0000
,
0x000d
,
0x000d
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0000
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0005
,
0x0000
,
0x0000
,
0x0000
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0000
,
0x0000
,
0x0000
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0038
,
0x0000
,
0x0000
,
0x0000
,
0x0038
,
0x0038
,
0x0038
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x004e
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0061
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0018
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0018
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0023
,
0x0000
,
0x0000
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0023
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0000
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x000c
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0020
,
0x0000
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x0015
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x006d
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006d
,
0x006d
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x006d
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0000
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x002a
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x002a
,
0x002a
,
0x002a
,
0x0000
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0000
,
0x0000
,
0x0030
,
0x0030
,
0x0030
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x000a
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0000
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0000
,
0x0000
,
0x0000
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0072
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x003b
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0070
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0018
,
0x0000
,
0x0018
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0006
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0062
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0055
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x005b
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x001a
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0031
,
0x0000
,
0x0031
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0058
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0058
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x0000
,
0x0000
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x002d
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x002d
,
0x002d
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0049
,
0x0000
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0000
,
0x0000
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0000
,
0x0000
,
0x0013
,
0x0013
,
0x0013
,
0x0013
,
0x0066
,
0x0066
,
0x0066
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0066
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x001e
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0023
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0000
,
0x0000
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0042
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0026
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0037
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0003
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0000
,
0x0029
,
0x0000
,
0x0029
,
0x0029
,
0x0000
,
0x0029
,
0x0029
,
0x0000
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0029
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0002
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0030
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0027
,
0x0027
,
0x0027
,
0x0000
,
0x0000
,
0x0000
};
dlls/dwrite/scripts.h
0 → 100644
View file @
e36025a2
/* Unicode Script IDs */
/* generated from http://www.unicode.org/Public/7.0.0/ucd/Scripts.txt */
/* DO NOT EDIT!! */
enum
unicode_script_id
{
Script_Unknown
=
0
,
Script_Control
=
1
,
Script_Arabic
=
2
,
Script_Armenian
=
3
,
Script_Avestan
=
4
,
Script_Balinese
=
5
,
Script_Bamum
=
6
,
Script_Bassa
=
7
,
Script_Batak
=
8
,
Script_Bengali
=
9
,
Script_Bopomofo
=
10
,
Script_Brahmi
=
11
,
Script_Braille
=
12
,
Script_Buginese
=
13
,
Script_Buhid
=
14
,
Script_Canadian
=
15
,
Script_Carian
=
16
,
Script_Caucasian
=
17
,
Script_Chakma
=
18
,
Script_Cham
=
19
,
Script_Cherokee
=
20
,
Script_Coptic
=
21
,
Script_Cuneiform
=
22
,
Script_Cypriot
=
23
,
Script_Cyrillic
=
24
,
Script_Deseret
=
25
,
Script_Devanagari
=
26
,
Script_Duployan
=
27
,
Script_Egyptian
=
28
,
Script_Elbasan
=
29
,
Script_Ethiopic
=
30
,
Script_Georgian
=
31
,
Script_Glagolitic
=
32
,
Script_Gothic
=
33
,
Script_Grantha
=
34
,
Script_Greek
=
35
,
Script_Gujarati
=
36
,
Script_Gurmukhi
=
37
,
Script_Han
=
38
,
Script_Hangul
=
39
,
Script_Hanunoo
=
40
,
Script_Hebrew
=
41
,
Script_Hiragana
=
42
,
Script_Imperial
=
43
,
Script_Inscriptional
=
44
,
Script_Javanese
=
45
,
Script_Kaithi
=
46
,
Script_Kannada
=
47
,
Script_Katakana
=
48
,
Script_Kayah
=
49
,
Script_Kharoshthi
=
50
,
Script_Khmer
=
51
,
Script_Khojki
=
52
,
Script_Khudawadi
=
53
,
Script_Lao
=
54
,
Script_Latin
=
55
,
Script_Lepcha
=
56
,
Script_Limbu
=
57
,
Script_Linear
=
58
,
Script_Lisu
=
59
,
Script_Lycian
=
60
,
Script_Lydian
=
61
,
Script_Mahajani
=
62
,
Script_Malayalam
=
63
,
Script_Mandaic
=
64
,
Script_Manichaean
=
65
,
Script_Meetei
=
66
,
Script_Mende
=
67
,
Script_Meroitic
=
68
,
Script_Miao
=
69
,
Script_Modi
=
70
,
Script_Mongolian
=
71
,
Script_Mro
=
72
,
Script_Myanmar
=
73
,
Script_Nabataean
=
74
,
Script_New
=
75
,
Script_Nko
=
76
,
Script_Ogham
=
77
,
Script_Ol
=
78
,
Script_Old
=
79
,
Script_Oriya
=
80
,
Script_Osmanya
=
81
,
Script_Pahawh
=
82
,
Script_Palmyrene
=
83
,
Script_Pau
=
84
,
Script_Phags
=
85
,
Script_Phoenician
=
86
,
Script_Psalter
=
87
,
Script_Rejang
=
88
,
Script_Runic
=
89
,
Script_Samaritan
=
90
,
Script_Saurashtra
=
91
,
Script_Sharada
=
92
,
Script_Shavian
=
93
,
Script_Siddham
=
94
,
Script_Sinhala
=
95
,
Script_Sora
=
96
,
Script_Sundanese
=
97
,
Script_Syloti
=
98
,
Script_Syriac
=
99
,
Script_Tagalog
=
100
,
Script_Tagbanwa
=
101
,
Script_Tai
=
102
,
Script_Takri
=
103
,
Script_Tamil
=
104
,
Script_Telugu
=
105
,
Script_Thaana
=
106
,
Script_Thai
=
107
,
Script_Tibetan
=
108
,
Script_Tifinagh
=
109
,
Script_Tirhuta
=
110
,
Script_Ugaritic
=
111
,
Script_Vai
=
112
,
Script_Warang
=
113
,
Script_Yi
=
114
,
};
tools/make_unicode
View file @
e36025a2
...
...
@@ -1172,7 +1172,7 @@ sub get_lb_ranges()
sub
dump_indic
($)
{
my
$filename
=
shift
;
my
@indic_table
=
(
$indic_types
{
'Other'
})
x
65536
;
;
my
@indic_table
=
(
$indic_types
{
'Other'
})
x
65536
;
my
$INPUT
=
open_data_file
(
$UNIDATA
,
"IndicSyllabicCategory.txt"
);
while
(
<
$INPUT
>
)
...
...
@@ -1252,7 +1252,7 @@ sub dump_indic($)
sub
dump_linebreak
($)
{
my
$filename
=
shift
;
my
@break_table
=
(
$break_types
{
'XX'
})
x
65536
;
;
my
@break_table
=
(
$break_types
{
'XX'
})
x
65536
;
my
$next_group
=
0
;
my
$INPUT
=
open_data_file
(
$UNIDATA
,
"LineBreak.txt"
);
...
...
@@ -1294,6 +1294,118 @@ sub dump_linebreak($)
save_file
(
$filename
);
}
################################################################
# dump Script IDs table
sub
dump_scripts
($)
{
my
$filename
=
shift
;
my
$header
=
$filename
;
my
@scripts_table
=
(
0
)
x
65536
;
# 0 means unknown script
my
$next_group
=
0
;
my
%
scripts
;
my
$i
;
my
$INPUT
=
open_data_file
(
$UNIDATA
,
"Scripts.txt"
);
while
(
<
$INPUT
>
)
{
my
$type
=
""
;
next
if
/^\#/
;
# skip comments
next
if
/^\s*$/
;
# skip empty lines
next
if
/\x1a/
;
# skip ^Z
if
(
/^\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/
)
{
$type
=
$2
;
}
elsif
(
/^\s*([0-9a-fA-F]+)..\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/
)
{
$type
=
$3
;
}
else
{
die
"malformed line $_"
;
}
# ignore some scripts
if
(
$type
eq
""
||
$type
eq
"Common"
||
$type
eq
"Inherited"
)
{
next
;
}
$scripts
{
$type
}
=
-
1
;
}
$i
=
2
;
foreach
my
$script
(
sort
keys
%
scripts
)
{
$scripts
{
$script
}
=
$i
;
$i
++
;
}
# now fill a table
seek
$INPUT
,
0
,
0
;
while
(
<
$INPUT
>
)
{
my
$type
=
""
;
next
if
/^\#/
;
# skip comments
next
if
/^\s*$/
;
# skip empty lines
next
if
/\x1a/
;
# skip ^Z
if
(
/^\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/
)
{
$type
=
$2
;
if
(
defined
$scripts
{
$type
})
{
$scripts_table
[
hex
$1
]
=
$scripts
{
$type
};
}
next
;
}
elsif
(
/^\s*([0-9a-fA-F]+)..\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/
)
{
$type
=
$3
;
if
(
defined
$scripts
{
$type
})
{
foreach
my
$i
(
hex
$1
..
hex
$2
)
{
$scripts_table
[
$i
]
=
$scripts
{
$type
};
}
}
next
;
}
}
close
$INPUT
;
$header
=
"$filename.h"
;
open
OUTPUT
,
">$header.new"
or
die
"Cannot create $header"
;
print
"Building $header\n"
;
print
OUTPUT
"/* Unicode Script IDs */\n"
;
print
OUTPUT
"/* generated from $UNIDATA/Scripts.txt */\n"
;
print
OUTPUT
"/* DO NOT EDIT!! */\n\n"
;
# reserve Unknown and Control ids
print
OUTPUT
"enum unicode_script_id {\n"
;
print
OUTPUT
" Script_Unknown = 0,\n"
;
print
OUTPUT
" Script_Control = 1,\n"
;
foreach
my
$script
(
sort
keys
%
scripts
)
{
print
OUTPUT
" Script_$script = $scripts{$script},\n"
;
}
print
OUTPUT
"};\n"
;
close
OUTPUT
;
save_file
(
$header
);
$filename
=
"$filename.c"
;
open
OUTPUT
,
">$filename.new"
or
die
"Cannot create $header"
;
print
"Building $filename\n"
;
print
OUTPUT
"/* Unicode Script IDs */\n"
;
print
OUTPUT
"/* generated from $UNIDATA/Scripts.txt */\n"
;
print
OUTPUT
"/* DO NOT EDIT!! */\n\n"
;
dump_two_level_mapping
(
"wine_scripts_table"
,
@scripts_table
);
close
OUTPUT
;
save_file
(
$filename
);
}
################################################################
# dump the BiDi mirroring table
...
...
@@ -1333,7 +1445,7 @@ sub dump_mirroring($)
sub
dump_bracket
($)
{
my
$filename
=
shift
;
my
@bracket_table
=
(
0
)
x
65536
;
;
my
@bracket_table
=
(
0
)
x
65536
;
my
$INPUT
=
open_data_file
(
$UNIDATA
,
"BidiBrackets.txt"
);
while
(
<
$INPUT
>
)
...
...
@@ -2275,6 +2387,7 @@ dump_bracket( "dlls/usp10/bracket.c" );
dump_shaping
(
"dlls/usp10/shaping.c"
);
dump_linebreak
(
"dlls/usp10/linebreak.c"
);
dump_linebreak
(
"dlls/dwrite/linebreak.c"
);
dump_scripts
(
"dlls/dwrite/scripts"
);
dump_indic
(
"dlls/usp10/indicsyllable.c"
);
dump_intl_nls
(
"loader/l_intl.nls"
);
dump_vertical
(
"dlls/gdi32/vertical.c"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment