New upstream version 0.1~git20201230.95d81c9
Andrej Shadura
3 years ago
0 | 0 | Copyright 2006-2012 Red Hat, Inc. |
1 | Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
1 | Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
2 | 2 | |
3 | 3 | Permission is hereby granted, free of charge, to any person obtaining a |
4 | 4 | copy of this software and associated documentation files (the "Software"), |
0 | 0 | bindir ?= /usr/bin |
1 | 1 | mandir ?= /usr/share/man |
2 | ||
3 | EMXX ?= em++ | |
2 | 4 | |
3 | 5 | SOURCES = edid-decode.cpp parse-base-block.cpp parse-cta-block.cpp \ |
4 | 6 | parse-displayid-block.cpp parse-ls-ext-block.cpp \ |
7 | 9 | |
8 | 10 | all: edid-decode |
9 | 11 | |
10 | sha = -DSHA=$(shell if [ -d .git ]; then git rev-parse HEAD ; else printf '"not available"'; fi) | |
12 | sha = -DSHA=$(shell if test -d .git ; then git rev-parse --short=12 HEAD ; fi) | |
13 | date = -DDATE=$(shell if test -d .git ; then printf '"'; TZ=UTC git show --quiet --date='format-local:%F %T"' --format="%cd"; fi) | |
11 | 14 | |
12 | 15 | edid-decode: $(SOURCES) edid-decode.h Makefile |
13 | $(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) -g $(sha) -o $@ $(SOURCES) -lm | |
16 | $(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) -g $(sha) $(date) -o $@ $(SOURCES) -lm | |
17 | ||
18 | edid-decode.js: $(SOURCES) edid-decode.h Makefile | |
19 | $(EMXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) $(sha) $(date) -s EXPORTED_FUNCTIONS='["_parse_edid"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -o $@ $(SOURCES) -lm | |
14 | 20 | |
15 | 21 | clean: |
16 | 22 | rm -f edid-decode |
10 | 10 | |
11 | 11 | Patches and bug reports can be sent to the linux-media@vger.kernel.org |
12 | 12 | mailinglist (see https://www.linuxtv.org/lists.php). Please make sure |
13 | that 'edid-decode' appears in the subject line. | |
13 | that 'edid-decode' appears in the subject line and don't forget to | |
14 | add a 'Signed-off-by' line when submitting patches! | |
14 | 15 | |
15 | Please add a 'Signed-off-by' line when submitting patches! | |
16 | If you don't know what that is, then see: | |
17 | https://elinux.org/Developer_Certificate_Of_Origin | |
16 | 18 | |
17 | 19 | New sample EDIDs are welcome. Please note that these must be real |
18 | 20 | EDIDs read from real hardware, so no artificially constructed EDIDs. |
27 | 29 | |
28 | 30 | All lower case. |
29 | 31 | |
32 | If the EDID was modified by other devices in the chain (e.g. AV Receivers), | |
33 | then name the EDID as: | |
34 | ||
35 | <TV vendor>-<TV model>-<TV port>-<AV vendor>-<AV model>-<AV port> | |
36 | ||
37 | The test directory contains some special input files to verify the | |
38 | edid-decode parser and hand-crafted EDIDs to test rarely seen | |
39 | EDID features. | |
40 | ||
41 | You can find a very large collection of EDIDs here: | |
42 | https://github.com/linuxhw/EDID | |
43 | ||
44 | This collection has been used to test edid-decode. | |
45 | ||
30 | 46 | I can also be contacted directly: |
31 | 47 | |
32 | 48 | Hans Verkuil <hverkuil-cisco@xs4all.nl> |
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
28 | 28 | .B /sys/class/drm/*/edid |
29 | 29 | on modern Linux systems with kernel modesetting support. |
30 | 30 | |
31 | All timings are shown in a short format, for example: | |
32 | ||
33 | VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native) | |
34 | VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz | |
35 | VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz | |
36 | ||
37 | Each format starts with a timings type prefix, the resolution, an optional | |
38 | interlaced indicator ('i'), the frame rate (field rate for interlaced formats), | |
39 | the picture aspect ratio, the horizontal frequency, the pixelclock | |
40 | frequency and optionally additional flags between parenthesis. | |
41 | ||
42 | Note that for interlaced formats the frame height is given, not the field | |
43 | height. So each field in a 1920x1080i format has 540 lines. | |
44 | ||
45 | Detailed timings have another 2-3 lines of data: | |
46 | ||
47 | VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native) | |
48 | Hfront 88 Hsync 44 Hback 148 Hpol P | |
49 | Vfront 4 Vsync 5 Vback 36 Vpol P | |
50 | VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz | |
51 | Hfront 88 Hsync 44 Hback 148 Hpol P | |
52 | Vfront 2 Vsync 5 Vback 15 Vpol P Vfront +0.5 Odd Field | |
53 | Vfront 2 Vsync 5 Vback 15 Vpol P Vback +0.5 Even Field | |
54 | VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz | |
55 | Hfront 32 Hsync 168 Hback 184 Hpol P | |
56 | Vfront 23 Vsync 5 Vback 57 Vpol N Both Fields | |
57 | ||
58 | These describe the horizontal and vertical front porch, sync, backporch | |
59 | and sync polarity values. For interlaced formats there are two lines | |
60 | for the vertical information: one for the Odd Field (aka Field 1) and | |
61 | one for the Even Field (aka Field 2). The vertical front porch of the | |
62 | Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the end of the | |
63 | line), and the back porch of the Even Field is actually 15.5 (hence | |
64 | the 'Vback +0.5' at the end of the line). | |
65 | ||
66 | There is a special 'VIC 39' interlaced format where both fields have | |
67 | the same vertical timings, in that case this is marked with 'Both Fields'. | |
68 | ||
69 | The following timing types can be shown: | |
70 | ||
71 | .RS | |
72 | .TP | |
73 | DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The number is the DMT ID in hexadecimal. | |
74 | .TP | |
75 | CVT: Coordinated Video Timings (formula-based, see CVT 1.2 standard) | |
76 | .TP | |
77 | GTF: Generalized Timing Formula (formula-based, see GTF 1.1 standard) | |
78 | .TP | |
79 | IBM: Old IBM Timings | |
80 | .TP | |
81 | Apple: Old Apple Timings | |
82 | .TP | |
83 | VIC #: Video Identification Code (see CTA-861 standard). The number is the actual | |
84 | VIC code. | |
85 | .TP | |
86 | HDMI VIC #: HDMI-specific Video Identification Code (see HDMI 2.1 standard). The number | |
87 | is the actual HDMI VIC code. | |
88 | .TP | |
89 | DTD #: Detailed Timings Descriptor (see EDID standard). Also used for | |
90 | DisplayID Video Timing Modes Types I, II, VI and VII. The number denotes that | |
91 | this is the Nth DTD in the EDID. | |
92 | .RE | |
93 | ||
94 | By default DTDs are shown in the long format while others are just shown in | |
95 | the short format. With the option \fB\-\-short\-timings\fR all timings are | |
96 | shown in short format only. With the option \fB\-\-long\-timings\fR all timings | |
97 | are shown in long format. | |
98 | ||
99 | Alternate formats for long timings can be chosen via the \fB\-\-xmodeline\fR or | |
100 | \fB\-\-fbmode\fR options. | |
101 | ||
31 | 102 | .SH STANDARDS |
32 | 103 | .TP |
33 | 104 | The following EDID standards are supported by edid-decode: |
47 | 118 | .TP |
48 | 119 | VTB-EXT: VESA Video Timing Block Extension Data Standard, Release A |
49 | 120 | .TP |
121 | DTCDB: VESA Display Transfer Characteristics Data Block Standard, Version 1.0 | |
122 | .TP | |
123 | DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1 | |
124 | .TP | |
50 | 125 | HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b |
51 | 126 | .TP |
52 | 127 | HDMI 2.1: High-Definition Multimedia Interface, Version 2.1 |
53 | 128 | .TP |
54 | 129 | HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1 |
55 | 130 | .TP |
56 | CTA-861-G: A DTV Profile for Uncompressed High Speed Digital Interfaces | |
131 | CTA-861-H: A DTV Profile for Uncompressed High Speed Digital Interfaces | |
57 | 132 | .TP |
58 | 133 | SPWG Notebook Panel Specification, Version 3.5 |
59 | 134 | .TP |
60 | 135 | EPI Embedded Panel Interface, Revision 1.0 |
61 | 136 | .RE |
62 | 137 | |
138 | .TP | |
139 | The following related standards are also used by edid-decode: | |
140 | .RS | |
141 | .TP | |
142 | DMT 1.3: VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT), Version 1.0, Rev. 13 | |
143 | .TP | |
144 | CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version 1.2 | |
145 | .TP | |
146 | GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1 | |
147 | .RE | |
148 | ||
63 | 149 | .SH OPTIONS |
64 | 150 | .TP |
65 | 151 | \fB\-h\fR, \fB\-\-help\fR |
75 | 161 | raw: binary data (default unless writing to stdout) |
76 | 162 | .br |
77 | 163 | carray: c-program struct |
164 | .br | |
165 | xml: XML data | |
78 | 166 | .TP |
79 | 167 | \fB\-c\fR, \fB\-\-check\fR |
80 | 168 | Check if the EDID conforms to the standards. Warnings and failures are |
83 | 171 | \fB\-C\fR, \fB\-\-check\-inline\fR |
84 | 172 | Check if the EDID conforms to the standards. Warnings and failures are |
85 | 173 | reported as they happen. |
174 | .TP | |
175 | \fB\-n\fR, \fB\-\-native\-timings\fR | |
176 | Report the native timings at the end. There may be multiple native timing reports | |
177 | depending on whether the Source only parses Block 0 (e.g. DVI outputs) or Block 0 | |
178 | and the CTA-861 Extension Blocks (HDMI). | |
179 | .TP | |
180 | \fB\-p\fR, \fB\-\-preferred\-timings\fR | |
181 | Report the preferred timings at the end. There may be multiple native timing reports | |
182 | depending on whether the Source only parses Block 0 (e.g. DVI outputs), or Block 0 | |
183 | and the CTA-861 Extension Blocks (HDMI), or Block 0 and the DisplayID Extension Blocks | |
184 | (typical for DisplayPort). | |
185 | .TP | |
186 | \fB\-P\fR, \fB\-\-physical\-address\fR | |
187 | Just report the HDMI Source Physical Address and nothing else. Reports f.f.f.f | |
188 | if the EDID could not be parsed, or if there was no CTA-861 Vendor-Specific Data Block | |
189 | with OUI 00-0C-03. Otherwise it reports the Source Physical Address as provided | |
190 | in that Data Block. This can be used as input to HDMI CEC utilities such as the | |
191 | linux cec-ctl(1) utility. | |
192 | .TP | |
193 | \fB\-S\fR, \fB\-\-short\-timings\fR | |
194 | Report all video timings in a short format. | |
195 | .TP | |
196 | \fB\-L\fR, \fB\-\-long\-timings\fR | |
197 | Report all video timings in a long format. | |
198 | .TP | |
199 | \fB\-X\fR, \fB\-\-xmodeline\fR | |
200 | Report all long video timings in the ModeLine format as defined in xorg.conf(5). | |
201 | This ModeLine can be used in the xorg.conf file or passed to xrandr(1) with the | |
202 | xrandr \fB\-\-newmode\fR option. | |
203 | .TP | |
204 | \fB\-F\fR, \fB\-\-fbmode\fR | |
205 | Report all long video timings in the video mode format as defined in fb.modes(5). | |
206 | .TP | |
207 | \fB\-V\fR, \fB\-\-v4l2\-timings\fR | |
208 | Report all long video timings in the video mode format as defined in the linux header v4l2-dv-timings.h | |
209 | for use with the V4L2 VIDIOC_S_DV_TIMINGS ioctl. | |
86 | 210 | .TP |
87 | 211 | \fB\-s\fR, \fB\-\-skip\-hex\-dump\fR |
88 | 212 | Skip the initial hex dump of the EDID. |
95 | 219 | in the git repository, even if nothing else changed in the edid-decode output. |
96 | 220 | Use this option to avoid including the SHA in the edid-decode output. |
97 | 221 | .TP |
98 | \fB\-e\fR, \fB\-\-extract\fR | |
99 | Extract the contents of the first block in hex values. | |
100 | This was always done in old edid-decode versions. To get | |
101 | the same behavior add this option. | |
222 | \fB\-\-hide\-serial\-numbers\fR | |
223 | Replace any serial numbers in the human readable output by '...'. | |
224 | Note that they are still easily extracted from the EDID hex dump at | |
225 | the start. | |
226 | .TP | |
227 | \fB\-\-version\fR | |
228 | Show the SHA hash and the last commit date. | |
102 | 229 | |
103 | 230 | .PP |
104 | 231 | .SH NOTES |
112 | 239 | change in future versions of the tool as additional fields and extensions are |
113 | 240 | added. |
114 | 241 | .SH "SEE ALSO" |
115 | Xorg(1), xrandr(1) | |
242 | Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5) | |
116 | 243 | .SH AUTHORS |
117 | 244 | edid-decode was written by Adam Jackson, with contributions from Eric |
118 | 245 | Anholt, Damien Lespiau, Hans Verkuil and others. For complete history and the |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | 2 | * Copyright 2006-2012 Red Hat, Inc. |
3 | * Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | * Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
4 | 4 | * |
5 | 5 | * Author: Adam Jackson <ajax@nwnk.net> |
6 | 6 | * Maintainer: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
13 | 13 | #include <stdarg.h> |
14 | 14 | #include <stdio.h> |
15 | 15 | #include <stdlib.h> |
16 | #include <string.h> | |
17 | 16 | #include <unistd.h> |
18 | 17 | |
19 | 18 | #include "edid-decode.h" |
20 | 19 | |
20 | #define STR(x) #x | |
21 | #define STRING(x) STR(x) | |
22 | ||
21 | 23 | static edid_state state; |
22 | 24 | |
23 | 25 | static unsigned char edid[EDID_PAGE_SIZE * EDID_MAX_BLOCKS]; |
26 | static bool odd_hex_digits; | |
24 | 27 | |
25 | 28 | enum output_format { |
26 | 29 | OUT_FMT_DEFAULT, |
27 | 30 | OUT_FMT_HEX, |
28 | 31 | OUT_FMT_RAW, |
29 | OUT_FMT_CARRAY | |
32 | OUT_FMT_CARRAY, | |
33 | OUT_FMT_XML, | |
30 | 34 | }; |
31 | 35 | |
32 | 36 | /* |
37 | 41 | enum Option { |
38 | 42 | OptCheck = 'c', |
39 | 43 | OptCheckInline = 'C', |
40 | OptExtract = 'e', | |
41 | 44 | OptHelp = 'h', |
45 | OptNativeTimings = 'n', | |
42 | 46 | OptOutputFormat = 'o', |
47 | OptPreferredTimings = 'p', | |
48 | OptPhysicalAddress = 'P', | |
49 | OptLongTimings = 'L', | |
50 | OptShortTimings = 'S', | |
51 | OptFBModeTimings = 'F', | |
52 | OptXModeLineTimings = 'X', | |
53 | OptV4L2Timings = 'V', | |
43 | 54 | OptSkipHexDump = 's', |
44 | 55 | OptSkipSHA = 128, |
56 | OptHideSerialNumbers, | |
57 | OptVersion, | |
45 | 58 | OptLast = 256 |
46 | 59 | }; |
47 | 60 | |
50 | 63 | static struct option long_options[] = { |
51 | 64 | { "help", no_argument, 0, OptHelp }, |
52 | 65 | { "output-format", required_argument, 0, OptOutputFormat }, |
53 | { "extract", no_argument, 0, OptExtract }, | |
66 | { "native-timings", no_argument, 0, OptNativeTimings }, | |
67 | { "preferred-timings", no_argument, 0, OptPreferredTimings }, | |
68 | { "physical-address", no_argument, 0, OptPhysicalAddress }, | |
54 | 69 | { "skip-hex-dump", no_argument, 0, OptSkipHexDump }, |
55 | 70 | { "skip-sha", no_argument, 0, OptSkipSHA }, |
71 | { "hide-serial-numbers", no_argument, 0, OptHideSerialNumbers }, | |
72 | { "version", no_argument, 0, OptVersion }, | |
56 | 73 | { "check-inline", no_argument, 0, OptCheckInline }, |
57 | 74 | { "check", no_argument, 0, OptCheck }, |
75 | { "short-timings", no_argument, 0, OptShortTimings }, | |
76 | { "long-timings", no_argument, 0, OptLongTimings }, | |
77 | { "xmodeline", no_argument, 0, OptXModeLineTimings }, | |
78 | { "fbmode", no_argument, 0, OptFBModeTimings }, | |
79 | { "v4l2-timings", no_argument, 0, OptV4L2Timings }, | |
58 | 80 | { 0, 0, 0, 0 } |
59 | 81 | }; |
60 | 82 | |
72 | 94 | " hex: hex numbers in ascii text (default for stdout)\n" |
73 | 95 | " raw: binary data (default unless writing to stdout)\n" |
74 | 96 | " carray: c-program struct\n" |
97 | " xml: XML data\n" | |
75 | 98 | " -c, --check check if the EDID conforms to the standards, failures and\n" |
76 | 99 | " warnings are reported at the end.\n" |
77 | 100 | " -C, --check-inline check if the EDID conforms to the standards, failures and\n" |
78 | 101 | " warnings are reported inline.\n" |
102 | " -n, --native-timings report the native timings\n" | |
103 | " -p, --preferred-timings report the preferred timings\n" | |
104 | " -P, --physical-address only report the CEC physical address\n" | |
105 | " -S, --short-timings report all video timings in a short format\n" | |
106 | " -L, --long-timings report all video timings in a long format\n" | |
107 | " -X, --xmodeline report all long video timings in Xorg.conf format\n" | |
108 | " -F, --fbmode report all long video timings in fb.modes format\n" | |
109 | " -V, --v4l2-timings report all long video timings in v4l2-dv-timings.h format\n" | |
79 | 110 | " -s, --skip-hex-dump skip the initial hex dump of the EDID\n" |
80 | 111 | " --skip-sha skip the SHA report\n" |
81 | " -e, --extract extract the contents of the first block in hex values\n" | |
112 | " --hide-serial-numbers replace serial numbers with '...'\n" | |
113 | " --version show the edid-decode version (SHA)\n" | |
82 | 114 | " -h, --help display this help message\n"); |
83 | 115 | } |
84 | 116 | |
86 | 118 | |
87 | 119 | void msg(bool is_warn, const char *fmt, ...) |
88 | 120 | { |
89 | char buf[256] = ""; | |
121 | char buf[1024] = ""; | |
90 | 122 | va_list ap; |
91 | 123 | |
92 | 124 | va_start(ap, fmt); |
112 | 144 | for (unsigned i = 0; i < state.num_blocks; i++) { |
113 | 145 | if (s_msgs[i][is_warn].empty()) |
114 | 146 | continue; |
115 | printf("Block %u (%s):\n%s", | |
147 | printf("Block %u, %s:\n%s", | |
116 | 148 | i, block_name(edid[i * EDID_PAGE_SIZE]).c_str(), |
117 | 149 | s_msgs[i][is_warn].c_str()); |
118 | 150 | } |
119 | 151 | if (s_msgs[EDID_MAX_BLOCKS][is_warn].empty()) |
120 | 152 | return; |
121 | printf("All Blocks:\n%s", | |
153 | printf("EDID:\n%s", | |
122 | 154 | s_msgs[EDID_MAX_BLOCKS][is_warn].c_str()); |
123 | 155 | } |
124 | 156 | |
129 | 161 | unsigned char sum = 0; |
130 | 162 | unsigned i; |
131 | 163 | |
132 | printf("%sChecksum: 0x%hhx", prefix, check); | |
164 | printf("%sChecksum: 0x%02hhx", prefix, check); | |
133 | 165 | |
134 | 166 | for (i = 0; i < len-1; i++) |
135 | 167 | sum += x[i]; |
136 | 168 | |
137 | 169 | if ((unsigned char)(check + sum) != 0) { |
138 | 170 | printf(" (should be 0x%02x)\n", -sum & 0xff); |
139 | fail("Invalid checksum 0x%02x (should be 0x%02x)\n", | |
171 | fail("Invalid checksum 0x%02x (should be 0x%02x).\n", | |
140 | 172 | check, -sum & 0xff); |
141 | 173 | return; |
142 | 174 | } |
158 | 190 | { |
159 | 191 | unsigned d = gcd(t->hact, t->vact); |
160 | 192 | |
193 | if (d == 0) { | |
194 | t->hratio = t->vratio = 0; | |
195 | return; | |
196 | } | |
161 | 197 | t->hratio = t->hact / d; |
162 | 198 | t->vratio = t->vact / d; |
163 | 199 | } |
164 | 200 | |
165 | void edid_state::print_timings(const char *prefix, const struct timings *t, | |
166 | const char *suffix) | |
201 | std::string edid_state::dtd_type(unsigned cnt) | |
202 | { | |
203 | unsigned len = std::to_string(cta.preparse_total_dtds).length(); | |
204 | char buf[16]; | |
205 | sprintf(buf, "DTD %*u", len, cnt); | |
206 | return buf; | |
207 | } | |
208 | ||
209 | bool edid_state::match_timings(const timings &t1, const timings &t2) | |
210 | { | |
211 | if (t1.hact != t2.hact || | |
212 | t1.vact != t2.vact || | |
213 | t1.rb != t2.rb || | |
214 | t1.interlaced != t2.interlaced || | |
215 | t1.hfp != t2.hfp || | |
216 | t1.hbp != t2.hbp || | |
217 | t1.hsync != t2.hsync || | |
218 | t1.pos_pol_hsync != t2.pos_pol_hsync || | |
219 | t1.hratio != t2.hratio || | |
220 | t1.vfp != t2.vfp || | |
221 | t1.vbp != t2.vbp || | |
222 | t1.vsync != t2.vsync || | |
223 | t1.pos_pol_vsync != t2.pos_pol_vsync || | |
224 | t1.vratio != t2.vratio || | |
225 | t1.pixclk_khz != t2.pixclk_khz) | |
226 | return false; | |
227 | return true; | |
228 | } | |
229 | ||
230 | static void or_str(std::string &s, const std::string &flag, unsigned &num_flags) | |
231 | { | |
232 | if (!num_flags) | |
233 | s = flag; | |
234 | else if (num_flags % 2 == 0) | |
235 | s = s + " | \\\n\t\t" + flag; | |
236 | else | |
237 | s = s + " | " + flag; | |
238 | num_flags++; | |
239 | } | |
240 | ||
241 | static void print_modeline(unsigned indent, const struct timings *t, double refresh) | |
242 | { | |
243 | unsigned offset = (!t->even_vtotal && t->interlaced) ? 1 : 0; | |
244 | ||
245 | printf("%*sModeline \"%ux%u_%.2f%s\" %.3f %u %u %u %u %u %u %u %u %cHSync", | |
246 | indent, "", | |
247 | t->hact, t->vact, refresh, | |
248 | t->interlaced ? "i" : "", t->pixclk_khz / 1000.0, | |
249 | t->hact, t->hact + t->hfp, t->hact + t->hfp + t->hsync, | |
250 | t->hact + t->hfp + t->hsync + t->hbp, | |
251 | t->vact, t->vact + t->vfp, t->vact + t->vfp + t->vsync, | |
252 | t->vact + t->vfp + t->vsync + t->vbp + offset, | |
253 | t->pos_pol_hsync ? '+' : '-'); | |
254 | if (!t->no_pol_vsync) | |
255 | printf(" %cVSync", t->pos_pol_vsync ? '+' : '-'); | |
256 | if (t->interlaced) | |
257 | printf(" Interlace"); | |
258 | printf("\n"); | |
259 | } | |
260 | ||
261 | static void print_fbmode(unsigned indent, const struct timings *t, | |
262 | double refresh, double hor_freq_khz) | |
263 | { | |
264 | printf("%*smode \"%ux%u-%u%s\"\n", | |
265 | indent, "", | |
266 | t->hact, t->vact, | |
267 | (unsigned)(0.5 + (t->interlaced ? refresh / 2.0 : refresh)), | |
268 | t->interlaced ? "-lace" : ""); | |
269 | printf("%*s# D: %.2f MHz, H: %.3f kHz, V: %.2f Hz\n", | |
270 | indent + 8, "", | |
271 | t->pixclk_khz / 1000.0, hor_freq_khz, refresh); | |
272 | printf("%*sgeometry %u %u %u %u 32\n", | |
273 | indent + 8, "", | |
274 | t->hact, t->vact, t->hact, t->vact); | |
275 | unsigned mult = t->interlaced ? 2 : 1; | |
276 | unsigned offset = !t->even_vtotal && t->interlaced; | |
277 | printf("%*stimings %llu %d %d %d %u %u %u\n", | |
278 | indent + 8, "", | |
279 | (unsigned long long)(1000000000.0 / (double)(t->pixclk_khz) + 0.5), | |
280 | t->hbp, t->hfp, mult * t->vbp, mult * t->vfp + offset, t->hsync, mult * t->vsync); | |
281 | if (t->interlaced) | |
282 | printf("%*slaced true\n", indent + 8, ""); | |
283 | if (t->pos_pol_hsync) | |
284 | printf("%*shsync high\n", indent + 8, ""); | |
285 | if (t->pos_pol_vsync) | |
286 | printf("%*svsync high\n", indent + 8, ""); | |
287 | printf("%*sendmode\n", indent, ""); | |
288 | } | |
289 | ||
290 | static void print_v4l2_timing(const struct timings *t, | |
291 | double refresh, const char *type) | |
292 | { | |
293 | printf("\t#define V4L2_DV_BT_%uX%u%c%u_%02u { \\\n", | |
294 | t->hact, t->vact, t->interlaced ? 'I' : 'P', | |
295 | (unsigned)refresh, (unsigned)(0.5 + 100.0 * (refresh - (unsigned)refresh))); | |
296 | printf("\t\t.type = V4L2_DV_BT_656_1120, \\\n"); | |
297 | printf("\t\tV4L2_INIT_BT_TIMINGS(%u, %u, %u, ", | |
298 | t->hact, t->vact, t->interlaced); | |
299 | if (!t->pos_pol_hsync && !t->pos_pol_vsync) | |
300 | printf("0, \\\n"); | |
301 | else if (t->pos_pol_hsync && t->pos_pol_vsync) | |
302 | printf("\\\n\t\t\tV4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \\\n"); | |
303 | else if (t->pos_pol_hsync) | |
304 | printf("V4L2_DV_HSYNC_POS_POL, \\\n"); | |
305 | else | |
306 | printf("V4L2_DV_VSYNC_POS_POL, \\\n"); | |
307 | printf("\t\t\t%lluULL, %d, %u, %d, %u, %u, %d, %u, %u, %d, \\\n", | |
308 | t->pixclk_khz * 1000ULL, t->hfp, t->hsync, t->hbp, | |
309 | t->vfp, t->vsync, t->vbp, | |
310 | t->interlaced ? t->vfp : 0, | |
311 | t->interlaced ? t->vsync : 0, | |
312 | t->interlaced ? t->vbp + !t->even_vtotal : 0); | |
313 | ||
314 | std::string flags; | |
315 | unsigned num_flags = 0; | |
316 | unsigned vic = 0; | |
317 | unsigned hdmi_vic = 0; | |
318 | const char *std = "0"; | |
319 | ||
320 | if (t->interlaced && !t->even_vtotal) | |
321 | or_str(flags, "V4L2_DV_FL_HALF_LINE", num_flags); | |
322 | if (!memcmp(type, "VIC", 3)) { | |
323 | or_str(flags, "V4L2_DV_FL_HAS_CEA861_VIC", num_flags); | |
324 | or_str(flags, "V4L2_DV_FL_IS_CE_VIDEO", num_flags); | |
325 | vic = strtoul(type + 4, 0, 0); | |
326 | } | |
327 | if (!memcmp(type, "HDMI VIC", 8)) { | |
328 | or_str(flags, "V4L2_DV_FL_HAS_HDMI_VIC", num_flags); | |
329 | or_str(flags, "V4L2_DV_FL_IS_CE_VIDEO", num_flags); | |
330 | hdmi_vic = strtoul(type + 9, 0, 0); | |
331 | vic = hdmi_vic_to_vic(hdmi_vic); | |
332 | if (vic) | |
333 | or_str(flags, "V4L2_DV_FL_HAS_CEA861_VIC", num_flags); | |
334 | } | |
335 | if (vic && (fmod(refresh, 6)) == 0.0) | |
336 | or_str(flags, "V4L2_DV_FL_CAN_REDUCE_FPS", num_flags); | |
337 | if (t->rb) | |
338 | or_str(flags, "V4L2_DV_FL_REDUCED_BLANKING", num_flags); | |
339 | if (t->hratio && t->vratio) | |
340 | or_str(flags, "V4L2_DV_FL_HAS_PICTURE_ASPECT", num_flags); | |
341 | ||
342 | if (!memcmp(type, "VIC", 3) || !memcmp(type, "HDMI VIC", 8)) | |
343 | std = "V4L2_DV_BT_STD_CEA861"; | |
344 | else if (!memcmp(type, "DMT", 3)) | |
345 | std = "V4L2_DV_BT_STD_DMT"; | |
346 | else if (!memcmp(type, "CVT", 3)) | |
347 | std = "V4L2_DV_BT_STD_CVT"; | |
348 | else if (!memcmp(type, "GTF", 3)) | |
349 | std = "V4L2_DV_BT_STD_GTF"; | |
350 | printf("\t\t\t%s, \\\n", std); | |
351 | printf("\t\t\t%s, \\\n", flags.empty() ? "0" : flags.c_str()); | |
352 | printf("\t\t\t{ %u, %u }, %u, %u) \\\n", | |
353 | t->hratio, t->vratio, vic, hdmi_vic); | |
354 | printf("\t}\n"); | |
355 | } | |
356 | ||
357 | static void print_detailed_timing(unsigned indent, const struct timings *t) | |
358 | { | |
359 | printf("%*sHfront %4d Hsync %3u Hback %3d Hpol %s", | |
360 | indent, "", | |
361 | t->hfp, t->hsync, t->hbp, t->pos_pol_hsync ? "P" : "N"); | |
362 | if (t->hborder) | |
363 | printf(" Hborder %u", t->hborder); | |
364 | printf("\n"); | |
365 | ||
366 | printf("%*sVfront %4u Vsync %3u Vback %3d", | |
367 | indent, "", t->vfp, t->vsync, t->vbp); | |
368 | if (!t->no_pol_vsync) | |
369 | printf(" Vpol %s", t->pos_pol_vsync ? "P" : "N"); | |
370 | if (t->vborder) | |
371 | printf(" Vborder %u", t->vborder); | |
372 | if (t->even_vtotal) { | |
373 | printf(" Both Fields"); | |
374 | } else if (t->interlaced) { | |
375 | printf(" Vfront +0.5 Odd Field\n"); | |
376 | printf("%*sVfront %4d Vsync %3u Vback %3d", | |
377 | indent, "", t->vfp, t->vsync, t->vbp); | |
378 | if (!t->no_pol_vsync) | |
379 | printf(" Vpol %s", t->pos_pol_vsync ? "P" : "N"); | |
380 | if (t->vborder) | |
381 | printf(" Vborder %u", t->vborder); | |
382 | printf(" Vback +0.5 Even Field"); | |
383 | } | |
384 | printf("\n"); | |
385 | } | |
386 | ||
387 | bool edid_state::print_timings(const char *prefix, const struct timings *t, | |
388 | const char *type, const char *flags, | |
389 | bool detailed) | |
167 | 390 | { |
168 | 391 | if (!t) { |
169 | 392 | // Should not happen |
170 | fail("Unknown short timings\n"); | |
171 | return; | |
172 | } | |
173 | ||
174 | unsigned htotal = t->hact + t->hfp + t->hsync + t->hbp; | |
175 | double hor_freq_khz = (double)t->pixclk_khz / htotal; | |
176 | ||
177 | double vtotal = t->vact + t->vfp + t->vsync + t->vbp; | |
393 | fail("Unknown video timings.\n"); | |
394 | return false; | |
395 | } | |
396 | ||
397 | if (detailed && options[OptShortTimings]) | |
398 | detailed = false; | |
399 | if (options[OptLongTimings]) | |
400 | detailed = true; | |
401 | ||
402 | unsigned vact = t->vact; | |
403 | unsigned hbl = t->hfp + t->hsync + t->hbp; | |
404 | unsigned vbl = t->vfp + t->vsync + t->vbp; | |
405 | unsigned htotal = t->hact + hbl; | |
406 | double hor_freq_khz = htotal ? (double)t->pixclk_khz / htotal : 0; | |
407 | ||
408 | if (t->interlaced) | |
409 | vact /= 2; | |
410 | ||
411 | if (t->ycbcr420) | |
412 | hor_freq_khz /= 2; | |
413 | ||
414 | double vtotal = vact + vbl; | |
415 | ||
416 | bool ok = true; | |
417 | ||
418 | if (!t->hact || !hbl || !t->hfp || !t->hsync || | |
419 | !vact || !vbl || (!t->vfp && !t->interlaced && !t->even_vtotal) || !t->vsync) { | |
420 | fail("0 values in the video timing:\n" | |
421 | " Horizontal Active/Blanking %u/%u\n" | |
422 | " Horizontal Frontporch/Sync Width %u/%u\n" | |
423 | " Vertical Active/Blanking %u/%u\n" | |
424 | " Vertical Frontporch/Sync Width %u/%u\n", | |
425 | t->hact, hbl, t->hfp, t->hsync, vact, vbl, t->vfp, t->vsync); | |
426 | ok = false; | |
427 | } | |
428 | ||
178 | 429 | if (t->even_vtotal) |
179 | vtotal = t->vact / 2.0 + t->vfp + t->vsync + t->vbp; | |
430 | vtotal = vact + t->vfp + t->vsync + t->vbp; | |
180 | 431 | else if (t->interlaced) |
181 | vtotal = t->vact / 2.0 + t->vfp + t->vsync + t->vbp + 0.5; | |
432 | vtotal = vact + t->vfp + t->vsync + t->vbp + 0.5; | |
433 | ||
182 | 434 | double refresh = (double)t->pixclk_khz * 1000.0 / (htotal * vtotal); |
183 | 435 | |
184 | min_vert_freq_hz = min(min_vert_freq_hz, refresh); | |
185 | max_vert_freq_hz = max(max_vert_freq_hz, refresh); | |
186 | min_hor_freq_hz = min(min_hor_freq_hz, hor_freq_khz * 1000); | |
187 | max_hor_freq_hz = max(max_hor_freq_hz, hor_freq_khz * 1000); | |
188 | max_pixclk_khz = max(max_pixclk_khz, t->pixclk_khz); | |
189 | ||
190 | std::string s(suffix); | |
436 | std::string s; | |
191 | 437 | if (t->rb) { |
192 | if (s.empty()) | |
193 | s = "RB"; | |
194 | else | |
195 | s += ", RB"; | |
438 | s = "RB"; | |
196 | 439 | if (t->rb == 2) |
197 | 440 | s += "v2"; |
198 | } | |
441 | else if (t->rb == 3) | |
442 | s += "v3"; | |
443 | } | |
444 | add_str(s, flags); | |
445 | if (t->hsize_mm || t->vsize_mm) | |
446 | add_str(s, std::to_string(t->hsize_mm) + " mm x " + std::to_string(t->vsize_mm) + " mm"); | |
199 | 447 | if (!s.empty()) |
200 | 448 | s = " (" + s + ")"; |
449 | unsigned pixclk_khz = t->pixclk_khz / (t->ycbcr420 ? 2 : 1); | |
201 | 450 | |
202 | 451 | char buf[10]; |
452 | ||
203 | 453 | sprintf(buf, "%u%s", t->vact, t->interlaced ? "i" : ""); |
204 | printf("%s%5ux%-5s %7.3f Hz %3u:%-3u %7.3f kHz %7.3f MHz%s\n", | |
205 | prefix, | |
454 | printf("%s%s: %5ux%-5s %7.3f Hz %3u:%-3u %7.3f kHz %7.3f MHz%s\n", | |
455 | prefix, type, | |
206 | 456 | t->hact, buf, |
207 | 457 | refresh, |
208 | 458 | t->hratio, t->vratio, |
209 | 459 | hor_freq_khz, |
210 | t->pixclk_khz / 1000.0, | |
460 | pixclk_khz / 1000.0, | |
211 | 461 | s.c_str()); |
212 | } | |
213 | ||
214 | bool edid_state::print_detailed_timings(const char *prefix, const struct timings &t, const char *flags) | |
215 | { | |
216 | unsigned vact = t.vact; | |
217 | unsigned hbl = t.hfp + t.hsync + t.hbp; | |
218 | unsigned vbl = t.vfp + t.vsync + t.vbp; | |
219 | ||
220 | if (t.interlaced) | |
221 | vact /= 2; | |
222 | ||
223 | double vtotal = vact + vbl; | |
224 | ||
225 | bool ok = true; | |
226 | ||
227 | if (!t.hact || !hbl || !t.hfp || !t.hsync || !vact || !vbl || !t.vfp || !t.vsync) { | |
228 | fail("0 values in the detailed timings:\n" | |
229 | " Horizontal Active/Blanking %u/%u\n" | |
230 | " Horizontal Frontporch/Sync Width %u/%u\n" | |
231 | " Vertical Active/Blanking %u/%u\n" | |
232 | " Vertical Frontporch/Sync Width %u/%u\n", | |
233 | t.hact, hbl, t.hfp, t.hsync, vact, vbl, t.vfp, t.vsync); | |
234 | ok = false; | |
235 | } | |
236 | ||
237 | if (t.even_vtotal) | |
238 | vtotal = vact + t.vfp + t.vsync + t.vbp; | |
239 | else if (t.interlaced) | |
240 | vtotal = vact + t.vfp + t.vsync + t.vbp + 0.5; | |
241 | ||
242 | double refresh = (double)t.pixclk_khz * 1000.0 / ((t.hact + hbl) * vtotal); | |
243 | ||
244 | printf("%sDetailed mode: Clock %.3f MHz", prefix, t.pixclk_khz / 1000.0); | |
245 | if (flags && *flags) | |
246 | printf(", %s", flags); | |
247 | if (t.hsize_mm || t.vsize_mm) | |
248 | printf(", %u mm x %u mm", t.hsize_mm, t.vsize_mm); | |
249 | printf("\n"); | |
250 | printf("%s %4u %4u %4u %4u (%3u %3u %3d)%s\n" | |
251 | "%s %4u %4u %4u %4u (%3u %3u %3d)%s\n" | |
252 | "%s %chsync%s\n" | |
253 | "%s VertFreq: %.3f%s Hz, HorFreq: %.3f kHz\n", | |
254 | prefix, | |
255 | t.hact, t.hact + t.hfp, t.hact + t.hfp + t.hsync, t.hact + hbl, t.hfp, t.hsync, t.hbp, | |
256 | t.hborder ? (std::string(" hborder ") + std::to_string(t.hborder)).c_str() : "", | |
257 | prefix, | |
258 | vact, vact + t.vfp, vact + t.vfp + t.vsync, vact + vbl, t.vfp, t.vsync, t.vbp, | |
259 | t.vborder ? (std::string(" vborder ") + std::to_string(t.vborder)).c_str() : "", | |
260 | prefix, | |
261 | t.pos_pol_hsync ? '+' : '-', t.no_pol_vsync ? "" : (t.pos_pol_vsync ? " +vsync" : " -vsync"), | |
262 | prefix, | |
263 | refresh, t.interlaced ? "i" : "", | |
264 | t.hact + hbl ? (double)t.pixclk_khz / (t.hact + hbl) : 0.0); | |
265 | ||
266 | if (t.hbp <= 0) | |
267 | fail("0 or negative horizontal back porch\n"); | |
268 | if (t.vbp <= 0) | |
269 | fail("0 or negative vertical back porch\n"); | |
270 | if ((!max_display_width_mm && t.hsize_mm) || | |
271 | (!max_display_height_mm && t.vsize_mm)) { | |
272 | fail("Mismatch of image size vs display size: image size is set, but not display size\n"); | |
273 | } else if (!t.hsize_mm && !t.vsize_mm) { | |
462 | ||
463 | unsigned len = strlen(prefix) + 2; | |
464 | ||
465 | if (!t->ycbcr420 && detailed && options[OptXModeLineTimings]) | |
466 | print_modeline(len, t, refresh); | |
467 | else if (!t->ycbcr420 && detailed && options[OptFBModeTimings]) | |
468 | print_fbmode(len, t, refresh, hor_freq_khz); | |
469 | else if (!t->ycbcr420 && detailed && options[OptV4L2Timings]) | |
470 | print_v4l2_timing(t, refresh, type); | |
471 | else if (detailed) | |
472 | print_detailed_timing(len + strlen(type) + 6, t); | |
473 | ||
474 | if (t->ycbcr420 && t->pixclk_khz < 590000) | |
475 | warn_once("Some YCbCr 4:2:0 timings are invalid for HDMI (which requires an RGB timings pixel rate >= 590 MHz).\n"); | |
476 | if (t->hfp <= 0) | |
477 | fail("0 or negative horizontal front porch.\n"); | |
478 | if (t->hbp <= 0) | |
479 | fail("0 or negative horizontal back porch.\n"); | |
480 | if (t->vbp <= 0) | |
481 | fail("0 or negative vertical back porch.\n"); | |
482 | if ((!base.max_display_width_mm && t->hsize_mm) || | |
483 | (!base.max_display_height_mm && t->vsize_mm)) { | |
484 | fail("Mismatch of image size vs display size: image size is set, but not display size.\n"); | |
485 | } else if (!t->hsize_mm && !t->vsize_mm) { | |
274 | 486 | /* this is valid */ |
275 | } else if (t.hsize_mm > max_display_width_mm + 9 || | |
276 | t.vsize_mm > max_display_height_mm + 9) { | |
277 | fail("Mismatch of image size %ux%u mm vs display size %ux%u mm\n", | |
278 | t.hsize_mm, t.vsize_mm, max_display_width_mm, max_display_height_mm); | |
279 | } else if (t.hsize_mm < max_display_width_mm - 9 && | |
280 | t.vsize_mm < max_display_height_mm - 9) { | |
281 | fail("Mismatch of image size %ux%u mm vs display size %ux%u mm\n", | |
282 | t.hsize_mm, t.vsize_mm, max_display_width_mm, max_display_height_mm); | |
487 | } else if (t->hsize_mm > base.max_display_width_mm + 9 || | |
488 | t->vsize_mm > base.max_display_height_mm + 9) { | |
489 | fail("Mismatch of image size %ux%u mm vs display size %ux%u mm.\n", | |
490 | t->hsize_mm, t->vsize_mm, base.max_display_width_mm, base.max_display_height_mm); | |
491 | } else if (t->hsize_mm < base.max_display_width_mm - 9 && | |
492 | t->vsize_mm < base.max_display_height_mm - 9) { | |
493 | fail("Mismatch of image size %ux%u mm vs display size %ux%u mm.\n", | |
494 | t->hsize_mm, t->vsize_mm, base.max_display_width_mm, base.max_display_height_mm); | |
283 | 495 | } |
284 | 496 | if (refresh) { |
285 | 497 | min_vert_freq_hz = min(min_vert_freq_hz, refresh); |
286 | 498 | max_vert_freq_hz = max(max_vert_freq_hz, refresh); |
287 | 499 | } |
288 | if (t.pixclk_khz && (t.hact + hbl)) { | |
289 | min_hor_freq_hz = min(min_hor_freq_hz, (t.pixclk_khz * 1000) / (t.hact + hbl)); | |
290 | max_hor_freq_hz = max(max_hor_freq_hz, (t.pixclk_khz * 1000) / (t.hact + hbl)); | |
291 | max_pixclk_khz = max(max_pixclk_khz, t.pixclk_khz); | |
500 | if (pixclk_khz && (t->hact + hbl)) { | |
501 | min_hor_freq_hz = min(min_hor_freq_hz, (pixclk_khz * 1000) / (t->hact + hbl)); | |
502 | max_hor_freq_hz = max(max_hor_freq_hz, (pixclk_khz * 1000) / (t->hact + hbl)); | |
503 | max_pixclk_khz = max(max_pixclk_khz, pixclk_khz); | |
292 | 504 | } |
293 | 505 | return ok; |
294 | 506 | } |
298 | 510 | char buf[10]; |
299 | 511 | |
300 | 512 | sprintf(buf, "0x%02hhx", x); |
513 | return buf; | |
514 | } | |
515 | ||
516 | const char *oui_name(unsigned oui, bool reverse) | |
517 | { | |
518 | if (reverse) | |
519 | oui = (oui >> 16) | (oui & 0xff00) | ((oui & 0xff) << 16); | |
520 | ||
521 | switch (oui) { | |
522 | case 0x00001a: return "AMD"; | |
523 | case 0x000c03: return "HDMI"; | |
524 | case 0x00044b: return "NVIDIA"; | |
525 | case 0x000c6e: return "ASUS"; | |
526 | case 0x0010fa: return "Apple"; | |
527 | case 0x0014b9: return "MSTAR"; | |
528 | case 0x00d046: return "Dolby"; | |
529 | case 0x00e047: return "InFocus"; | |
530 | case 0x3a0292: return "VESA"; | |
531 | case 0x90848b: return "HDR10+"; | |
532 | case 0xc45dd8: return "HDMI Forum"; | |
533 | case 0xca125c: return "Microsoft"; | |
534 | default: return NULL; | |
535 | } | |
536 | } | |
537 | ||
538 | std::string ouitohex(unsigned oui) | |
539 | { | |
540 | char buf[32]; | |
541 | ||
542 | sprintf(buf, "%02X-%02X-%02X", (oui >> 16) & 0xff, (oui >> 8) & 0xff, oui & 0xff); | |
301 | 543 | return buf; |
302 | 544 | } |
303 | 545 | |
318 | 560 | return; |
319 | 561 | |
320 | 562 | for (i = 0; i < length; i += step) { |
563 | unsigned len = min(step, length - i); | |
564 | ||
321 | 565 | printf("%s", prefix); |
322 | for (j = 0; j < step; j++) | |
323 | if (i + j < length) | |
324 | printf("%02x ", x[i + j]); | |
325 | else if (length > step) | |
566 | for (j = 0; j < len; j++) | |
567 | printf("%s%02x", j ? " " : "", x[i + j]); | |
568 | ||
569 | if (show_ascii) { | |
570 | for (j = len; j < step; j++) | |
326 | 571 | printf(" "); |
327 | if (show_ascii) { | |
328 | printf(" "); | |
329 | for (j = 0; j < step && i + j < length; j++) | |
572 | printf(" '"); | |
573 | for (j = 0; j < len; j++) | |
330 | 574 | printf("%c", x[i + j] >= ' ' && x[i + j] <= '~' ? x[i + j] : '.'); |
575 | printf("'"); | |
331 | 576 | } |
332 | 577 | printf("\n"); |
333 | 578 | } |
334 | 579 | } |
335 | 580 | |
336 | static bool edid_add_byte(const char *s) | |
581 | static bool edid_add_byte(const char *s, bool two_digits = true) | |
337 | 582 | { |
338 | 583 | char buf[3]; |
339 | 584 | |
340 | 585 | if (state.edid_size == sizeof(edid)) |
341 | 586 | return false; |
342 | 587 | buf[0] = s[0]; |
343 | buf[1] = s[1]; | |
588 | buf[1] = two_digits ? s[1] : 0; | |
344 | 589 | buf[2] = 0; |
345 | 590 | edid[state.edid_size++] = strtoul(buf, NULL, 16); |
346 | 591 | return true; |
359 | 604 | return false; |
360 | 605 | start = strstr(start, "<BLOCK"); |
361 | 606 | } while (start); |
362 | return state.edid_size && !(state.edid_size % EDID_PAGE_SIZE); | |
607 | return state.edid_size; | |
363 | 608 | } |
364 | 609 | |
365 | 610 | static const char *ignore_chars = ",:;"; |
366 | 611 | |
367 | static bool extract_edid_hex(const char *s) | |
612 | static bool extract_edid_hex(const char *s, bool require_two_digits = true) | |
368 | 613 | { |
369 | 614 | for (; *s; s++) { |
370 | 615 | if (isspace(*s) || strchr(ignore_chars, *s)) |
375 | 620 | continue; |
376 | 621 | } |
377 | 622 | |
378 | /* Read a %02x from the log */ | |
379 | if (!isxdigit(s[0]) || !isxdigit(s[1])) { | |
623 | /* Read one or two hex digits from the log */ | |
624 | if (!isxdigit(s[0])) { | |
380 | 625 | if (state.edid_size && state.edid_size % 128 == 0) |
381 | 626 | break; |
382 | 627 | return false; |
383 | 628 | } |
384 | if (!edid_add_byte(s)) | |
629 | if (require_two_digits && !isxdigit(s[1])) { | |
630 | odd_hex_digits = true; | |
385 | 631 | return false; |
386 | s++; | |
387 | } | |
388 | return state.edid_size && !(state.edid_size % EDID_PAGE_SIZE); | |
632 | } | |
633 | if (!edid_add_byte(s, isxdigit(s[1]))) | |
634 | return false; | |
635 | if (isxdigit(s[1])) | |
636 | s++; | |
637 | } | |
638 | return state.edid_size; | |
389 | 639 | } |
390 | 640 | |
391 | 641 | static bool extract_edid_xrandr(const char *start) |
431 | 681 | return false; |
432 | 682 | } |
433 | 683 | } |
434 | return state.edid_size && !(state.edid_size % EDID_PAGE_SIZE); | |
684 | return state.edid_size; | |
435 | 685 | } |
436 | 686 | |
437 | 687 | static bool extract_edid_xorg(const char *start) |
465 | 715 | start++; |
466 | 716 | } |
467 | 717 | } |
468 | return state.edid_size && !(state.edid_size % EDID_PAGE_SIZE); | |
469 | } | |
470 | ||
471 | static bool extract_edid(int fd) | |
718 | return state.edid_size; | |
719 | } | |
720 | ||
721 | static bool extract_edid(int fd, FILE *error) | |
472 | 722 | { |
473 | 723 | std::vector<char> edid_data; |
474 | 724 | char buf[EDID_PAGE_SIZE]; |
499 | 749 | /* Look for C-array */ |
500 | 750 | start = strstr(data, "unsigned char edid[] = {"); |
501 | 751 | if (start) |
502 | return extract_edid_hex(strchr(start, '{') + 1); | |
752 | return extract_edid_hex(strchr(start, '{') + 1, false); | |
503 | 753 | |
504 | 754 | /* Look for QuantumData EDID output */ |
505 | 755 | start = strstr(data, "<BLOCK"); |
530 | 780 | return extract_edid_hex(data); |
531 | 781 | |
532 | 782 | /* Assume binary */ |
533 | if (edid_data.size() % EDID_PAGE_SIZE || edid_data.size() > sizeof(edid)) | |
783 | if (edid_data.size() > sizeof(edid)) { | |
784 | fprintf(error, "Binary EDID length %zu is greater than %zu.\n", | |
785 | edid_data.size(), sizeof(edid)); | |
534 | 786 | return false; |
787 | } | |
535 | 788 | memcpy(edid, data, edid_data.size()); |
536 | 789 | state.edid_size = edid_data.size(); |
537 | 790 | return true; |
538 | } | |
539 | ||
540 | static void print_subsection(const char *name, const unsigned char *edid, | |
541 | unsigned start, unsigned end) | |
542 | { | |
543 | unsigned i; | |
544 | ||
545 | printf("%s:", name); | |
546 | for (i = strlen(name); i < 15; i++) | |
547 | printf(" "); | |
548 | for (i = start; i <= end; i++) | |
549 | printf(" %02x", edid[i]); | |
550 | printf("\n"); | |
551 | } | |
552 | ||
553 | static void dump_breakdown(const unsigned char *edid) | |
554 | { | |
555 | printf("Extracted contents:\n"); | |
556 | print_subsection("header", edid, 0, 7); | |
557 | print_subsection("serial number", edid, 8, 17); | |
558 | print_subsection("version", edid,18, 19); | |
559 | print_subsection("basic params", edid, 20, 24); | |
560 | print_subsection("chroma info", edid, 25, 34); | |
561 | print_subsection("established", edid, 35, 37); | |
562 | print_subsection("standard", edid, 38, 53); | |
563 | print_subsection("descriptor 1", edid, 54, 71); | |
564 | print_subsection("descriptor 2", edid, 72, 89); | |
565 | print_subsection("descriptor 3", edid, 90, 107); | |
566 | print_subsection("descriptor 4", edid, 108, 125); | |
567 | print_subsection("extensions", edid, 126, 126); | |
568 | print_subsection("checksum", edid, 127, 127); | |
569 | printf("\n"); | |
570 | 791 | } |
571 | 792 | |
572 | 793 | static unsigned char crc_calc(const unsigned char *b) |
601 | 822 | fprintf(f, "\n"); |
602 | 823 | } |
603 | 824 | if (!crc_ok(buf)) |
604 | fprintf(f, "Block %u has a checksum error (should be 0x%02x)\n", | |
825 | fprintf(f, "Block %u has a checksum error (should be 0x%02x).\n", | |
605 | 826 | b, crc_calc(buf)); |
606 | 827 | } |
607 | 828 | } |
624 | 845 | fprintf(f, "\n"); |
625 | 846 | } |
626 | 847 | if (!crc_ok(buf)) |
627 | fprintf(f, "\t/* Block %u has a checksum error (should be 0x%02x) */\n", | |
848 | fprintf(f, "\t/* Block %u has a checksum error (should be 0x%02x). */\n", | |
628 | 849 | b, crc_calc(buf)); |
629 | 850 | } |
630 | 851 | fprintf(f, "};\n"); |
631 | 852 | } |
632 | 853 | |
633 | static void write_edid(FILE *f, const unsigned char *edid, unsigned size, | |
634 | enum output_format out_fmt) | |
635 | { | |
854 | // This format can be read by the QuantumData EDID editor | |
855 | static void xmldumpedid(FILE *f, const unsigned char *edid, unsigned size) | |
856 | { | |
857 | fprintf(f, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"); | |
858 | fprintf(f, "<DATAOBJ>\n"); | |
859 | fprintf(f, " <HEADER TYPE=\"DID\" VERSION=\"1.0\"/>\n"); | |
860 | fprintf(f, " <DATA>\n"); | |
861 | for (unsigned b = 0; b < size / 128; b++) { | |
862 | const unsigned char *buf = edid + 128 * b; | |
863 | ||
864 | fprintf(f, " <BLOCK%u>", b); | |
865 | for (unsigned i = 0; i < 128; i++) | |
866 | fprintf(f, "%02X", buf[i]); | |
867 | fprintf(f, "</BLOCK%u>\n", b); | |
868 | } | |
869 | fprintf(f, " </DATA>\n"); | |
870 | fprintf(f, "</DATAOBJ>\n"); | |
871 | } | |
872 | ||
873 | ||
874 | static int edid_to_file(const char *to_file, enum output_format out_fmt) | |
875 | { | |
876 | FILE *out; | |
877 | ||
878 | if (!strcmp(to_file, "-")) { | |
879 | to_file = "stdout"; | |
880 | out = stdout; | |
881 | } else if ((out = fopen(to_file, "w")) == NULL) { | |
882 | perror(to_file); | |
883 | return -1; | |
884 | } | |
885 | if (out_fmt == OUT_FMT_DEFAULT) | |
886 | out_fmt = out == stdout ? OUT_FMT_HEX : OUT_FMT_RAW; | |
887 | ||
636 | 888 | switch (out_fmt) { |
637 | 889 | default: |
638 | 890 | case OUT_FMT_HEX: |
639 | hexdumpedid(f, edid, size); | |
891 | hexdumpedid(out, edid, state.edid_size); | |
640 | 892 | break; |
641 | 893 | case OUT_FMT_RAW: |
642 | fwrite(edid, size, 1, f); | |
894 | fwrite(edid, state.edid_size, 1, out); | |
643 | 895 | break; |
644 | 896 | case OUT_FMT_CARRAY: |
645 | carraydumpedid(f, edid, size); | |
646 | break; | |
647 | } | |
648 | } | |
649 | ||
650 | static int edid_from_file(const char *from_file, const char *to_file, | |
651 | enum output_format out_fmt) | |
652 | { | |
653 | FILE *out = NULL; | |
897 | carraydumpedid(out, edid, state.edid_size); | |
898 | break; | |
899 | case OUT_FMT_XML: | |
900 | xmldumpedid(out, edid, state.edid_size); | |
901 | break; | |
902 | } | |
903 | ||
904 | if (out != stdout) | |
905 | fclose(out); | |
906 | return 0; | |
907 | } | |
908 | ||
909 | static int edid_from_file(const char *from_file, FILE *error) | |
910 | { | |
911 | #ifdef O_BINARY | |
912 | // Windows compatibility | |
913 | int flags = O_RDONLY | O_BINARY; | |
914 | #else | |
915 | int flags = O_RDONLY; | |
916 | #endif | |
654 | 917 | int fd; |
655 | 918 | |
656 | if (!from_file || !strcmp(from_file, "-")) { | |
919 | if (!strcmp(from_file, "-")) { | |
657 | 920 | from_file = "stdin"; |
658 | 921 | fd = 0; |
659 | } else if ((fd = open(from_file, O_RDONLY)) == -1) { | |
922 | } else if ((fd = open(from_file, flags)) == -1) { | |
660 | 923 | perror(from_file); |
661 | 924 | return -1; |
662 | 925 | } |
663 | if (to_file) { | |
664 | if (!strcmp(to_file, "-")) { | |
665 | to_file = "stdout"; | |
666 | out = stdout; | |
667 | } else if ((out = fopen(to_file, "w")) == NULL) { | |
668 | perror(to_file); | |
669 | return -1; | |
670 | } | |
671 | if (out_fmt == OUT_FMT_DEFAULT) | |
672 | out_fmt = out == stdout ? OUT_FMT_HEX : OUT_FMT_RAW; | |
673 | } | |
674 | ||
675 | if (!extract_edid(fd)) { | |
676 | fprintf(stderr, "EDID extract of '%s' failed\n", from_file); | |
926 | ||
927 | odd_hex_digits = false; | |
928 | if (!extract_edid(fd, error)) { | |
929 | fprintf(error, "EDID extract of '%s' failed: ", from_file); | |
930 | if (odd_hex_digits) | |
931 | fprintf(error, "odd number of hexadecimal digits.\n"); | |
932 | else | |
933 | fprintf(error, "unknown format.\n"); | |
934 | return -1; | |
935 | } | |
936 | if (state.edid_size % EDID_PAGE_SIZE) { | |
937 | fprintf(error, "EDID length %u is not a multiple of %u.\n", | |
938 | state.edid_size, EDID_PAGE_SIZE); | |
677 | 939 | return -1; |
678 | 940 | } |
679 | 941 | state.num_blocks = state.edid_size / EDID_PAGE_SIZE; |
681 | 943 | close(fd); |
682 | 944 | |
683 | 945 | if (memcmp(edid, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8)) { |
684 | fprintf(stderr, "No EDID header found in '%s'\n", from_file); | |
946 | fprintf(error, "No EDID header found in '%s'.\n", from_file); | |
685 | 947 | return -1; |
686 | 948 | } |
687 | ||
688 | if (out) { | |
689 | write_edid(out, edid, state.edid_size, out_fmt); | |
690 | if (out != stdout) | |
691 | fclose(out); | |
692 | return 0; | |
693 | } | |
694 | ||
695 | 949 | return 0; |
696 | 950 | } |
697 | 951 | |
702 | 956 | char buf[10]; |
703 | 957 | |
704 | 958 | switch (block) { |
705 | case 0x00: return "Base Block"; | |
959 | case 0x00: return "Base EDID"; | |
706 | 960 | case 0x02: return "CTA-861 Extension Block"; |
707 | case 0x10: return "VTB Extension Block"; | |
961 | case 0x10: return "Video Timing Extension Block"; | |
962 | case 0x20: return "EDID 2.0 Extension Block"; | |
708 | 963 | case 0x40: return "Display Information Extension Block"; |
709 | 964 | case 0x50: return "Localized String Extension Block"; |
965 | case 0x60: return "Microdisplay Interface Extension Block"; | |
710 | 966 | case 0x70: return "DisplayID Extension Block"; |
711 | 967 | case 0xf0: return "Block Map Extension Block"; |
712 | 968 | case 0xff: return "Manufacturer-Specific Extension Block"; |
718 | 974 | |
719 | 975 | void edid_state::parse_block_map(const unsigned char *x) |
720 | 976 | { |
721 | static bool saw_block_1; | |
722 | 977 | unsigned last_valid_block_tag = 0; |
723 | 978 | bool fail_once = false; |
724 | 979 | unsigned offset = 1; |
725 | 980 | unsigned i; |
726 | 981 | |
727 | printf("%s\n", block.c_str()); | |
728 | 982 | if (block_nr == 1) |
729 | saw_block_1 = true; | |
730 | else if (!saw_block_1) | |
731 | fail("No EDID Block Map Extension found in block 1\n"); | |
983 | block_map.saw_block_1 = true; | |
984 | else if (!block_map.saw_block_1) | |
985 | fail("No EDID Block Map Extension found in block 1.\n"); | |
986 | else if (block_nr == 128) | |
987 | block_map.saw_block_128 = true; | |
732 | 988 | |
733 | 989 | if (block_nr > 1) |
734 | 990 | offset = 128; |
739 | 995 | if (x[i]) { |
740 | 996 | last_valid_block_tag++; |
741 | 997 | if (i != last_valid_block_tag && !fail_once) { |
742 | fail("Valid block tags are not consecutive\n"); | |
998 | fail("Valid block tags are not consecutive.\n"); | |
743 | 999 | fail_once = true; |
744 | 1000 | } |
745 | printf(" Block %3u: %s\n", block, block_name(block).c_str()); | |
746 | if (block >= num_blocks && !fail_once) { | |
747 | fail("Invalid block number %u\n", block); | |
1001 | printf(" Block %3u: %s\n", block, block_name(x[i]).c_str()); | |
1002 | if (block >= num_blocks) { | |
1003 | if (!fail_once) | |
1004 | fail("Invalid block number %u.\n", block); | |
748 | 1005 | fail_once = true; |
1006 | } else if (x[i] != edid[block * EDID_PAGE_SIZE]) { | |
1007 | fail("Block %u tag mismatch: expected 0x%02x, but got 0x%02x.\n", | |
1008 | block, edid[block * EDID_PAGE_SIZE], x[i]); | |
749 | 1009 | } |
1010 | } else if (block < num_blocks) { | |
1011 | fail("Block %u tag mismatch: expected 0x%02x, but got 0x00.\n", | |
1012 | block, edid[block * EDID_PAGE_SIZE]); | |
750 | 1013 | } |
751 | 1014 | } |
752 | 1015 | } |
755 | 1018 | { |
756 | 1019 | switch (x[0]) { |
757 | 1020 | case 0x02: |
1021 | has_cta = true; | |
758 | 1022 | preparse_cta_block(x); |
759 | 1023 | break; |
760 | 1024 | case 0x70: |
1025 | has_dispid = true; | |
761 | 1026 | preparse_displayid_block(x); |
762 | 1027 | break; |
763 | 1028 | } |
769 | 1034 | data_block.clear(); |
770 | 1035 | |
771 | 1036 | printf("\n"); |
1037 | if (block_nr && x[0] == 0) | |
1038 | block = "Unknown EDID Extension Block 0x00"; | |
1039 | printf("Block %u, %s:\n", block_nr, block.c_str()); | |
772 | 1040 | |
773 | 1041 | switch (x[0]) { |
774 | 1042 | case 0x02: |
778 | 1046 | parse_vtb_ext_block(x); |
779 | 1047 | break; |
780 | 1048 | case 0x20: |
781 | printf("%s\n", block.c_str()); | |
782 | fail("Deprecated extension block, do not use\n"); | |
1049 | fail("Deprecated extension block for EDID 2.0, do not use.\n"); | |
783 | 1050 | break; |
784 | 1051 | case 0x40: |
785 | 1052 | parse_di_ext_block(x); |
793 | 1060 | case 0xf0: |
794 | 1061 | parse_block_map(x); |
795 | 1062 | if (block_nr != 1 && block_nr != 128) |
796 | fail("Must be used in block 1 and 128\n"); | |
1063 | fail("Must be used in block 1 and 128.\n"); | |
797 | 1064 | break; |
798 | 1065 | default: |
799 | printf("%s\n", block.c_str()); | |
800 | 1066 | hex_block(" ", x, EDID_PAGE_SIZE); |
801 | fail("Unknown Extension Block\n"); | |
1067 | fail("Unknown Extension Block.\n"); | |
802 | 1068 | break; |
803 | 1069 | } |
804 | 1070 | |
808 | 1074 | |
809 | 1075 | int edid_state::parse_edid() |
810 | 1076 | { |
1077 | hide_serial_numbers = options[OptHideSerialNumbers]; | |
1078 | ||
1079 | for (unsigned i = 1; i < num_blocks; i++) | |
1080 | preparse_extension(edid + i * EDID_PAGE_SIZE); | |
1081 | ||
1082 | if (options[OptPhysicalAddress]) { | |
1083 | printf("%x.%x.%x.%x\n", | |
1084 | (cta.preparsed_phys_addr >> 12) & 0xf, | |
1085 | (cta.preparsed_phys_addr >> 8) & 0xf, | |
1086 | (cta.preparsed_phys_addr >> 4) & 0xf, | |
1087 | cta.preparsed_phys_addr & 0xf); | |
1088 | return 0; | |
1089 | } | |
1090 | ||
811 | 1091 | if (!options[OptSkipHexDump]) { |
812 | 1092 | printf("edid-decode (hex):\n\n"); |
813 | 1093 | for (unsigned i = 0; i < num_blocks; i++) { |
817 | 1097 | printf("----------------\n\n"); |
818 | 1098 | } |
819 | 1099 | |
820 | if (options[OptExtract]) | |
821 | dump_breakdown(edid); | |
822 | ||
823 | 1100 | block = block_name(0x00); |
1101 | printf("Block %u, %s:\n", block_nr, block.c_str()); | |
824 | 1102 | parse_base_block(edid); |
825 | ||
826 | for (unsigned i = 1; i < num_blocks; i++) | |
827 | preparse_extension(edid + i * EDID_PAGE_SIZE); | |
828 | 1103 | |
829 | 1104 | for (unsigned i = 1; i < num_blocks; i++) { |
830 | 1105 | block_nr++; |
834 | 1109 | |
835 | 1110 | block = ""; |
836 | 1111 | block_nr = EDID_MAX_BLOCKS; |
837 | if (uses_gtf && !supports_gtf) | |
838 | fail("GTF timings are used, but the EDID does not signal GTF support\n"); | |
839 | if (uses_cvt && !supports_cvt) | |
840 | fail("CVT timings are used, but the EDID does not signal CVT support\n"); | |
841 | if (has_display_range_descriptor && | |
842 | (min_vert_freq_hz < min_display_vert_freq_hz || | |
843 | max_vert_freq_hz > max_display_vert_freq_hz || | |
844 | min_hor_freq_hz / 1000 < min_display_hor_freq_hz / 1000 || | |
845 | max_hor_freq_hz / 1000 > max_display_hor_freq_hz / 1000 || | |
846 | max_pixclk_khz > max_display_pixclk_khz)) { | |
847 | /* | |
848 | * EDID 1.4 states (in an Errata) that explicitly defined | |
849 | * timings supersede the monitor range definition. | |
850 | */ | |
851 | char buf[512]; | |
852 | snprintf(buf, sizeof(buf), | |
853 | "One or more of the timings is out of range of the Monitor Ranges:\n" | |
854 | " Vertical Freq: %u - %u Hz (Monitor: %u - %u Hz)\n" | |
855 | " Horizontal Freq: %.3f - %.3f kHz (Monitor: %.3f - %.3f kHz)\n" | |
856 | " Maximum Clock: %.3f MHz (Monitor: %.3f MHz)\n", | |
857 | min_vert_freq_hz, max_vert_freq_hz, | |
858 | min_display_vert_freq_hz, max_display_vert_freq_hz, | |
859 | min_hor_freq_hz / 1000.0, max_hor_freq_hz / 1000.0, | |
860 | min_display_hor_freq_hz / 1000.0, max_display_hor_freq_hz / 1000.0, | |
861 | max_pixclk_khz / 1000.0, max_display_pixclk_khz / 1000.0); | |
862 | ||
863 | if (edid_minor < 4) { | |
864 | fail("%s", buf); | |
865 | } else { | |
866 | warn("%s", buf); | |
867 | } | |
1112 | ||
1113 | if (has_cta) | |
1114 | cta_resolve_svrs(); | |
1115 | ||
1116 | if (options[OptPreferredTimings] && base.preferred_timing.is_valid()) { | |
1117 | printf("\n----------------\n"); | |
1118 | printf("\nPreferred Video Timing if only Block 0 is parsed:\n"); | |
1119 | print_timings(" ", base.preferred_timing, true); | |
1120 | } | |
1121 | ||
1122 | if (options[OptNativeTimings] && | |
1123 | base.preferred_timing.is_valid() && base.preferred_is_also_native) { | |
1124 | printf("\n----------------\n"); | |
1125 | printf("\nNative Video Timing if only Block 0 is parsed:\n"); | |
1126 | print_timings(" ", base.preferred_timing, true); | |
1127 | } | |
1128 | ||
1129 | if (options[OptPreferredTimings] && !cta.preferred_timings.empty()) { | |
1130 | printf("\n----------------\n"); | |
1131 | printf("\nPreferred Video Timing%s if Block 0 and CTA-861 Blocks are parsed:\n", | |
1132 | cta.preferred_timings.size() > 1 ? "s" : ""); | |
1133 | for (vec_timings_ext::iterator iter = cta.preferred_timings.begin(); | |
1134 | iter != cta.preferred_timings.end(); ++iter) | |
1135 | print_timings(" ", *iter, true); | |
1136 | } | |
1137 | ||
1138 | if (options[OptNativeTimings] && !cta.native_timings.empty()) { | |
1139 | printf("\n----------------\n"); | |
1140 | printf("\nNative Video Timing%s if Block 0 and CTA-861 Blocks are parsed:\n", | |
1141 | cta.native_timings.size() > 1 ? "s" : ""); | |
1142 | for (vec_timings_ext::iterator iter = cta.native_timings.begin(); | |
1143 | iter != cta.native_timings.end(); ++iter) | |
1144 | print_timings(" ", *iter, true); | |
1145 | } | |
1146 | ||
1147 | if (options[OptPreferredTimings] && !dispid.preferred_timings.empty()) { | |
1148 | printf("\n----------------\n"); | |
1149 | printf("\nPreferred Video Timing%s if Block 0 and DisplayID Blocks are parsed:\n", | |
1150 | dispid.preferred_timings.size() > 1 ? "s" : ""); | |
1151 | for (vec_timings_ext::iterator iter = dispid.preferred_timings.begin(); | |
1152 | iter != dispid.preferred_timings.end(); ++iter) | |
1153 | print_timings(" ", *iter, true); | |
868 | 1154 | } |
869 | 1155 | |
870 | 1156 | if (!options[OptCheck] && !options[OptCheckInline]) |
871 | 1157 | return 0; |
872 | 1158 | |
1159 | check_base_block(); | |
1160 | if (has_cta) | |
1161 | check_cta_blocks(); | |
1162 | if (has_dispid) | |
1163 | check_displayid_blocks(); | |
1164 | ||
873 | 1165 | printf("\n----------------\n"); |
874 | 1166 | |
875 | if (!options[OptSkipSHA]) { | |
876 | #ifdef SHA | |
877 | #define STR(x) #x | |
878 | #define STRING(x) STR(x) | |
879 | printf("\nedid-decode SHA: %s\n", STRING(SHA)); | |
880 | #else | |
881 | printf("\nedid-decode SHA: not available\n"); | |
882 | #endif | |
1167 | if (!options[OptSkipSHA] && strlen(STRING(SHA))) { | |
1168 | printf("\nedid-decode SHA: %s %s\n", STRING(SHA), STRING(DATE)); | |
883 | 1169 | } |
884 | 1170 | |
885 | 1171 | if (options[OptCheck]) { |
928 | 1214 | out_fmt = OUT_FMT_RAW; |
929 | 1215 | } else if (!strcmp(optarg, "carray")) { |
930 | 1216 | out_fmt = OUT_FMT_CARRAY; |
1217 | } else if (!strcmp(optarg, "xml")) { | |
1218 | out_fmt = OUT_FMT_XML; | |
931 | 1219 | } else { |
932 | 1220 | usage(); |
933 | 1221 | exit(1); |
934 | 1222 | } |
935 | 1223 | break; |
936 | 1224 | case ':': |
937 | fprintf(stderr, "Option '%s' requires a value\n", | |
1225 | fprintf(stderr, "Option '%s' requires a value.\n", | |
938 | 1226 | argv[optind]); |
939 | 1227 | usage(); |
940 | 1228 | return -1; |
941 | 1229 | case '?': |
942 | fprintf(stderr, "Unknown argument '%s'\n", | |
1230 | fprintf(stderr, "Unknown argument '%s'.\n", | |
943 | 1231 | argv[optind]); |
944 | 1232 | usage(); |
945 | 1233 | return -1; |
946 | 1234 | } |
947 | 1235 | } |
1236 | if (optind == argc && options[OptVersion]) { | |
1237 | if (strlen(STRING(SHA))) | |
1238 | printf("edid-decode SHA: %s %s\n", STRING(SHA), STRING(DATE)); | |
1239 | else | |
1240 | printf("edid-decode SHA: not available\n"); | |
1241 | return 0; | |
1242 | } | |
1243 | ||
948 | 1244 | if (optind == argc) |
949 | ret = edid_from_file(NULL, NULL, out_fmt); | |
950 | else if (optind == argc - 1) | |
951 | ret = edid_from_file(argv[optind], NULL, out_fmt); | |
1245 | ret = edid_from_file("-", stdout); | |
952 | 1246 | else |
953 | return edid_from_file(argv[optind], argv[optind + 1], out_fmt); | |
1247 | ret = edid_from_file(argv[optind], argv[optind + 1] ? stderr : stdout); | |
1248 | ||
1249 | if (ret && options[OptPhysicalAddress]) { | |
1250 | printf("f.f.f.f\n"); | |
1251 | return 0; | |
1252 | } | |
1253 | if (optind < argc - 1) | |
1254 | return ret ? ret : edid_to_file(argv[optind + 1], out_fmt); | |
1255 | ||
954 | 1256 | return ret ? ret : state.parse_edid(); |
955 | 1257 | } |
1258 | ||
1259 | #ifdef __EMSCRIPTEN__ | |
1260 | /* | |
1261 | * The surrounding JavaScript implementation will call this function | |
1262 | * each time it wants to decode an EDID. So this should reset all the | |
1263 | * state and start over. | |
1264 | */ | |
1265 | extern "C" int parse_edid(const char *input) | |
1266 | { | |
1267 | for (unsigned i = 0; i < EDID_MAX_BLOCKS + 1; i++) { | |
1268 | s_msgs[i][0].clear(); | |
1269 | s_msgs[i][1].clear(); | |
1270 | } | |
1271 | options[OptCheck] = 1; | |
1272 | options[OptPreferredTimings] = 1; | |
1273 | options[OptNativeTimings] = 1; | |
1274 | state = edid_state(); | |
1275 | int ret = edid_from_file(input, stderr); | |
1276 | return ret ? ret : state.parse_edid(); | |
1277 | } | |
1278 | #endif |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | 2 | * Copyright 2006-2012 Red Hat, Inc. |
3 | * Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | * Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
4 | 4 | * |
5 | 5 | * Author: Adam Jackson <ajax@nwnk.net> |
6 | 6 | * Maintainer: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
11 | 11 | |
12 | 12 | #include <string> |
13 | 13 | #include <vector> |
14 | #include <string.h> | |
14 | 15 | |
15 | 16 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) |
16 | 17 | #define min(a, b) ((a) < (b) ? (a) : (b)) |
18 | 19 | |
19 | 20 | #define EDID_PAGE_SIZE 128U |
20 | 21 | #define EDID_MAX_BLOCKS 256U |
22 | ||
23 | #define RB_FLAG (1U << 7) | |
21 | 24 | |
22 | 25 | // Video Timings |
23 | 26 | // If interlaced is true, then the vertical blanking |
30 | 33 | unsigned hact, vact; |
31 | 34 | unsigned hratio, vratio; |
32 | 35 | unsigned pixclk_khz; |
33 | unsigned rb; // 1 if CVT with reduced blanking, 2 if CVT with reduced blanking v2 | |
36 | // 0: no reduced blanking | |
37 | // 1: reduced blanking version 1 | |
38 | // 2: reduced blanking version 2 | |
39 | // 3: reduced blanking version 3 with a horizontal blank of 80 | |
40 | // 3 | RB_FLAG: reduced blanking version 3 with a horizontal blank of 160 | |
41 | unsigned rb; | |
34 | 42 | bool interlaced; |
43 | // The horizontal frontporch may be negative in GTF calculations, | |
44 | // so use int instead of unsigned for hfp. Example: 292x176@76. | |
45 | int hfp; | |
46 | unsigned hsync; | |
35 | 47 | // The backporch may be negative in buggy detailed timings. |
36 | 48 | // So use int instead of unsigned for hbp and vbp. |
37 | unsigned hfp, hsync; | |
38 | 49 | int hbp; |
39 | 50 | bool pos_pol_hsync; |
51 | // For interlaced formats the vertical front porch of the Even Field | |
52 | // is actually a half-line longer. | |
40 | 53 | unsigned vfp, vsync; |
54 | // For interlaced formats the vertical back porch of the Odd Field | |
55 | // is actually a half-line longer. | |
41 | 56 | int vbp; |
42 | 57 | bool pos_pol_vsync; |
43 | 58 | unsigned hborder, vborder; |
44 | 59 | bool even_vtotal; // special for VIC 39 |
45 | 60 | bool no_pol_vsync; // digital composite signals have no vsync polarity |
46 | 61 | unsigned hsize_mm, vsize_mm; |
62 | bool ycbcr420; // YCbCr 4:2:0 encoding | |
47 | 63 | }; |
64 | ||
65 | struct timings_ext { | |
66 | timings_ext() | |
67 | { | |
68 | memset(&t, 0, sizeof(t)); | |
69 | } | |
70 | timings_ext(unsigned svr, const std::string &_type) | |
71 | { | |
72 | memset(&t, 0, sizeof(t)); | |
73 | t.hact = svr; | |
74 | type = _type; | |
75 | } | |
76 | timings_ext(const timings &_t, const std::string &_type, const std::string &_flags) | |
77 | { | |
78 | t = _t; | |
79 | type = _type; | |
80 | flags = _flags; | |
81 | } | |
82 | ||
83 | bool is_valid() const { return t.hact; } | |
84 | bool has_svr() const { return t.hact && !t.vact; } | |
85 | unsigned svr() const { return t.hact; } | |
86 | timings t; | |
87 | std::string type; | |
88 | std::string flags; | |
89 | }; | |
90 | ||
91 | typedef std::vector<timings_ext> vec_timings_ext; | |
48 | 92 | |
49 | 93 | struct edid_state { |
50 | 94 | edid_state() |
51 | 95 | { |
96 | // Global state | |
97 | edid_size = num_blocks = block_nr = 0; | |
98 | max_hor_freq_hz = max_vert_freq_hz = max_pixclk_khz = 0; | |
52 | 99 | min_hor_freq_hz = 0xffffff; |
53 | 100 | min_vert_freq_hz = 0xffffffff; |
101 | warnings = failures = 0; | |
102 | has_cta = has_dispid = false; | |
103 | hide_serial_numbers = false; | |
104 | ||
105 | // Base block state | |
106 | base.edid_minor = 0; | |
107 | base.has_name_descriptor = base.has_display_range_descriptor = | |
108 | base.has_serial_number = base.has_serial_string = | |
109 | base.supports_continuous_freq = base.supports_gtf = | |
110 | base.supports_cvt = base.uses_gtf = base.uses_cvt = | |
111 | base.has_640x480p60_est_timing = base.has_spwg = | |
112 | base.seen_non_detailed_descriptor = | |
113 | base.preferred_is_also_native = false; | |
114 | base.detailed_block_cnt = base.dtd_cnt = 0; | |
115 | ||
116 | base.min_display_hor_freq_hz = base.max_display_hor_freq_hz = | |
117 | base.min_display_vert_freq_hz = base.max_display_vert_freq_hz = | |
118 | base.max_display_pixclk_khz = base.max_display_width_mm = | |
119 | base.max_display_height_mm = 0; | |
120 | ||
121 | // CTA-861 block state | |
122 | cta.has_vic_1 = cta.first_svd_might_be_preferred = | |
123 | cta.has_hdmi = cta.has_vcdb = cta.has_vfpdb = false; | |
124 | cta.last_block_was_hdmi_vsdb = cta.have_hf_vsdb = cta.have_hf_scdb = false; | |
125 | cta.first_block = cta.first_svd = true; | |
126 | cta.supported_hdmi_vic_codes = cta.supported_hdmi_vic_vsb_codes = 0; | |
127 | memset(cta.vics, 0, sizeof(cta.vics)); | |
128 | memset(cta.preparsed_has_vic, 0, sizeof(cta.preparsed_has_vic)); | |
129 | cta.preparsed_phys_addr = 0xffff; | |
130 | cta.preparse_total_dtds = 0; | |
131 | cta.preparse_total_vtdbs = 0; | |
132 | cta.preparse_has_t8vtdb = false; | |
133 | ||
134 | // DisplayID block state | |
135 | dispid.version = 0; | |
136 | dispid.preparse_color_ids = dispid.preparse_xfer_ids = 0; | |
137 | dispid.preparse_displayid_blocks = 0; | |
138 | dispid.is_base_block = true; | |
139 | dispid.is_display = dispid.has_product_identification = | |
140 | dispid.has_display_parameters = dispid.has_type_1_7 = | |
141 | dispid.has_display_interface_features = false; | |
142 | ||
143 | // Block Map block state | |
144 | block_map.saw_block_1 = false; | |
145 | block_map.saw_block_128 = false; | |
54 | 146 | } |
55 | ||
56 | // Base block state | |
57 | unsigned edid_minor; | |
58 | bool has_name_descriptor; | |
59 | bool has_display_range_descriptor; | |
60 | bool has_serial_number; | |
61 | bool has_serial_string; | |
62 | bool supports_continuous_freq; | |
63 | bool supports_gtf; | |
64 | bool supports_cvt; | |
65 | bool uses_gtf; | |
66 | bool uses_cvt; | |
67 | bool has_spwg; | |
68 | int timing_descr_cnt; | |
69 | ||
70 | unsigned min_display_hor_freq_hz; | |
71 | unsigned max_display_hor_freq_hz; | |
72 | unsigned min_display_vert_freq_hz; | |
73 | unsigned max_display_vert_freq_hz; | |
74 | unsigned max_display_pixclk_khz; | |
75 | unsigned max_display_width_mm; | |
76 | unsigned max_display_height_mm; | |
77 | ||
78 | // CTA-861 block state | |
79 | bool has_640x480p60_est_timing; | |
80 | bool has_cta861_vic_1; | |
81 | unsigned supported_hdmi_vic_codes; | |
82 | unsigned supported_hdmi_vic_vsb_codes; | |
83 | bool preparsed_has_vic[2][256]; | |
84 | std::vector<unsigned char> preparsed_svds[2]; | |
85 | ||
86 | // DisplayID block state | |
87 | unsigned short preparse_color_ids; | |
88 | unsigned short preparse_xfer_ids; | |
89 | 147 | |
90 | 148 | // Global state |
91 | 149 | unsigned edid_size; |
93 | 151 | unsigned block_nr; |
94 | 152 | std::string block; |
95 | 153 | std::string data_block; |
154 | bool has_cta; | |
155 | bool has_dispid; | |
156 | bool hide_serial_numbers; | |
96 | 157 | |
97 | 158 | unsigned min_hor_freq_hz; |
98 | 159 | unsigned max_hor_freq_hz; |
99 | unsigned min_vert_freq_hz; | |
100 | unsigned max_vert_freq_hz; | |
160 | double min_vert_freq_hz; | |
161 | double max_vert_freq_hz; | |
101 | 162 | unsigned max_pixclk_khz; |
102 | 163 | |
103 | 164 | unsigned warnings; |
104 | 165 | unsigned failures; |
105 | 166 | |
106 | void print_timings(const char *prefix, const struct timings *t, | |
107 | const char *suffix); | |
108 | bool print_detailed_timings(const char *prefix, const struct timings &t, const char *flags); | |
167 | // Base block state | |
168 | struct { | |
169 | unsigned edid_minor; | |
170 | bool has_name_descriptor; | |
171 | bool has_display_range_descriptor; | |
172 | bool has_serial_number; | |
173 | bool has_serial_string; | |
174 | bool supports_continuous_freq; | |
175 | bool supports_gtf; | |
176 | bool supports_cvt; | |
177 | bool uses_gtf; | |
178 | bool uses_cvt; | |
179 | bool has_spwg; | |
180 | unsigned detailed_block_cnt; | |
181 | unsigned dtd_cnt; | |
182 | bool seen_non_detailed_descriptor; | |
183 | bool has_640x480p60_est_timing; | |
184 | bool preferred_is_also_native; | |
185 | timings_ext preferred_timing; | |
186 | ||
187 | unsigned min_display_hor_freq_hz; | |
188 | unsigned max_display_hor_freq_hz; | |
189 | unsigned min_display_vert_freq_hz; | |
190 | unsigned max_display_vert_freq_hz; | |
191 | unsigned max_display_pixclk_khz; | |
192 | unsigned max_display_width_mm; | |
193 | unsigned max_display_height_mm; | |
194 | } base; | |
195 | ||
196 | // CTA-861 block state | |
197 | struct { | |
198 | unsigned preparse_total_dtds; | |
199 | vec_timings_ext vec_dtds; | |
200 | unsigned preparse_total_vtdbs; | |
201 | vec_timings_ext vec_vtdbs; | |
202 | vec_timings_ext preferred_timings; | |
203 | bool preparse_has_t8vtdb; | |
204 | timings_ext t8vtdb; | |
205 | vec_timings_ext native_timings; | |
206 | bool has_vic_1; | |
207 | bool first_svd_might_be_preferred; | |
208 | unsigned char byte3; | |
209 | bool has_hdmi; | |
210 | bool has_vcdb; | |
211 | bool has_vfpdb; | |
212 | unsigned short preparsed_phys_addr; | |
213 | bool last_block_was_hdmi_vsdb; | |
214 | bool have_hf_vsdb, have_hf_scdb; | |
215 | bool first_block; | |
216 | bool first_svd; | |
217 | unsigned supported_hdmi_vic_codes; | |
218 | unsigned supported_hdmi_vic_vsb_codes; | |
219 | unsigned short vics[256][2]; | |
220 | bool preparsed_has_vic[2][256]; | |
221 | std::vector<unsigned char> preparsed_svds[2]; | |
222 | } cta; | |
223 | ||
224 | // DisplayID block state | |
225 | struct { | |
226 | unsigned char version; | |
227 | unsigned short preparse_color_ids; | |
228 | unsigned short preparse_xfer_ids; | |
229 | unsigned preparse_displayid_blocks; | |
230 | bool is_base_block; | |
231 | bool is_display; | |
232 | bool has_product_identification; | |
233 | bool has_display_parameters; | |
234 | bool has_type_1_7; | |
235 | bool has_display_interface_features; | |
236 | vec_timings_ext preferred_timings; | |
237 | } dispid; | |
238 | ||
239 | // Block Map block state | |
240 | struct { | |
241 | bool saw_block_1; | |
242 | bool saw_block_128; | |
243 | } block_map; | |
244 | ||
245 | std::string dtd_type(unsigned dtd); | |
246 | std::string dtd_type() { return dtd_type(base.dtd_cnt); } | |
247 | bool print_timings(const char *prefix, const struct timings *t, | |
248 | const char *type, const char *flags = "", | |
249 | bool detailed = false); | |
250 | bool print_timings(const char *prefix, const struct timings_ext &t, | |
251 | bool detailed = false) | |
252 | { | |
253 | return print_timings(prefix, &t.t, t.type.c_str(), t.flags.c_str(), detailed); | |
254 | }; | |
255 | bool match_timings(const timings &t1, const timings &t2); | |
109 | 256 | void edid_gtf_mode(unsigned refresh, struct timings &t); |
110 | 257 | void edid_cvt_mode(unsigned refresh, struct timings &t); |
258 | timings calc_cvt_mode(unsigned refresh, unsigned hact, unsigned vact, unsigned rb); | |
111 | 259 | void detailed_cvt_descriptor(const char *prefix, const unsigned char *x, bool first); |
112 | 260 | void print_standard_timing(const char *prefix, unsigned char b1, unsigned char b2, |
113 | 261 | bool gtf_only = false, unsigned vrefresh_offset = 60); |
114 | 262 | void detailed_display_range_limits(const unsigned char *x); |
115 | 263 | void detailed_epi(const unsigned char *x); |
116 | void detailed_timings(const char *prefix, const unsigned char *x); | |
264 | void detailed_timings(const char *prefix, const unsigned char *x, | |
265 | bool base_or_cta = true); | |
117 | 266 | void detailed_block(const unsigned char *x); |
118 | 267 | void parse_base_block(const unsigned char *x); |
119 | ||
120 | void print_vic_index(const char *prefix, unsigned idx, const char *suffix); | |
121 | void cta_svd(const unsigned char *x, unsigned n, int for_ycbcr420); | |
268 | void check_base_block(); | |
269 | ||
270 | void print_vic_index(const char *prefix, unsigned idx, const char *suffix, bool ycbcr420 = false); | |
271 | void cta_vcdb(const unsigned char *x, unsigned length); | |
272 | void cta_svd(const unsigned char *x, unsigned n, bool for_ycbcr420); | |
122 | 273 | void cta_y420cmdb(const unsigned char *x, unsigned length); |
123 | 274 | void cta_vfpdb(const unsigned char *x, unsigned length); |
124 | 275 | void cta_hdmi_block(const unsigned char *x, unsigned length); |
276 | void cta_displayid_type_7(const unsigned char *x, unsigned length); | |
277 | void cta_displayid_type_8(const unsigned char *x, unsigned length); | |
278 | void cta_displayid_type_10(const unsigned char *x, unsigned length); | |
279 | void cta_ext_block(const unsigned char *x, unsigned length); | |
125 | 280 | void cta_block(const unsigned char *x); |
126 | 281 | void preparse_cta_block(const unsigned char *x); |
127 | 282 | void parse_cta_block(const unsigned char *x); |
283 | void cta_resolve_svr(vec_timings_ext::iterator iter); | |
284 | void cta_resolve_svrs(); | |
285 | void check_cta_blocks(); | |
128 | 286 | |
129 | 287 | void parse_digital_interface(const unsigned char *x); |
130 | 288 | void parse_display_device(const unsigned char *x); |
132 | 290 | void parse_display_xfer(const unsigned char *x); |
133 | 291 | void parse_di_ext_block(const unsigned char *x); |
134 | 292 | |
293 | void check_displayid_datablock_revision(unsigned char hdr, | |
294 | unsigned char valid_flags = 0, | |
295 | unsigned char rev = 0); | |
296 | void parse_displayid_product_id(const unsigned char *x); | |
297 | std::string product_type(unsigned char x, bool heading); | |
298 | void parse_displayid_interface_features(const unsigned char *x); | |
299 | void parse_displayid_parameters(const unsigned char *x); | |
300 | void parse_displayid_parameters_v2(const unsigned char *x); | |
301 | void parse_displayid_display_intf(const unsigned char *x); | |
135 | 302 | void parse_displayid_color_characteristics(const unsigned char *x); |
136 | 303 | void parse_displayid_transfer_characteristics(const unsigned char *x); |
137 | 304 | void parse_displayid_stereo_display_intf(const unsigned char *x); |
138 | void parse_displayid_type_1_7_timing(const unsigned char *x, bool type7); | |
305 | void parse_displayid_type_1_7_timing(const unsigned char *x, | |
306 | bool type7, unsigned block_rev, bool is_cta = false); | |
139 | 307 | void parse_displayid_type_2_timing(const unsigned char *x); |
140 | 308 | void parse_displayid_type_3_timing(const unsigned char *x); |
141 | void parse_displayid_type_4_8_timing(unsigned char type, unsigned short id); | |
309 | void parse_displayid_type_4_8_timing(unsigned char type, unsigned short id, bool is_cta = false); | |
310 | void parse_displayid_video_timing_range_limits(const unsigned char *x); | |
311 | void parse_displayid_string(const unsigned char *x); | |
312 | void parse_displayid_display_device(const unsigned char *x); | |
313 | void parse_displayid_intf_power_sequencing(const unsigned char *x); | |
142 | 314 | void parse_displayid_type_5_timing(const unsigned char *x); |
315 | void parse_displayid_tiled_display_topology(const unsigned char *x, bool is_v2); | |
143 | 316 | void parse_displayid_type_6_timing(const unsigned char *x); |
144 | 317 | void parse_displayid_type_9_timing(const unsigned char *x); |
318 | void parse_displayid_dynamic_video_timings_range_limits(const unsigned char *x); | |
319 | void parse_displayid_ContainerID(const unsigned char *x); | |
320 | void parse_displayid_type_10_timing(const unsigned char *x, bool is_cta = false); | |
145 | 321 | void preparse_displayid_block(const unsigned char *x); |
146 | 322 | void parse_displayid_block(const unsigned char *x); |
323 | void parse_displayid_vesa(const unsigned char *x); | |
324 | void parse_displayid_cta_data_block(const unsigned char *x); | |
325 | void check_displayid_blocks(); | |
147 | 326 | |
148 | 327 | void parse_vtb_ext_block(const unsigned char *x); |
149 | 328 | |
329 | void parse_string_table(const unsigned char *x); | |
150 | 330 | void parse_ls_ext_block(const unsigned char *x); |
151 | 331 | |
152 | 332 | void parse_block_map(const unsigned char *x); |
156 | 336 | int parse_edid(); |
157 | 337 | }; |
158 | 338 | |
339 | static inline void add_str(std::string &s, const std::string &add) | |
340 | { | |
341 | if (s.empty()) | |
342 | s = add; | |
343 | else if (!add.empty()) | |
344 | s = s + ", " + add; | |
345 | } | |
346 | ||
159 | 347 | void msg(bool is_warn, const char *fmt, ...); |
160 | 348 | |
349 | #ifdef _WIN32 | |
350 | ||
351 | #define warn(fmt, ...) msg(true, fmt, __VA_ARGS__) | |
352 | #define warn_once(fmt, ...) \ | |
353 | do { \ | |
354 | static bool shown_warn; \ | |
355 | if (!shown_warn) { \ | |
356 | shown_warn = true; \ | |
357 | msg(true, fmt, __VA_ARGS__); \ | |
358 | } \ | |
359 | } while (0) | |
360 | #define fail(fmt, ...) msg(false, fmt, __VA_ARGS__) | |
361 | ||
362 | #else | |
363 | ||
161 | 364 | #define warn(fmt, args...) msg(true, fmt, ##args) |
365 | #define warn_once(fmt, args...) \ | |
366 | do { \ | |
367 | static bool shown_warn; \ | |
368 | if (!shown_warn) { \ | |
369 | shown_warn = true; \ | |
370 | msg(true, fmt, ##args); \ | |
371 | } \ | |
372 | } while (0) | |
162 | 373 | #define fail(fmt, args...) msg(false, fmt, ##args) |
374 | ||
375 | #endif | |
163 | 376 | |
164 | 377 | void do_checksum(const char *prefix, const unsigned char *x, size_t len); |
165 | 378 | std::string utohex(unsigned char x); |
379 | std::string ouitohex(unsigned oui); | |
166 | 380 | bool memchk(const unsigned char *x, unsigned len, unsigned char v = 0); |
167 | 381 | void hex_block(const char *prefix, const unsigned char *x, unsigned length, |
168 | 382 | bool show_ascii = true, unsigned step = 16); |
169 | 383 | std::string block_name(unsigned char block); |
170 | void print_timings(edid_state &state, const char *prefix, const struct timings *t, const char *suffix); | |
171 | 384 | void calc_ratio(struct timings *t); |
385 | const char *oui_name(unsigned oui, bool reverse = false); | |
172 | 386 | |
173 | 387 | const struct timings *find_dmt_id(unsigned char dmt_id); |
174 | 388 | const struct timings *find_vic_id(unsigned char vic); |
175 | 389 | const struct timings *find_hdmi_vic_id(unsigned char hdmi_vic); |
390 | unsigned char hdmi_vic_to_vic(unsigned char hdmi_vic); | |
176 | 391 | char *extract_string(const unsigned char *x, unsigned len); |
177 | 392 | |
178 | 393 | #endif |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | 2 | * Copyright 2006-2012 Red Hat, Inc. |
3 | * Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | * Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
4 | 4 | * |
5 | 5 | * Author: Adam Jackson <ajax@nwnk.net> |
6 | 6 | * Maintainer: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
8 | 8 | |
9 | 9 | #include <stdio.h> |
10 | 10 | #include <stdlib.h> |
11 | #include <string.h> | |
12 | 11 | #include <math.h> |
12 | #include <time.h> | |
13 | 13 | |
14 | 14 | #include "edid-decode.h" |
15 | 15 | |
23 | 23 | name[3] = 0; |
24 | 24 | |
25 | 25 | if (!isupper(name[0]) || !isupper(name[1]) || !isupper(name[2])) |
26 | fail("Manufacturer name field contains garbage\n"); | |
26 | fail("Manufacturer name field contains garbage.\n"); | |
27 | 27 | |
28 | 28 | return name; |
29 | 29 | } |
247 | 247 | static const struct { |
248 | 248 | unsigned dmt_id; |
249 | 249 | struct timings t; |
250 | const char *std_name; | |
250 | const char *type; | |
251 | 251 | } established_timings12[] = { |
252 | 252 | /* 0x23 bit 7 - 0 */ |
253 | 253 | { 0x00, { 720, 400, 9, 5, 28320, 0, false, |
341 | 341 | return NULL; |
342 | 342 | } |
343 | 343 | |
344 | static const struct timings *find_std_id(unsigned short std_id) | |
344 | static const struct timings *find_std_id(unsigned short std_id, unsigned char &dmt_id) | |
345 | 345 | { |
346 | 346 | unsigned i; |
347 | 347 | |
348 | 348 | for (i = 0; i < ARRAY_SIZE(dmt_timings); i++) |
349 | if (dmt_timings[i].std_id == std_id) | |
349 | if (dmt_timings[i].std_id == std_id) { | |
350 | dmt_id = dmt_timings[i].dmt_id; | |
350 | 351 | return &dmt_timings[i].t; |
352 | } | |
351 | 353 | return NULL; |
352 | 354 | } |
353 | 355 | |
515 | 517 | * [H FRONT PORCH (PIXELS)] = ([H BLANK (PIXELS)]/2)-[H SYNC (PIXELS)] |
516 | 518 | */ |
517 | 519 | t.hfp = (h_blank / 2.0) - t.hsync; |
518 | t.hbp = h_blank - t.hfp - t.hsync; | |
520 | /* 19. Find the number of pixels in the horizontal back porch period: | |
521 | * | |
522 | * [H BACK PORCH (PIXELS)] = [H FRONT PORCH (PIXELS)]+[H SYNC (PIXELS)] | |
523 | */ | |
524 | t.hbp = t.hfp + t.hsync; | |
519 | 525 | t.pos_pol_hsync = false; |
520 | 526 | t.pos_pol_vsync = true; |
521 | 527 | t.interlaced = false; |
522 | t.rb = false; | |
528 | t.rb = 0; | |
523 | 529 | } |
524 | 530 | |
525 | 531 | /* |
526 | 532 | * Copied from xserver/hw/xfree86/modes/xf86cvt.c |
527 | * | |
528 | * TODO: add support for reduced blanking v2 and interlacing | |
529 | 533 | */ |
530 | 534 | void edid_state::edid_cvt_mode(unsigned refresh, struct timings &t) |
531 | 535 | { |
568 | 572 | VSync = 7; |
569 | 573 | else /* Custom */ |
570 | 574 | VSync = 10; |
571 | t.vsync = VSync; | |
572 | 575 | |
573 | 576 | if (!t.rb) { /* simplified GTF calculation */ |
574 | 577 | /* 4) Minimum time of vertical sync + back porch interval (µs) |
636 | 639 | VSyncStart = VDisplayRnd + CVT_MIN_V_PORCH; |
637 | 640 | VSyncEnd = VSyncStart + VSync; |
638 | 641 | |
639 | /* 15/13. Find pixel clock frequency (kHz for xf86) */ | |
642 | /* 15/13. Find pixel clock frequency (kHz) */ | |
640 | 643 | Clock = ((double)HTotal / HPeriod) * 1000.0; |
641 | 644 | Clock -= Clock % CVT_CLOCK_STEP; |
642 | 645 | } |
648 | 651 | #define CVT_RB_H_SYNC 32.0 |
649 | 652 | |
650 | 653 | /* Fixed number of clocks for horizontal blanking */ |
651 | #define CVT_RB_H_BLANK 160.0 | |
654 | #define CVT_RB1_H_BLANK 160.0 // RB1 & RB3 with RB_FLAG set | |
655 | #define CVT_RB2_H_BLANK 80.0 // RB2 & RB3 with RB_FLAG cleared | |
652 | 656 | |
653 | 657 | /* Fixed number of lines for vertical front porch - default 3 */ |
654 | #define CVT_RB_VFPORCH 3 | |
658 | #define CVT_RB1_V_FPORCH 3 | |
659 | #define CVT_RB2_V_FPORCH 1 | |
660 | #define CVT_RB3_V_FIELD_RATE_PPM_ADJ 350.0 | |
661 | #define CVT_RB2_CLOCK_STEP 1 | |
655 | 662 | |
656 | 663 | int VBILines; |
664 | double h_blank = (t.rb & ~RB_FLAG) == 1 ? CVT_RB1_H_BLANK : CVT_RB2_H_BLANK; | |
665 | int v_fporch = t.rb == 1 ? CVT_RB1_V_FPORCH : CVT_RB2_V_FPORCH; | |
666 | unsigned clock_step = t.rb == 1 ? CVT_CLOCK_STEP : CVT_RB2_CLOCK_STEP; | |
667 | ||
668 | if (t.rb == 3) | |
669 | VFieldRate += VFieldRate * (CVT_RB3_V_FIELD_RATE_PPM_ADJ / 1000000.0); | |
657 | 670 | |
658 | 671 | /* 8. Estimate Horizontal period. */ |
659 | 672 | HPeriod = ((double) (1000000.0 / VFieldRate - CVT_RB_MIN_VBLANK)) / VDisplayRnd; |
663 | 676 | VBILines++; |
664 | 677 | |
665 | 678 | /* 10. Check if vertical blanking is sufficient */ |
666 | if (VBILines < (CVT_RB_VFPORCH + VSync + CVT_MIN_V_BPORCH)) | |
667 | VBILines = CVT_RB_VFPORCH + VSync + CVT_MIN_V_BPORCH; | |
679 | if (VBILines < (v_fporch + VSync + CVT_MIN_V_BPORCH)) | |
680 | VBILines = v_fporch + VSync + CVT_MIN_V_BPORCH; | |
668 | 681 | |
669 | 682 | /* 11. Find total number of lines in vertical field */ |
670 | 683 | VTotal = VDisplayRnd + VBILines; |
671 | 684 | |
672 | 685 | /* 12. Find total number of pixels in a line */ |
673 | HTotal = HDisplay + CVT_RB_H_BLANK; | |
686 | HTotal = HDisplay + h_blank; | |
674 | 687 | |
675 | 688 | /* Fill in HSync values */ |
676 | HSyncEnd = HDisplay + CVT_RB_H_BLANK / 2; | |
689 | HSyncEnd = HDisplay + h_blank / 2; | |
677 | 690 | HSyncStart = HSyncEnd - CVT_RB_H_SYNC; |
678 | 691 | |
679 | 692 | /* Fill in VSync values */ |
680 | VSyncStart = VDisplay + CVT_RB_VFPORCH; | |
693 | VSyncStart = VDisplay + v_fporch; | |
681 | 694 | VSyncEnd = VSyncStart + VSync; |
682 | 695 | |
683 | /* 15/13. Find pixel clock frequency (kHz for xf86) */ | |
684 | Clock = ((double)VFieldRate * VTotal * HTotal) / 1000.0; | |
685 | Clock -= Clock % CVT_CLOCK_STEP; | |
696 | /* 15/13. Find pixel clock frequency (kHz) */ | |
697 | double clk_khz = ((double)VFieldRate * VTotal * HTotal) / 1000.0; | |
698 | if (t.rb < 3) | |
699 | Clock = clock_step * floor(clk_khz / clock_step); | |
700 | else | |
701 | Clock = clock_step * ceil(clk_khz / clock_step); | |
686 | 702 | } |
687 | 703 | t.pixclk_khz = Clock; |
688 | 704 | |
697 | 713 | t.interlaced = false; |
698 | 714 | } |
699 | 715 | |
716 | timings edid_state::calc_cvt_mode(unsigned refresh, unsigned hact, unsigned vact, unsigned rb) | |
717 | { | |
718 | timings t = {}; | |
719 | ||
720 | t.hact = hact; | |
721 | t.vact = vact; | |
722 | t.rb = rb; | |
723 | calc_ratio(&t); | |
724 | edid_cvt_mode(refresh, t); | |
725 | return t; | |
726 | } | |
727 | ||
700 | 728 | void edid_state::detailed_cvt_descriptor(const char *prefix, const unsigned char *x, bool first) |
701 | 729 | { |
702 | 730 | static const unsigned char empty[3] = { 0, 0, 0 }; |
706 | 734 | if (!first && !memcmp(x, empty, 3)) |
707 | 735 | return; |
708 | 736 | |
709 | uses_cvt = true; | |
737 | base.uses_cvt = true; | |
710 | 738 | cvt_t.vact = x[0]; |
711 | 739 | if (!cvt_t.vact) |
712 | fail("CVT byte 0 is 0, which is a reserved value\n"); | |
740 | fail("CVT byte 0 is 0, which is a reserved value.\n"); | |
713 | 741 | cvt_t.vact |= (x[1] & 0xf0) << 4; |
714 | 742 | cvt_t.vact++; |
715 | 743 | cvt_t.vact *= 2; |
736 | 764 | cvt_t.hact = 8 * (((cvt_t.vact * cvt_t.hratio) / cvt_t.vratio) / 8); |
737 | 765 | |
738 | 766 | if (x[1] & 0x03) |
739 | fail("Reserved bits of CVT byte 1 are non-zero\n"); | |
767 | fail("Reserved bits of CVT byte 1 are non-zero.\n"); | |
740 | 768 | if (x[2] & 0x80) |
741 | fail("Reserved bit of CVT byte 2 is non-zero\n"); | |
769 | fail("Reserved bit of CVT byte 2 is non-zero.\n"); | |
742 | 770 | if (!(x[2] & 0x1f)) |
743 | fail("CVT byte 2 does not support any vertical rates\n"); | |
771 | fail("CVT byte 2 does not support any vertical rates.\n"); | |
744 | 772 | preferred = (x[2] & 0x60) >> 5; |
745 | 773 | if (preferred == 1 && (x[2] & 0x01)) |
746 | 774 | preferred = 4; |
747 | 775 | if (!(x[2] & (1 << (4 - preferred)))) |
748 | fail("The preferred CVT Vertical Rate is not supported\n"); | |
749 | ||
750 | static const char *s_pref = "CVT, preferred vertical rate"; | |
776 | fail("The preferred CVT Vertical Rate is not supported.\n"); | |
777 | ||
778 | static const char *s_pref = "preferred vertical rate"; | |
751 | 779 | |
752 | 780 | if (x[2] & 0x10) { |
753 | 781 | edid_cvt_mode(50, cvt_t); |
754 | print_timings(prefix, &cvt_t, preferred == 0 ? s_pref : "CVT"); | |
782 | print_timings(prefix, &cvt_t, "CVT", preferred == 0 ? s_pref : ""); | |
755 | 783 | } |
756 | 784 | if (x[2] & 0x08) { |
757 | 785 | edid_cvt_mode(60, cvt_t); |
758 | print_timings(prefix, &cvt_t, preferred == 1 ? s_pref : "CVT"); | |
786 | print_timings(prefix, &cvt_t, "CVT", preferred == 1 ? s_pref : ""); | |
759 | 787 | } |
760 | 788 | if (x[2] & 0x04) { |
761 | 789 | edid_cvt_mode(75, cvt_t); |
762 | print_timings(prefix, &cvt_t, preferred == 2 ? s_pref : "CVT"); | |
790 | print_timings(prefix, &cvt_t, "CVT", preferred == 2 ? s_pref : ""); | |
763 | 791 | } |
764 | 792 | if (x[2] & 0x02) { |
765 | 793 | edid_cvt_mode(85, cvt_t); |
766 | print_timings(prefix, &cvt_t, preferred == 3 ? s_pref : "CVT"); | |
794 | print_timings(prefix, &cvt_t, "CVT", preferred == 3 ? s_pref : ""); | |
767 | 795 | } |
768 | 796 | if (x[2] & 0x01) { |
769 | cvt_t.rb = true; | |
797 | cvt_t.rb = 1; | |
770 | 798 | edid_cvt_mode(60, cvt_t); |
771 | print_timings(prefix, &cvt_t, preferred == 4 ? s_pref : "CVT"); | |
799 | print_timings(prefix, &cvt_t, "CVT", preferred == 4 ? s_pref : ""); | |
772 | 800 | } |
773 | 801 | } |
774 | 802 | |
788 | 816 | if (x[i] == 0x0a) { |
789 | 817 | seen_newline = 1; |
790 | 818 | if (!i) |
791 | fail("Empty string\n"); | |
819 | fail("Empty string.\n"); | |
792 | 820 | else if (s[i - 1] == 0x20) |
793 | fail("One or more trailing spaces\n"); | |
821 | fail("One or more trailing spaces.\n"); | |
794 | 822 | } else if (x[i] == 0x20) { |
795 | 823 | s[i] = x[i]; |
796 | 824 | } else { |
797 | fail("Non-printable character\n"); | |
825 | fail("Non-printable character.\n"); | |
798 | 826 | return s; |
799 | 827 | } |
800 | 828 | } else if (x[i] != 0x20) { |
801 | fail("Non-space after newline\n"); | |
829 | fail("Non-space after newline.\n"); | |
802 | 830 | return s; |
803 | 831 | } |
804 | 832 | } |
805 | 833 | /* Does the string end with a space? */ |
806 | 834 | if (!seen_newline && s[len - 1] == 0x20) |
807 | fail("One or more trailing spaces\n"); | |
835 | fail("One or more trailing spaces.\n"); | |
808 | 836 | |
809 | 837 | return s; |
810 | 838 | } |
816 | 844 | struct timings formula = {}; |
817 | 845 | unsigned hratio, vratio; |
818 | 846 | unsigned hact, vact, refresh; |
847 | unsigned char dmt_id = 0; | |
819 | 848 | |
820 | 849 | if (b1 <= 0x01) { |
821 | 850 | if (b1 != 0x01 || b2 != 0x01) |
822 | fail("Use 0x0101 as the invalid Standard Timings code, not 0x%02x%02x\n", b1, b2); | |
851 | fail("Use 0x0101 as the invalid Standard Timings code, not 0x%02x%02x.\n", b1, b2); | |
823 | 852 | return; |
824 | 853 | } |
825 | 854 | |
826 | if (b1 == 0) { | |
827 | fail("Non-conformant standard timing (0 horiz)\n"); | |
828 | return; | |
829 | } | |
830 | ||
831 | t = find_std_id((b1 << 8) | b2); | |
855 | t = find_std_id((b1 << 8) | b2, dmt_id); | |
832 | 856 | if (t) { |
833 | print_timings(prefix, t, "DMT"); | |
857 | char type[16]; | |
858 | sprintf(type, "DMT 0x%02x", dmt_id); | |
859 | print_timings(prefix, t, type); | |
834 | 860 | return; |
835 | 861 | } |
836 | 862 | hact = (b1 + 31) * 8; |
837 | 863 | switch ((b2 >> 6) & 0x3) { |
838 | 864 | case 0x00: |
839 | if (gtf_only || edid_minor >= 3) { | |
865 | if (gtf_only || base.edid_minor >= 3) { | |
840 | 866 | hratio = 16; |
841 | 867 | vratio = 10; |
842 | 868 | } else { |
866 | 892 | formula.hratio = hratio; |
867 | 893 | formula.vratio = vratio; |
868 | 894 | |
869 | if (!gtf_only && edid_minor >= 4) { | |
870 | uses_cvt = true; | |
895 | if (!gtf_only && base.edid_minor >= 4) { | |
896 | base.uses_cvt = true; | |
871 | 897 | edid_cvt_mode(refresh, formula); |
872 | print_timings(prefix, &formula, "EDID 1.4 source: CVT"); | |
898 | print_timings(prefix, &formula, "CVT ", "EDID 1.4 source"); | |
873 | 899 | /* |
874 | 900 | * A EDID 1.3 source will assume GTF, so both GTF and CVT |
875 | 901 | * have to be supported. |
876 | 902 | */ |
877 | uses_gtf = true; | |
903 | base.uses_gtf = true; | |
878 | 904 | edid_gtf_mode(refresh, formula); |
879 | print_timings(prefix, &formula, "EDID 1.3 source: GTF"); | |
880 | } else if (gtf_only || edid_minor >= 2) { | |
881 | uses_gtf = true; | |
905 | print_timings(prefix, &formula, "GTF ", "EDID 1.3 source"); | |
906 | } else if (gtf_only || base.edid_minor >= 2) { | |
907 | base.uses_gtf = true; | |
882 | 908 | edid_gtf_mode(refresh, formula); |
883 | print_timings(prefix, &formula, "GTF"); | |
909 | print_timings(prefix, &formula, "GTF "); | |
884 | 910 | } else { |
885 | printf("%s%5ux%-5u %3u.00 Hz %3u:%-3u\n", | |
911 | printf("%sUnknown : %5ux%-5u %3u.000 Hz %3u:%u\n", | |
886 | 912 | prefix, hact, vact, refresh, hratio, vratio); |
887 | 913 | min_vert_freq_hz = min(min_vert_freq_hz, refresh); |
888 | 914 | max_vert_freq_hz = max(max_vert_freq_hz, refresh); |
898 | 924 | std::string range_class; |
899 | 925 | |
900 | 926 | data_block = "Display Range Limits"; |
901 | printf("%s\n", data_block.c_str()); | |
902 | has_display_range_descriptor = 1; | |
903 | /* | |
904 | * XXX todo: implement feature flags, vtd blocks | |
905 | * XXX check: ranges are well-formed; block termination if no vtd | |
906 | */ | |
907 | if (edid_minor >= 4) { | |
927 | printf(" %s:\n", data_block.c_str()); | |
928 | base.has_display_range_descriptor = 1; | |
929 | ||
930 | if (base.edid_minor >= 4) { | |
908 | 931 | if (x[4] & 0x02) { |
909 | 932 | v_max_offset = 255; |
910 | 933 | if (x[4] & 0x01) { |
925 | 948 | switch (x[10]) { |
926 | 949 | case 0x00: /* default gtf */ |
927 | 950 | range_class = "GTF"; |
928 | if (edid_minor >= 4 && !supports_continuous_freq) | |
929 | fail("GTF can't be combined with non-continuous frequencies\n"); | |
930 | supports_gtf = true; | |
951 | if (base.edid_minor >= 4 && !base.supports_continuous_freq) | |
952 | fail("GTF can't be combined with non-continuous frequencies.\n"); | |
953 | base.supports_gtf = true; | |
931 | 954 | break; |
932 | 955 | case 0x01: /* range limits only */ |
933 | 956 | range_class = "Bare Limits"; |
934 | if (edid_minor < 4) | |
935 | fail("'%s' is not allowed for EDID < 1.4\n", range_class.c_str()); | |
957 | if (base.edid_minor < 4) | |
958 | fail("'%s' is not allowed for EDID < 1.4.\n", range_class.c_str()); | |
936 | 959 | break; |
937 | 960 | case 0x02: /* secondary gtf curve */ |
938 | 961 | range_class = "Secondary GTF"; |
939 | if (edid_minor >= 4 && !supports_continuous_freq) | |
940 | fail("GTF can't be combined with non-continuous frequencies\n"); | |
941 | supports_gtf = true; | |
962 | if (base.edid_minor >= 4 && !base.supports_continuous_freq) | |
963 | fail("GTF can't be combined with non-continuous frequencies.\n"); | |
964 | base.supports_gtf = true; | |
942 | 965 | has_sec_gtf = true; |
943 | 966 | break; |
944 | 967 | case 0x04: /* cvt */ |
945 | 968 | range_class = "CVT"; |
946 | 969 | is_cvt = 1; |
947 | if (edid_minor < 4) | |
948 | fail("'%s' is not allowed for EDID < 1.4\n", range_class.c_str()); | |
949 | else if (!supports_continuous_freq) | |
950 | fail("CVT can't be combined with non-continuous frequencies\n"); | |
951 | if (edid_minor >= 4) { | |
970 | if (base.edid_minor < 4) | |
971 | fail("'%s' is not allowed for EDID < 1.4.\n", range_class.c_str()); | |
972 | else if (!base.supports_continuous_freq) | |
973 | fail("CVT can't be combined with non-continuous frequencies.\n"); | |
974 | if (base.edid_minor >= 4) { | |
952 | 975 | /* GTF is implied if CVT is signaled */ |
953 | supports_gtf = true; | |
954 | supports_cvt = true; | |
976 | base.supports_gtf = true; | |
977 | base.supports_cvt = true; | |
955 | 978 | } |
956 | 979 | break; |
957 | 980 | default: /* invalid */ |
958 | fail("Unknown range class (0x%02x)\n", x[10]); | |
981 | fail("Unknown range class (0x%02x).\n", x[10]); | |
959 | 982 | range_class = std::string("Unknown (") + utohex(x[10]) + ")"; |
960 | 983 | break; |
961 | 984 | } |
962 | 985 | |
963 | 986 | if (x[5] + v_min_offset > x[6] + v_max_offset) |
964 | fail("Min vertical rate > max vertical rate\n"); | |
965 | min_display_vert_freq_hz = x[5] + v_min_offset; | |
966 | max_display_vert_freq_hz = x[6] + v_max_offset; | |
987 | fail("Min vertical rate > max vertical rate.\n"); | |
988 | base.min_display_vert_freq_hz = x[5] + v_min_offset; | |
989 | base.max_display_vert_freq_hz = x[6] + v_max_offset; | |
967 | 990 | if (x[7] + h_min_offset > x[8] + h_max_offset) |
968 | fail("Min horizontal freq > max horizontal freq\n"); | |
969 | min_display_hor_freq_hz = (x[7] + h_min_offset) * 1000; | |
970 | max_display_hor_freq_hz = (x[8] + h_max_offset) * 1000; | |
971 | printf(" Monitor ranges (%s): %d-%d Hz V, %d-%d kHz H", | |
991 | fail("Min horizontal freq > max horizontal freq.\n"); | |
992 | base.min_display_hor_freq_hz = (x[7] + h_min_offset) * 1000; | |
993 | base.max_display_hor_freq_hz = (x[8] + h_max_offset) * 1000; | |
994 | printf(" Monitor ranges (%s): %d-%d Hz V, %d-%d kHz H", | |
972 | 995 | range_class.c_str(), |
973 | 996 | x[5] + v_min_offset, x[6] + v_max_offset, |
974 | 997 | x[7] + h_min_offset, x[8] + h_max_offset); |
998 | ||
999 | // For EDID 1.3 the horizontal frequency maxes out at 255 kHz. | |
1000 | // So to avoid false range-check warnings due to this limitation, | |
1001 | // just double the max_display_hor_freq_hz in this case. | |
1002 | if (base.edid_minor < 4 && x[8] == 0xff) | |
1003 | base.max_display_hor_freq_hz *= 2; | |
1004 | ||
1005 | // For EDID 1.3 the vertical frequency maxes out at 255 Hz. | |
1006 | // So to avoid false range-check warnings due to this limitation, | |
1007 | // just double the max_display_vert_freq_hz in this case. | |
1008 | if (base.edid_minor < 4 && x[6] == 0xff) | |
1009 | base.max_display_vert_freq_hz *= 2; | |
1010 | ||
975 | 1011 | if (x[9]) { |
976 | max_display_pixclk_khz = x[9] * 10000; | |
1012 | base.max_display_pixclk_khz = x[9] * 10000; | |
977 | 1013 | printf(", max dotclock %d MHz\n", x[9] * 10); |
978 | 1014 | } else { |
979 | if (edid_minor >= 4) | |
980 | fail("EDID 1.4 block does not set max dotclock\n"); | |
1015 | if (base.edid_minor >= 4) | |
1016 | fail("EDID 1.4 block does not set max dotclock.\n"); | |
981 | 1017 | printf("\n"); |
982 | 1018 | } |
983 | 1019 | |
984 | 1020 | if (has_sec_gtf) { |
985 | 1021 | if (x[11]) |
986 | fail("Byte 11 is 0x%02x instead of 0x00\n", x[11]); | |
987 | printf(" GTF Secondary Curve Block\n"); | |
988 | printf(" Start frequency: %u kHz\n", x[12] * 2); | |
989 | printf(" C: %f\n", x[13] / 2.0); | |
1022 | fail("Byte 11 is 0x%02x instead of 0x00.\n", x[11]); | |
1023 | printf(" GTF Secondary Curve Block:\n"); | |
1024 | printf(" Start frequency: %u kHz\n", x[12] * 2); | |
1025 | printf(" C: %f\n", x[13] / 2.0); | |
990 | 1026 | if (x[13] > 127) |
991 | fail("Byte 13 is > 127\n"); | |
992 | printf(" M: %u\n", (x[15] << 8) | x[14]); | |
993 | printf(" K: %u\n", x[16]); | |
994 | printf(" J: %f\n", x[17] / 2.0); | |
1027 | fail("Byte 13 is > 127.\n"); | |
1028 | printf(" M: %u\n", (x[15] << 8) | x[14]); | |
1029 | printf(" K: %u\n", x[16]); | |
1030 | printf(" J: %f\n", x[17] / 2.0); | |
995 | 1031 | if (x[17] > 127) |
996 | fail("Byte 17 is > 127\n"); | |
1032 | fail("Byte 17 is > 127.\n"); | |
997 | 1033 | } else if (is_cvt) { |
998 | 1034 | int max_h_pixels = 0; |
999 | 1035 | |
1000 | printf(" CVT version %d.%d\n", (x[11] & 0xf0) >> 4, x[11] & 0x0f); | |
1036 | printf(" CVT version %d.%d\n", (x[11] & 0xf0) >> 4, x[11] & 0x0f); | |
1001 | 1037 | |
1002 | 1038 | if (x[12] & 0xfc) { |
1003 | 1039 | unsigned raw_offset = (x[12] & 0xfc) >> 2; |
1004 | 1040 | |
1005 | printf(" Real max dotclock: %.2f MHz\n", | |
1041 | printf(" Real max dotclock: %.2f MHz\n", | |
1006 | 1042 | (x[9] * 10) - (raw_offset * 0.25)); |
1007 | 1043 | if (raw_offset >= 40) |
1008 | warn("CVT block corrects dotclock by more than 9.75 MHz\n"); | |
1044 | warn("CVT block corrects dotclock by more than 9.75 MHz.\n"); | |
1009 | 1045 | } |
1010 | 1046 | |
1011 | 1047 | max_h_pixels = x[12] & 0x03; |
1013 | 1049 | max_h_pixels |= x[13]; |
1014 | 1050 | max_h_pixels *= 8; |
1015 | 1051 | if (max_h_pixels) |
1016 | printf(" Max active pixels per line: %d\n", max_h_pixels); | |
1017 | ||
1018 | printf(" Supported aspect ratios: %s %s %s %s %s\n", | |
1019 | x[14] & 0x80 ? "4:3" : "", | |
1020 | x[14] & 0x40 ? "16:9" : "", | |
1021 | x[14] & 0x20 ? "16:10" : "", | |
1022 | x[14] & 0x10 ? "5:4" : "", | |
1023 | x[14] & 0x08 ? "15:9" : ""); | |
1052 | printf(" Max active pixels per line: %d\n", max_h_pixels); | |
1053 | ||
1054 | printf(" Supported aspect ratios:%s%s%s%s%s\n", | |
1055 | x[14] & 0x80 ? " 4:3" : "", | |
1056 | x[14] & 0x40 ? " 16:9" : "", | |
1057 | x[14] & 0x20 ? " 16:10" : "", | |
1058 | x[14] & 0x10 ? " 5:4" : "", | |
1059 | x[14] & 0x08 ? " 15:9" : ""); | |
1024 | 1060 | if (x[14] & 0x07) |
1025 | fail("Reserved bits of byte 14 are non-zero\n"); | |
1026 | ||
1027 | printf(" Preferred aspect ratio: "); | |
1061 | fail("Reserved bits of byte 14 are non-zero.\n"); | |
1062 | ||
1063 | printf(" Preferred aspect ratio: "); | |
1028 | 1064 | switch ((x[15] & 0xe0) >> 5) { |
1029 | 1065 | case 0x00: |
1030 | 1066 | printf("4:3"); |
1043 | 1079 | break; |
1044 | 1080 | default: |
1045 | 1081 | printf("Unknown (0x%02x)", (x[15] & 0xe0) >> 5); |
1046 | fail("Invalid preferred aspect ratio 0x%02x\n", | |
1082 | fail("Invalid preferred aspect ratio 0x%02x.\n", | |
1047 | 1083 | (x[15] & 0xe0) >> 5); |
1048 | 1084 | break; |
1049 | 1085 | } |
1050 | 1086 | printf("\n"); |
1051 | 1087 | |
1052 | 1088 | if (x[15] & 0x08) |
1053 | printf(" Supports CVT standard blanking\n"); | |
1089 | printf(" Supports CVT standard blanking\n"); | |
1054 | 1090 | if (x[15] & 0x10) |
1055 | printf(" Supports CVT reduced blanking\n"); | |
1091 | printf(" Supports CVT reduced blanking\n"); | |
1056 | 1092 | |
1057 | 1093 | if (x[15] & 0x07) |
1058 | fail("Reserved bits of byte 15 are non-zero\n"); | |
1094 | fail("Reserved bits of byte 15 are non-zero.\n"); | |
1059 | 1095 | |
1060 | 1096 | if (x[16] & 0xf0) { |
1061 | printf(" Supported display scaling:\n"); | |
1097 | printf(" Supported display scaling:\n"); | |
1062 | 1098 | if (x[16] & 0x80) |
1063 | printf(" Horizontal shrink\n"); | |
1099 | printf(" Horizontal shrink\n"); | |
1064 | 1100 | if (x[16] & 0x40) |
1065 | printf(" Horizontal stretch\n"); | |
1101 | printf(" Horizontal stretch\n"); | |
1066 | 1102 | if (x[16] & 0x20) |
1067 | printf(" Vertical shrink\n"); | |
1103 | printf(" Vertical shrink\n"); | |
1068 | 1104 | if (x[16] & 0x10) |
1069 | printf(" Vertical stretch\n"); | |
1105 | printf(" Vertical stretch\n"); | |
1070 | 1106 | } |
1071 | 1107 | |
1072 | 1108 | if (x[16] & 0x0f) |
1073 | fail("Reserved bits of byte 16 are non-zero\n"); | |
1109 | fail("Reserved bits of byte 16 are non-zero.\n"); | |
1074 | 1110 | |
1075 | 1111 | if (x[17]) |
1076 | printf(" Preferred vertical refresh: %d Hz\n", x[17]); | |
1112 | printf(" Preferred vertical refresh: %d Hz\n", x[17]); | |
1077 | 1113 | else |
1078 | warn("CVT block does not set preferred refresh rate\n"); | |
1114 | warn("CVT block does not set preferred refresh rate.\n"); | |
1079 | 1115 | } else { |
1080 | 1116 | if (x[11] != 0x0a) |
1081 | fail("Byte 11 is 0x%02x instead of 0x0a\n", x[11]); | |
1117 | fail("Byte 11 is 0x%02x instead of 0x0a.\n", x[11]); | |
1082 | 1118 | for (unsigned i = 12; i <= 17; i++) { |
1083 | 1119 | if (x[i] != 0x20) { |
1084 | fail("Byte %u is 0x%02x instead of 0x20\n", i, x[i]); | |
1120 | fail("Bytes 12-17 must be 0x20.\n"); | |
1085 | 1121 | break; |
1086 | 1122 | } |
1087 | 1123 | } |
1091 | 1127 | void edid_state::detailed_epi(const unsigned char *x) |
1092 | 1128 | { |
1093 | 1129 | data_block = "EPI Descriptor"; |
1094 | printf("%s\n", data_block.c_str()); | |
1130 | printf(" %s:\n", data_block.c_str()); | |
1095 | 1131 | |
1096 | 1132 | unsigned v = x[5] & 0x07; |
1097 | 1133 | |
1098 | printf(" Bits per pixel: %u\n", 18 + v * 6); | |
1134 | printf(" Bits per pixel: %u\n", 18 + v * 6); | |
1099 | 1135 | if (v > 2) |
1100 | fail("Invalid bits per pixel\n"); | |
1136 | fail("Invalid bits per pixel.\n"); | |
1101 | 1137 | v = (x[5] & 0x18) >> 3; |
1102 | printf(" Pixels per clock: %u\n", 1 << v); | |
1138 | printf(" Pixels per clock: %u\n", 1 << v); | |
1103 | 1139 | if (v > 2) |
1104 | fail("Invalid pixels per clock\n"); | |
1140 | fail("Invalid pixels per clock.\n"); | |
1105 | 1141 | v = (x[5] & 0x60) >> 5; |
1106 | printf(" Data color mapping: %sconventional\n", v ? "non-" : ""); | |
1142 | printf(" Data color mapping: %sconventional\n", v ? "non-" : ""); | |
1107 | 1143 | if (v > 1) |
1108 | fail("Unknown data color mapping (0x%02x)\n", v); | |
1144 | fail("Unknown data color mapping (0x%02x).\n", v); | |
1109 | 1145 | if (x[5] & 0x80) |
1110 | fail("Non-zero reserved field in byte 5\n"); | |
1146 | fail("Non-zero reserved field in byte 5.\n"); | |
1111 | 1147 | |
1112 | 1148 | v = x[6] & 0x0f; |
1113 | printf(" Interface type: "); | |
1149 | printf(" Interface type: "); | |
1114 | 1150 | switch (v) { |
1115 | 1151 | case 0x00: printf("LVDS TFT\n"); break; |
1116 | 1152 | case 0x01: printf("monoSTN 4/8 Bit\n"); break; |
1120 | 1156 | case 0x05: printf("TMDS\n"); break; |
1121 | 1157 | default: |
1122 | 1158 | printf("Unknown (0x%02x)\n", v); |
1123 | fail("Invalid interface type 0x%02x\n", v); | |
1159 | fail("Invalid interface type 0x%02x.\n", v); | |
1124 | 1160 | break; |
1125 | 1161 | } |
1126 | printf(" DE polarity: DE %s active\n", | |
1162 | printf(" DE polarity: DE %s active\n", | |
1127 | 1163 | (x[6] & 0x10) ? "low" : "high"); |
1128 | printf(" FPSCLK polarity: FPSCLK %sinverted\n", | |
1164 | printf(" FPSCLK polarity: FPSCLK %sinverted\n", | |
1129 | 1165 | (x[6] & 0x20) ? "" : "not "); |
1130 | 1166 | if (x[6] & 0xc0) |
1131 | fail("Non-zero reserved field in byte 6\n"); | |
1132 | ||
1133 | printf(" Vertical display mode: %s\n", | |
1167 | fail("Non-zero reserved field in byte 6.\n"); | |
1168 | ||
1169 | printf(" Vertical display mode: %s\n", | |
1134 | 1170 | (x[7] & 0x01) ? "Up/Down reverse mode" : "normal"); |
1135 | printf(" Horizontal display mode: %s\n", | |
1171 | printf(" Horizontal display mode: %s\n", | |
1136 | 1172 | (x[7] & 0x02) ? "Left/Right reverse mode" : "normal"); |
1137 | 1173 | if (x[7] & 0xfc) |
1138 | fail("Non-zero reserved field in byte 7\n"); | |
1174 | fail("Non-zero reserved field in byte 7.\n"); | |
1139 | 1175 | |
1140 | 1176 | v = x[8] & 0x0f; |
1141 | printf(" Total power on sequencing delay: "); | |
1177 | printf(" Total power on sequencing delay: "); | |
1142 | 1178 | if (v) |
1143 | 1179 | printf("%u ms\n", v * 10); |
1144 | 1180 | else |
1145 | 1181 | printf("VGA controller default\n"); |
1146 | 1182 | v = (x[8] & 0xf0) >> 4; |
1147 | printf(" Total power off sequencing delay: "); | |
1183 | printf(" Total power off sequencing delay: "); | |
1148 | 1184 | if (v) |
1149 | 1185 | printf("%u ms\n", v * 10); |
1150 | 1186 | else |
1151 | 1187 | printf("VGA controller default\n"); |
1152 | 1188 | |
1153 | 1189 | v = x[9] & 0x0f; |
1154 | printf(" Contrast power on sequencing delay: "); | |
1190 | printf(" Contrast power on sequencing delay: "); | |
1155 | 1191 | if (v) |
1156 | 1192 | printf("%u ms\n", v * 10); |
1157 | 1193 | else |
1158 | 1194 | printf("VGA controller default\n"); |
1159 | 1195 | v = (x[9] & 0xf0) >> 4; |
1160 | printf(" Contrast power off sequencing delay: "); | |
1196 | printf(" Contrast power off sequencing delay: "); | |
1161 | 1197 | if (v) |
1162 | 1198 | printf("%u ms\n", v * 10); |
1163 | 1199 | else |
1166 | 1202 | v = x[10] & 0x2f; |
1167 | 1203 | const char *s = (x[10] & 0x80) ? "" : " (ignored)"; |
1168 | 1204 | |
1169 | printf(" Backlight brightness control: %u steps%s\n", v, s); | |
1170 | printf(" Backlight enable at boot: %s%s\n", | |
1205 | printf(" Backlight brightness control: %u steps%s\n", v, s); | |
1206 | printf(" Backlight enable at boot: %s%s\n", | |
1171 | 1207 | (x[10] & 0x40) ? "off" : "on", s); |
1172 | printf(" Backlight control enable: %s\n", | |
1208 | printf(" Backlight control enable: %s\n", | |
1173 | 1209 | (x[10] & 0x80) ? "enabled" : "disabled"); |
1174 | 1210 | |
1175 | 1211 | v = x[11] & 0x2f; |
1176 | 1212 | s = (x[11] & 0x80) ? "" : " (ignored)"; |
1177 | 1213 | |
1178 | printf(" Contrast voltable control: %u steps%s\n", v, s); | |
1214 | printf(" Contrast voltable control: %u steps%s\n", v, s); | |
1179 | 1215 | if (x[11] & 0x40) |
1180 | fail("Non-zero reserved field in byte 11\n"); | |
1181 | printf(" Contrast control enable: %s\n", | |
1216 | fail("Non-zero reserved field in byte 11.\n"); | |
1217 | printf(" Contrast control enable: %s\n", | |
1182 | 1218 | (x[11] & 0x80) ? "enabled" : "disabled"); |
1183 | 1219 | |
1184 | 1220 | if (x[12] || x[13] || x[14] || x[15] || x[16]) |
1185 | fail("Non-zero values in reserved bytes 12-16\n"); | |
1186 | ||
1187 | printf(" EPI Version: %u.%u\n", (x[17] & 0xf0) >> 4, x[17] & 0x0f); | |
1221 | fail("Non-zero values in reserved bytes 12-16.\n"); | |
1222 | ||
1223 | printf(" EPI Version: %u.%u\n", (x[17] & 0xf0) >> 4, x[17] & 0x0f); | |
1188 | 1224 | } |
1189 | 1225 | |
1190 | static void add_str(std::string &s, const std::string &add) | |
1191 | { | |
1192 | if (s.empty()) | |
1193 | s = add; | |
1194 | else | |
1195 | s = s + ", " + add; | |
1196 | } | |
1197 | ||
1198 | void edid_state::detailed_timings(const char *prefix, const unsigned char *x) | |
1226 | void edid_state::detailed_timings(const char *prefix, const unsigned char *x, | |
1227 | bool base_or_cta) | |
1199 | 1228 | { |
1200 | 1229 | struct timings t = {}; |
1201 | 1230 | unsigned hbl, vbl; |
1202 | 1231 | std::string s_sync, s_flags; |
1203 | 1232 | |
1233 | // Only count DTDs in base block 0 or CTA-861 extension blocks | |
1234 | if (base_or_cta) | |
1235 | base.dtd_cnt++; | |
1236 | data_block = "Detailed Timing Descriptor #" + std::to_string(base.dtd_cnt); | |
1204 | 1237 | t.pixclk_khz = (x[0] + (x[1] << 8)) * 10; |
1205 | 1238 | if (t.pixclk_khz < 10000) { |
1206 | 1239 | printf("%sDetailed mode: ", prefix); |
1207 | 1240 | hex_block("", x, 18, true, 18); |
1208 | 1241 | if (!t.pixclk_khz) |
1209 | fail("First two bytes are 0, invalid data\n"); | |
1242 | fail("First two bytes are 0, invalid data.\n"); | |
1210 | 1243 | else |
1211 | fail("Pixelclock < 10 MHz, assuming invalid data 0x%02x 0x%02x\n", | |
1244 | fail("Pixelclock < 10 MHz, assuming invalid data 0x%02x 0x%02x.\n", | |
1212 | 1245 | x[0], x[1]); |
1213 | 1246 | return; |
1214 | 1247 | } |
1228 | 1261 | |
1229 | 1262 | unsigned char flags = x[17]; |
1230 | 1263 | |
1231 | if (has_spwg && timing_descr_cnt == 2) | |
1264 | if (base.has_spwg && base.detailed_block_cnt == 2) | |
1232 | 1265 | flags = *(x - 1); |
1233 | 1266 | |
1234 | 1267 | switch ((flags & 0x18) >> 3) { |
1267 | 1300 | t.pos_pol_vsync = true; |
1268 | 1301 | s_sync = t.pos_pol_hsync ? "+hsync " : "-hsync "; |
1269 | 1302 | s_sync += t.pos_pol_vsync ? "+vsync " : "-vsync "; |
1270 | if (has_spwg && (flags & 0x01)) | |
1303 | if (base.has_spwg && (flags & 0x01)) | |
1271 | 1304 | s_flags = "DE timing only"; |
1272 | 1305 | break; |
1273 | 1306 | } |
1281 | 1314 | if (t.hact == 1920 && t.vact == 1080 && t.pixclk_khz == 72000 && |
1282 | 1315 | t.hfp == 32 && t.hsync == 168 && t.hbp == 184 && !t.hborder && |
1283 | 1316 | t.vfp == 23 && t.vsync == 5 && t.vbp == 57 && !t.vborder && |
1284 | !has_spwg && preparsed_has_vic[0][39] && (flags & 0x1e) == 0x1a) | |
1317 | !base.has_spwg && cta.preparsed_has_vic[0][39] && (flags & 0x1e) == 0x1a) | |
1285 | 1318 | t.even_vtotal = true; |
1286 | 1319 | } |
1287 | 1320 | switch (flags & 0x61) { |
1310 | 1343 | t.hsize_mm = x[12] + ((x[14] & 0xf0) << 4); |
1311 | 1344 | t.vsize_mm = x[13] + ((x[14] & 0x0f) << 8); |
1312 | 1345 | |
1313 | bool ok = print_detailed_timings(prefix, t, s_flags.c_str()); | |
1314 | ||
1315 | if ((max_display_width_mm && !t.hsize_mm) || | |
1316 | (max_display_height_mm && !t.vsize_mm)) { | |
1317 | fail("Mismatch of image size vs display size: image size is not set, but display size is\n"); | |
1318 | } | |
1319 | if (has_spwg && timing_descr_cnt == 2) | |
1320 | printf("SPWG Module Revision: %hhu\n", x[17]); | |
1346 | calc_ratio(&t); | |
1347 | ||
1348 | std::string s_type = base_or_cta ? dtd_type() : "DTD"; | |
1349 | bool ok = print_timings(prefix, &t, s_type.c_str(), s_flags.c_str(), true); | |
1350 | timings_ext te(t, s_type, s_flags); | |
1351 | ||
1352 | if (block_nr == 0 && base.dtd_cnt == 1) { | |
1353 | te.type = "DTD 1"; | |
1354 | base.preferred_timing = te; | |
1355 | cta.preferred_timings.push_back(te); | |
1356 | cta.native_timings.push_back(te); | |
1357 | } | |
1358 | if (base_or_cta) | |
1359 | cta.vec_dtds.push_back(te); | |
1360 | ||
1361 | if ((base.max_display_width_mm && !t.hsize_mm) || | |
1362 | (base.max_display_height_mm && !t.vsize_mm)) { | |
1363 | fail("Mismatch of image size vs display size: image size is not set, but display size is.\n"); | |
1364 | } | |
1365 | if (base.has_spwg && base.detailed_block_cnt == 2) | |
1366 | printf("%sSPWG Module Revision: %hhu\n", prefix, x[17]); | |
1321 | 1367 | if (!ok) { |
1322 | 1368 | std::string s = prefix; |
1323 | 1369 | |
1329 | 1375 | void edid_state::detailed_block(const unsigned char *x) |
1330 | 1376 | { |
1331 | 1377 | static const unsigned char zero_descr[18] = { 0 }; |
1332 | static int seen_non_detailed_descriptor; | |
1333 | 1378 | unsigned cnt; |
1334 | 1379 | unsigned i; |
1335 | 1380 | |
1336 | timing_descr_cnt++; | |
1381 | base.detailed_block_cnt++; | |
1337 | 1382 | if (x[0] || x[1]) { |
1338 | data_block = "Detailed Timings #" + std::to_string(timing_descr_cnt); | |
1339 | detailed_timings("", x); | |
1340 | if (seen_non_detailed_descriptor) | |
1341 | fail("Invalid detailed timing descriptor ordering\n"); | |
1383 | detailed_timings(" ", x); | |
1384 | if (base.seen_non_detailed_descriptor) | |
1385 | fail("Invalid detailed timing descriptor ordering.\n"); | |
1342 | 1386 | return; |
1343 | 1387 | } |
1344 | 1388 | |
1345 | data_block = "Display Descriptor #" + std::to_string(timing_descr_cnt); | |
1389 | data_block = "Display Descriptor #" + std::to_string(base.detailed_block_cnt); | |
1346 | 1390 | /* Monitor descriptor block, not detailed timing descriptor. */ |
1347 | 1391 | if (x[2] != 0) { |
1348 | 1392 | /* 1.3, 3.10.3 */ |
1349 | fail("Monitor descriptor block has byte 2 nonzero (0x%02x)\n", x[2]); | |
1350 | } | |
1351 | if ((edid_minor < 4 || x[3] != 0xfd) && x[4] != 0x00) { | |
1393 | fail("Monitor descriptor block has byte 2 nonzero (0x%02x).\n", x[2]); | |
1394 | } | |
1395 | if ((base.edid_minor < 4 || x[3] != 0xfd) && x[4] != 0x00) { | |
1352 | 1396 | /* 1.3, 3.10.3 */ |
1353 | fail("Monitor descriptor block has byte 4 nonzero (0x%02x)\n", x[4]); | |
1354 | } | |
1355 | ||
1356 | seen_non_detailed_descriptor = 1; | |
1357 | if (edid_minor == 0) | |
1358 | fail("Has descriptor blocks other than detailed timings\n"); | |
1397 | fail("Monitor descriptor block has byte 4 nonzero (0x%02x).\n", x[4]); | |
1398 | } | |
1399 | ||
1400 | base.seen_non_detailed_descriptor = true; | |
1401 | if (base.edid_minor == 0) | |
1402 | fail("Has descriptor blocks other than detailed timings.\n"); | |
1359 | 1403 | |
1360 | 1404 | if (!memcmp(x, zero_descr, sizeof(zero_descr))) { |
1361 | 1405 | data_block = "Empty Descriptor"; |
1362 | printf("%s\n", data_block.c_str()); | |
1363 | fail("Use Dummy Descriptor instead of all zeroes\n"); | |
1406 | printf(" %s\n", data_block.c_str()); | |
1407 | fail("Use Dummy Descriptor instead of all zeroes.\n"); | |
1364 | 1408 | return; |
1365 | 1409 | } |
1366 | 1410 | |
1370 | 1414 | return; |
1371 | 1415 | case 0x10: |
1372 | 1416 | data_block = "Dummy Descriptor"; |
1373 | printf("%s\n", data_block.c_str()); | |
1417 | printf(" %s:\n", data_block.c_str()); | |
1374 | 1418 | for (i = 5; i < 18; i++) { |
1375 | 1419 | if (x[i]) { |
1376 | fail("Dummy block filled with garbage\n"); | |
1420 | fail("Dummy block filled with garbage.\n"); | |
1377 | 1421 | break; |
1378 | 1422 | } |
1379 | 1423 | } |
1380 | 1424 | return; |
1381 | 1425 | case 0xf7: |
1382 | 1426 | data_block = "Established timings III"; |
1383 | printf("%s\n", data_block.c_str()); | |
1427 | printf(" %s:\n", data_block.c_str()); | |
1384 | 1428 | for (i = 0; i < 44; i++) |
1385 | if (x[6 + i / 8] & (1 << (7 - i % 8))) | |
1386 | print_timings(" ", find_dmt_id(established_timings3_dmt_ids[i]), "DMT"); | |
1429 | if (x[6 + i / 8] & (1 << (7 - i % 8))) { | |
1430 | unsigned char dmt_id = established_timings3_dmt_ids[i]; | |
1431 | char type[16]; | |
1432 | ||
1433 | sprintf(type, "DMT 0x%02x", dmt_id); | |
1434 | print_timings(" ", find_dmt_id(dmt_id), type); | |
1435 | } | |
1387 | 1436 | return; |
1388 | 1437 | case 0xf8: |
1389 | 1438 | data_block = "CVT 3 Byte Timing Codes"; |
1390 | printf("%s\n", data_block.c_str()); | |
1439 | printf(" %s:\n", data_block.c_str()); | |
1391 | 1440 | if (x[5] != 0x01) { |
1392 | fail("Invalid version number %u\n", x[5]); | |
1441 | fail("Invalid version number %u.\n", x[5]); | |
1393 | 1442 | return; |
1394 | 1443 | } |
1395 | 1444 | for (i = 0; i < 4; i++) |
1396 | detailed_cvt_descriptor(" ", x + 6 + (i * 3), !i); | |
1445 | detailed_cvt_descriptor(" ", x + 6 + (i * 3), !i); | |
1397 | 1446 | return; |
1398 | 1447 | case 0xf9: |
1399 | 1448 | data_block = "Display Color Management Data"; |
1400 | printf("%s\n", data_block.c_str()); | |
1401 | printf(" Version: %d\n", x[5]); | |
1402 | printf(" Red a3: %.2f\n", (short)(x[6] | (x[7] << 8)) / 100.0); | |
1403 | printf(" Red a2: %.2f\n", (short)(x[8] | (x[9] << 8)) / 100.0); | |
1404 | printf(" Green a3: %.2f\n", (short)(x[10] | (x[11] << 8)) / 100.0); | |
1405 | printf(" Green a2: %.2f\n", (short)(x[12] | (x[13] << 8)) / 100.0); | |
1406 | printf(" Blue a3: %.2f\n", (short)(x[14] | (x[15] << 8)) / 100.0); | |
1407 | printf(" Blue a2: %.2f\n", (short)(x[16] | (x[17] << 8)) / 100.0); | |
1449 | printf(" %s:\n", data_block.c_str()); | |
1450 | printf(" Version : %d\n", x[5]); | |
1451 | printf(" Red a3 : %.2f\n", (short)(x[6] | (x[7] << 8)) / 100.0); | |
1452 | printf(" Red a2 : %.2f\n", (short)(x[8] | (x[9] << 8)) / 100.0); | |
1453 | printf(" Green a3: %.2f\n", (short)(x[10] | (x[11] << 8)) / 100.0); | |
1454 | printf(" Green a2: %.2f\n", (short)(x[12] | (x[13] << 8)) / 100.0); | |
1455 | printf(" Blue a3 : %.2f\n", (short)(x[14] | (x[15] << 8)) / 100.0); | |
1456 | printf(" Blue a2 : %.2f\n", (short)(x[16] | (x[17] << 8)) / 100.0); | |
1408 | 1457 | return; |
1409 | 1458 | case 0xfa: |
1410 | 1459 | data_block = "Standard Timing Identifications"; |
1411 | printf("%s\n", data_block.c_str()); | |
1460 | printf(" %s:\n", data_block.c_str()); | |
1412 | 1461 | for (cnt = i = 0; i < 6; i++) { |
1413 | 1462 | if (x[5 + i * 2] != 0x01 || x[5 + i * 2 + 1] != 0x01) |
1414 | 1463 | cnt++; |
1415 | print_standard_timing(" ", x[5 + i * 2], x[5 + i * 2 + 1]); | |
1464 | print_standard_timing(" ", x[5 + i * 2], x[5 + i * 2 + 1]); | |
1416 | 1465 | } |
1417 | 1466 | if (!cnt) |
1418 | warn("%s block without any timings\n", data_block.c_str()); | |
1467 | warn("%s block without any timings.\n", data_block.c_str()); | |
1419 | 1468 | return; |
1420 | 1469 | case 0xfb: { |
1421 | 1470 | unsigned w_x, w_y; |
1422 | 1471 | unsigned gamma; |
1423 | 1472 | |
1424 | 1473 | data_block = "Color Point Data"; |
1425 | printf("%s\n", data_block.c_str()); | |
1474 | printf(" %s:\n", data_block.c_str()); | |
1426 | 1475 | w_x = (x[7] << 2) | ((x[6] >> 2) & 3); |
1427 | 1476 | w_y = (x[8] << 2) | (x[6] & 3); |
1428 | 1477 | gamma = x[9]; |
1429 | printf(" Index: %u White: 0.%04u, 0.%04u", x[5], | |
1478 | printf(" Index: %u White: 0.%04u, 0.%04u", x[5], | |
1430 | 1479 | (w_x * 10000) / 1024, (w_y * 10000) / 1024); |
1431 | 1480 | if (gamma == 0xff) |
1432 | 1481 | printf(" Gamma: is defined in an extension block"); |
1438 | 1487 | w_x = (x[12] << 2) | ((x[11] >> 2) & 3); |
1439 | 1488 | w_y = (x[13] << 2) | (x[11] & 3); |
1440 | 1489 | gamma = x[14]; |
1441 | printf(" Index: %u White: 0.%04u, 0.%04u", x[10], | |
1490 | printf(" Index: %u White: 0.%04u, 0.%04u", x[10], | |
1442 | 1491 | (w_x * 10000) / 1024, (w_y * 10000) / 1024); |
1443 | 1492 | if (gamma == 0xff) |
1444 | 1493 | printf(" Gamma: is defined in an extension block"); |
1449 | 1498 | } |
1450 | 1499 | case 0xfc: |
1451 | 1500 | data_block = "Display Product Name"; |
1452 | has_name_descriptor = 1; | |
1453 | printf("%s: %s\n", data_block.c_str(), extract_string(x + 5, 13)); | |
1501 | base.has_name_descriptor = 1; | |
1502 | printf(" %s: '%s'\n", data_block.c_str(), extract_string(x + 5, 13)); | |
1454 | 1503 | return; |
1455 | 1504 | case 0xfd: |
1456 | 1505 | detailed_display_range_limits(x); |
1457 | 1506 | return; |
1458 | 1507 | case 0xfe: |
1459 | if (!has_spwg || timing_descr_cnt < 3) { | |
1508 | if (!base.has_spwg || base.detailed_block_cnt < 3) { | |
1460 | 1509 | data_block = "Alphanumeric Data String"; |
1461 | printf("%s: %s\n", data_block.c_str(), | |
1510 | printf(" %s: '%s'\n", data_block.c_str(), | |
1462 | 1511 | extract_string(x + 5, 13)); |
1463 | 1512 | return; |
1464 | 1513 | } |
1465 | if (timing_descr_cnt == 3) { | |
1514 | if (base.detailed_block_cnt == 3) { | |
1466 | 1515 | char buf[6] = { 0 }; |
1467 | 1516 | |
1468 | 1517 | data_block = "SPWG Descriptor #3"; |
1518 | printf(" %s:\n", data_block.c_str()); | |
1469 | 1519 | memcpy(buf, x + 5, 5); |
1470 | 1520 | if (strlen(buf) != 5) |
1471 | fail("Invalid PC Maker P/N length\n"); | |
1472 | printf("SPWG PC Maker P/N: %s\n", buf); | |
1473 | printf("SPWG LCD Supplier EEDID Revision: %hhu\n", x[10]); | |
1474 | printf("SPWG Manufacturer P/N: %s\n", extract_string(x + 11, 7)); | |
1521 | fail("Invalid PC Maker P/N length.\n"); | |
1522 | printf(" SPWG PC Maker P/N: '%s'\n", buf); | |
1523 | printf(" SPWG LCD Supplier EEDID Revision: %hhu\n", x[10]); | |
1524 | printf(" SPWG Manufacturer P/N: '%s'\n", extract_string(x + 11, 7)); | |
1475 | 1525 | } else { |
1476 | 1526 | data_block = "SPWG Descriptor #4"; |
1477 | printf("SMBUS Values: 0x%02hhx 0x%02hhx 0x%02hhx 0x%02hhx" | |
1527 | printf(" %s:\n", data_block.c_str()); | |
1528 | printf(" SMBUS Values: 0x%02hhx 0x%02hhx 0x%02hhx 0x%02hhx" | |
1478 | 1529 | " 0x%02hhx 0x%02hhx 0x%02hhx 0x%02hhx\n", |
1479 | 1530 | x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12]); |
1480 | printf("LVDS Channels: %hhu\n", x[13]); | |
1481 | printf("Panel Self Test %sPresent\n", x[14] ? "" : "Not "); | |
1531 | printf(" LVDS Channels: %hhu\n", x[13]); | |
1532 | printf(" Panel Self Test %sPresent\n", x[14] ? "" : "Not "); | |
1482 | 1533 | if (x[15] != 0x0a || x[16] != 0x20 || x[17] != 0x20) |
1483 | fail("Invalid trailing data\n"); | |
1534 | fail("Invalid trailing data.\n"); | |
1484 | 1535 | } |
1485 | 1536 | return; |
1486 | case 0xff: | |
1537 | case 0xff: { | |
1487 | 1538 | data_block = "Display Product Serial Number"; |
1488 | printf("%s: %s\n", data_block.c_str(), | |
1489 | extract_string(x + 5, 13)); | |
1490 | has_serial_string = 1; | |
1539 | char *sn = extract_string(x + 5, 13); | |
1540 | if (hide_serial_numbers) | |
1541 | printf(" %s: ...\n", data_block.c_str()); | |
1542 | else | |
1543 | printf(" %s: '%s'\n", data_block.c_str(), sn); | |
1544 | base.has_serial_string = 1; | |
1491 | 1545 | return; |
1546 | } | |
1492 | 1547 | default: |
1493 | printf("%s Display Descriptor (0x%02hhx):", | |
1548 | printf(" %s Display Descriptor (0x%02hhx):", | |
1494 | 1549 | x[3] <= 0x0f ? "Manufacturer-Specified" : "Unknown", x[3]); |
1495 | 1550 | hex_block(" ", x + 2, 16); |
1496 | 1551 | if (x[3] > 0x0f) |
1497 | fail("Unknown Type 0x%02hhx\n", x[3]); | |
1552 | fail("Unknown Type 0x%02hhx.\n", x[3]); | |
1498 | 1553 | return; |
1499 | 1554 | } |
1500 | 1555 | } |
1505 | 1560 | struct tm *ptm; |
1506 | 1561 | int analog, i; |
1507 | 1562 | unsigned col_x, col_y; |
1508 | int has_preferred_timing = 0; | |
1563 | bool has_preferred_timing = false; | |
1509 | 1564 | |
1510 | 1565 | data_block = "EDID Structure Version & Revision"; |
1511 | printf("EDID version: %hhu.%hhu\n", x[0x12], x[0x13]); | |
1566 | printf(" %s: %hhu.%hhu\n", data_block.c_str(), x[0x12], x[0x13]); | |
1512 | 1567 | if (x[0x12] == 1) { |
1513 | edid_minor = x[0x13]; | |
1514 | if (edid_minor > 4) | |
1515 | warn("Unknown EDID minor version %u, assuming 1.4 conformance\n", edid_minor); | |
1516 | if (edid_minor < 3) | |
1517 | warn("EDID 1.%u is deprecated, do not use\n", edid_minor); | |
1568 | base.edid_minor = x[0x13]; | |
1569 | if (base.edid_minor > 4) | |
1570 | warn("Unknown EDID minor version %u, assuming 1.4 conformance.\n", base.edid_minor); | |
1571 | if (base.edid_minor < 3) | |
1572 | warn("EDID 1.%u is deprecated, do not use.\n", base.edid_minor); | |
1518 | 1573 | } else { |
1519 | fail("Unknown EDID major version\n"); | |
1574 | fail("Unknown EDID major version.\n"); | |
1520 | 1575 | } |
1521 | 1576 | |
1522 | 1577 | data_block = "Vendor & Product Identification"; |
1523 | printf("Manufacturer: %s Model %u Serial Number %u\n", | |
1578 | printf(" %s:\n", data_block.c_str()); | |
1579 | printf(" Manufacturer: %s\n Model: %u\n", | |
1524 | 1580 | manufacturer_name(x + 0x08), |
1525 | (unsigned short)(x[0x0a] + (x[0x0b] << 8)), | |
1526 | (unsigned)(x[0x0c] + (x[0x0d] << 8) + | |
1527 | (x[0x0e] << 16) + (x[0x0f] << 24))); | |
1528 | has_serial_number = x[0x0c] || x[0x0d] || x[0x0e] || x[0x0f]; | |
1529 | /* XXX need manufacturer ID table */ | |
1581 | (unsigned short)(x[0x0a] + (x[0x0b] << 8))); | |
1582 | base.has_serial_number = x[0x0c] || x[0x0d] || x[0x0e] || x[0x0f]; | |
1583 | if (base.has_serial_number) { | |
1584 | if (hide_serial_numbers) | |
1585 | printf(" Serial Number: ...\n"); | |
1586 | else | |
1587 | printf(" Serial Number: %u\n", | |
1588 | (unsigned)(x[0x0c] + (x[0x0d] << 8) + | |
1589 | (x[0x0e] << 16) + (x[0x0f] << 24))); | |
1590 | } | |
1530 | 1591 | |
1531 | 1592 | time(&the_time); |
1532 | 1593 | ptm = localtime(&the_time); |
1535 | 1596 | int year = 1990 + x[0x11]; |
1536 | 1597 | |
1537 | 1598 | if (week) { |
1538 | if (edid_minor <= 3 && week == 0xff) | |
1539 | fail("EDID 1.3 does not support week 0xff\n"); | |
1599 | if (base.edid_minor <= 3 && week == 0xff) | |
1600 | fail("EDID 1.3 does not support week 0xff.\n"); | |
1540 | 1601 | // The max week is 53 in EDID 1.3 and 54 in EDID 1.4. |
1541 | 1602 | // No idea why there is a difference. |
1542 | if (edid_minor <= 3 && week == 54) | |
1543 | fail("EDID 1.3 does not support week 54\n"); | |
1603 | if (base.edid_minor <= 3 && week == 54) | |
1604 | fail("EDID 1.3 does not support week 54.\n"); | |
1544 | 1605 | if (week != 0xff && week > 54) |
1545 | fail("Invalid week %u of manufacture\n", week); | |
1606 | fail("Invalid week %u of manufacture.\n", week); | |
1546 | 1607 | if (week != 0xff) |
1547 | printf("Made in week %hhu of %d\n", week, year); | |
1608 | printf(" Made in: week %hhu of %d\n", week, year); | |
1548 | 1609 | } |
1549 | 1610 | if (week == 0xff) |
1550 | printf("Model year %d\n", year); | |
1611 | printf(" Model year: %d\n", year); | |
1551 | 1612 | else if (!week) |
1552 | printf("Made in year %d\n", year); | |
1613 | printf(" Made in: %d\n", year); | |
1553 | 1614 | if (year - 1 > ptm->tm_year + 1900) |
1554 | fail("The year %d is more than one year in the future\n", year); | |
1615 | fail("The year %d is more than one year in the future.\n", year); | |
1555 | 1616 | |
1556 | 1617 | /* display section */ |
1557 | 1618 | |
1558 | 1619 | data_block = "Basic Display Parameters & Features"; |
1620 | printf(" %s:\n", data_block.c_str()); | |
1559 | 1621 | if (x[0x14] & 0x80) { |
1560 | 1622 | analog = 0; |
1561 | printf("Digital display\n"); | |
1562 | if (edid_minor >= 4) { | |
1623 | printf(" Digital display\n"); | |
1624 | if (base.edid_minor >= 4) { | |
1563 | 1625 | if ((x[0x14] & 0x70) == 0x00) |
1564 | printf("Color depth is undefined\n"); | |
1626 | printf(" Color depth is undefined\n"); | |
1565 | 1627 | else if ((x[0x14] & 0x70) == 0x70) |
1566 | fail("Color Bit Depth set to reserved value\n"); | |
1628 | fail("Color Bit Depth set to reserved value.\n"); | |
1567 | 1629 | else |
1568 | printf("%u bits per primary color channel\n", | |
1630 | printf(" Bits per primary color channel: %u\n", | |
1569 | 1631 | ((x[0x14] & 0x70) >> 3) + 4); |
1570 | 1632 | |
1633 | printf(" "); | |
1571 | 1634 | switch (x[0x14] & 0x0f) { |
1572 | 1635 | case 0x00: printf("Digital interface is not defined\n"); break; |
1573 | 1636 | case 0x01: printf("DVI interface\n"); break; |
1576 | 1639 | case 0x04: printf("MDDI interface\n"); break; |
1577 | 1640 | case 0x05: printf("DisplayPort interface\n"); break; |
1578 | 1641 | default: |
1579 | printf("Unknown (0x%02x) interface\n", x[0x14] & 0x0f); | |
1580 | fail("Digital Video Interface Standard set to reserved value 0x%02x\n", x[0x14] & 0x0f); | |
1642 | printf("Unknown interface: 0x%02x\n", x[0x14] & 0x0f); | |
1643 | fail("Digital Video Interface Standard set to reserved value 0x%02x.\n", x[0x14] & 0x0f); | |
1581 | 1644 | break; |
1582 | 1645 | } |
1583 | } else if (edid_minor >= 2) { | |
1646 | } else if (base.edid_minor >= 2) { | |
1584 | 1647 | if (x[0x14] & 0x01) { |
1585 | printf("DFP 1.x compatible TMDS\n"); | |
1648 | printf(" DFP 1.x compatible TMDS\n"); | |
1586 | 1649 | } |
1587 | 1650 | if (x[0x14] & 0x7e) |
1588 | fail("Digital Video Interface Standard set to reserved value 0x%02x\n", x[0x14] & 0x7e); | |
1651 | fail("Digital Video Interface Standard set to reserved value 0x%02x.\n", x[0x14] & 0x7e); | |
1589 | 1652 | } else if (x[0x14] & 0x7f) { |
1590 | fail("Digital Video Interface Standard set to reserved value 0x%02x\n", x[0x14] & 0x7f); | |
1653 | fail("Digital Video Interface Standard set to reserved value 0x%02x.\n", x[0x14] & 0x7f); | |
1591 | 1654 | } |
1592 | 1655 | } else { |
1593 | 1656 | unsigned voltage = (x[0x14] & 0x60) >> 5; |
1594 | 1657 | unsigned sync = (x[0x14] & 0x0f); |
1595 | 1658 | |
1596 | 1659 | analog = 1; |
1597 | printf("Analog display, Input voltage level: %s V\n", | |
1660 | printf(" Analog display\n"); | |
1661 | printf(" Input voltage level: %s V\n", | |
1598 | 1662 | voltage == 3 ? "0.7/0.7" : |
1599 | 1663 | voltage == 2 ? "1.0/0.4" : |
1600 | 1664 | voltage == 1 ? "0.714/0.286" : |
1601 | 1665 | "0.7/0.3"); |
1602 | 1666 | |
1603 | if (edid_minor >= 4) { | |
1604 | if (x[0x14] & 0x10) | |
1605 | printf("Blank-to-black setup/pedestal\n"); | |
1606 | else | |
1607 | printf("Blank level equals black level\n"); | |
1608 | } else if (x[0x14] & 0x10) { | |
1609 | /* | |
1610 | * XXX this is just the X text. 1.3 says "if set, display expects | |
1611 | * a blank-to-black setup or pedestal per appropriate Signal | |
1612 | * Level Standard". Whatever _that_ means. | |
1613 | */ | |
1614 | printf("Configurable signal levels\n"); | |
1615 | } | |
1616 | ||
1617 | printf("Sync: %s%s%s%s\n", sync & 0x08 ? "Separate " : "", | |
1618 | sync & 0x04 ? "Composite " : "", | |
1619 | sync & 0x02 ? "SyncOnGreen " : "", | |
1620 | sync & 0x01 ? "Serration " : ""); | |
1667 | if (x[0x14] & 0x10) | |
1668 | printf(" Blank-to-black setup/pedestal\n"); | |
1669 | else | |
1670 | printf(" Blank level equals black level\n"); | |
1671 | ||
1672 | if (sync) | |
1673 | printf(" Sync:%s%s%s%s\n", | |
1674 | sync & 0x08 ? " Separate" : "", | |
1675 | sync & 0x04 ? " Composite" : "", | |
1676 | sync & 0x02 ? " SyncOnGreen" : "", | |
1677 | sync & 0x01 ? " Serration" : ""); | |
1621 | 1678 | } |
1622 | 1679 | |
1623 | 1680 | if (x[0x15] && x[0x16]) { |
1624 | printf("Maximum image size: %u cm x %u cm\n", x[0x15], x[0x16]); | |
1625 | max_display_width_mm = x[0x15] * 10; | |
1626 | max_display_height_mm = x[0x16] * 10; | |
1627 | if ((max_display_height_mm && !max_display_width_mm) || | |
1628 | (max_display_width_mm && !max_display_height_mm)) | |
1629 | fail("Invalid maximum image size (%u cm x %u cm)\n", | |
1630 | max_display_width_mm, max_display_height_mm); | |
1631 | else if (max_display_width_mm < 100 || max_display_height_mm < 100) | |
1632 | warn("Dubious maximum image size (%ux%u is smaller than 10x10 cm)\n", | |
1633 | max_display_width_mm, max_display_height_mm); | |
1634 | } | |
1635 | else if (edid_minor >= 4 && (x[0x15] || x[0x16])) { | |
1681 | printf(" Maximum image size: %u cm x %u cm\n", x[0x15], x[0x16]); | |
1682 | base.max_display_width_mm = x[0x15] * 10; | |
1683 | base.max_display_height_mm = x[0x16] * 10; | |
1684 | if (x[0x15] < 10 || x[0x16] < 10) | |
1685 | warn("Dubious maximum image size (%ux%u is smaller than 10x10 cm).\n", | |
1686 | x[0x15], x[0x16]); | |
1687 | } | |
1688 | else if (base.edid_minor >= 4 && (x[0x15] || x[0x16])) { | |
1636 | 1689 | if (x[0x15]) |
1637 | printf("Aspect ratio is %f (landscape)\n", 100.0/(x[0x16] + 99)); | |
1690 | printf(" Aspect ratio: %.2f (landscape)\n", (x[0x15] + 99) / 100.0); | |
1638 | 1691 | else |
1639 | printf("Aspect ratio is %f (portrait)\n", 100.0/(x[0x15] + 99)); | |
1692 | printf(" Aspect ratio: %.2f (portrait)\n", 100.0 / (x[0x16] + 99)); | |
1640 | 1693 | } else { |
1641 | 1694 | /* Either or both can be zero for 1.3 and before */ |
1642 | printf("Image size is variable\n"); | |
1643 | } | |
1644 | ||
1645 | if (x[0x17] == 0xff) { | |
1646 | if (edid_minor >= 4) | |
1647 | printf("Gamma is defined in an extension block\n"); | |
1648 | else | |
1649 | /* XXX Technically 1.3 doesn't say this... */ | |
1650 | printf("Gamma: 1.0\n"); | |
1651 | } else printf("Gamma: %.2f\n", ((x[0x17] + 100.0) / 100.0)); | |
1695 | printf(" Image size is variable\n"); | |
1696 | } | |
1697 | ||
1698 | if (x[0x17] == 0xff) | |
1699 | printf(" Gamma is defined in an extension block\n"); | |
1700 | else | |
1701 | printf(" Gamma: %.2f\n", ((x[0x17] + 100.0) / 100.0)); | |
1652 | 1702 | |
1653 | 1703 | if (x[0x18] & 0xe0) { |
1654 | printf("DPMS levels:"); | |
1704 | printf(" DPMS levels:"); | |
1655 | 1705 | if (x[0x18] & 0x80) printf(" Standby"); |
1656 | 1706 | if (x[0x18] & 0x40) printf(" Suspend"); |
1657 | 1707 | if (x[0x18] & 0x20) printf(" Off"); |
1658 | 1708 | printf("\n"); |
1659 | 1709 | } |
1660 | 1710 | |
1661 | if (analog || edid_minor < 4) { | |
1711 | if (analog || base.edid_minor < 4) { | |
1712 | printf(" "); | |
1662 | 1713 | switch (x[0x18] & 0x18) { |
1663 | 1714 | case 0x00: printf("Monochrome or grayscale display\n"); break; |
1664 | 1715 | case 0x08: printf("RGB color display\n"); break; |
1666 | 1717 | case 0x18: printf("Undefined display color type\n"); |
1667 | 1718 | } |
1668 | 1719 | } else { |
1669 | printf("Supported color formats: RGB 4:4:4"); | |
1720 | printf(" Supported color formats: RGB 4:4:4"); | |
1670 | 1721 | if (x[0x18] & 0x08) |
1671 | 1722 | printf(", YCrCb 4:4:4"); |
1672 | 1723 | if (x[0x18] & 0x10) |
1685 | 1736 | static const unsigned char srgb_chromaticity[10] = { |
1686 | 1737 | 0xee, 0x91, 0xa3, 0x54, 0x4c, 0x99, 0x26, 0x0f, 0x50, 0x54 |
1687 | 1738 | }; |
1688 | printf("Default (sRGB) color space is primary color space\n"); | |
1739 | printf(" Default (sRGB) color space is primary color space\n"); | |
1689 | 1740 | if (memcmp(x + 0x19, srgb_chromaticity, sizeof(srgb_chromaticity))) |
1690 | fail("sRGB is signaled, but the chromaticities do not match\n"); | |
1691 | } | |
1692 | if (x[0x18] & 0x02) { | |
1693 | if (edid_minor >= 4) | |
1694 | printf("First detailed timing includes the native pixel format and preferred refresh rate\n"); | |
1695 | else | |
1696 | printf("First detailed timing is preferred timing\n"); | |
1697 | has_preferred_timing = 1; | |
1698 | } else if (edid_minor >= 4) { | |
1741 | fail("sRGB is signaled, but the chromaticities do not match.\n"); | |
1742 | } | |
1743 | if (base.edid_minor >= 4) { | |
1699 | 1744 | /* 1.4 always has a preferred timing and this bit means something else. */ |
1700 | has_preferred_timing = 1; | |
1745 | has_preferred_timing = true; | |
1746 | base.preferred_is_also_native = x[0x18] & 0x02; | |
1747 | printf(" First detailed timing %s the native pixel format and preferred refresh rate\n", | |
1748 | base.preferred_is_also_native ? "includes" : "does not include"); | |
1749 | } else { | |
1750 | if (x[0x18] & 0x02) { | |
1751 | printf(" First detailed timing is the preferred timing\n"); | |
1752 | has_preferred_timing = true; | |
1753 | // 1.3 recommends that the preferred timing corresponds to the | |
1754 | // native timing, but it is not a requirement. | |
1755 | // That said, we continue with the assumption that it actually | |
1756 | // is the native timing. | |
1757 | base.preferred_is_also_native = true; | |
1758 | } else if (base.edid_minor == 3) { | |
1759 | fail("EDID 1.3 requires that the first detailed timing is the preferred timing.\n"); | |
1760 | } | |
1701 | 1761 | } |
1702 | 1762 | |
1703 | 1763 | if (x[0x18] & 0x01) { |
1704 | if (edid_minor >= 4) { | |
1705 | supports_continuous_freq = true; | |
1706 | printf("Display is continuous frequency\n"); | |
1764 | if (base.edid_minor >= 4) { | |
1765 | base.supports_continuous_freq = true; | |
1766 | printf(" Display is continuous frequency\n"); | |
1707 | 1767 | } else { |
1708 | printf("Supports GTF timings within operating range\n"); | |
1709 | supports_gtf = true; | |
1768 | printf(" Supports GTF timings within operating range\n"); | |
1769 | base.supports_gtf = true; | |
1710 | 1770 | } |
1711 | 1771 | } |
1712 | 1772 | |
1713 | 1773 | data_block = "Color Characteristics"; |
1714 | printf("%s\n", data_block.c_str()); | |
1774 | printf(" %s:\n", data_block.c_str()); | |
1715 | 1775 | col_x = (x[0x1b] << 2) | (x[0x19] >> 6); |
1716 | 1776 | col_y = (x[0x1c] << 2) | ((x[0x19] >> 4) & 3); |
1717 | printf(" Red: 0.%04u, 0.%04u\n", | |
1777 | printf(" Red : 0.%04u, 0.%04u\n", | |
1718 | 1778 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); |
1719 | 1779 | col_x = (x[0x1d] << 2) | ((x[0x19] >> 2) & 3); |
1720 | 1780 | col_y = (x[0x1e] << 2) | (x[0x19] & 3); |
1721 | printf(" Green: 0.%04u, 0.%04u\n", | |
1781 | printf(" Green: 0.%04u, 0.%04u\n", | |
1722 | 1782 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); |
1723 | 1783 | col_x = (x[0x1f] << 2) | (x[0x1a] >> 6); |
1724 | 1784 | col_y = (x[0x20] << 2) | ((x[0x1a] >> 4) & 3); |
1725 | printf(" Blue: 0.%04u, 0.%04u\n", | |
1785 | printf(" Blue : 0.%04u, 0.%04u\n", | |
1726 | 1786 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); |
1727 | 1787 | col_x = (x[0x21] << 2) | ((x[0x1a] >> 2) & 3); |
1728 | 1788 | col_y = (x[0x22] << 2) | (x[0x1a] & 3); |
1729 | printf(" White: 0.%04u, 0.%04u\n", | |
1789 | printf(" White: 0.%04u, 0.%04u\n", | |
1730 | 1790 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); |
1731 | 1791 | |
1732 | 1792 | data_block = "Established Timings I & II"; |
1733 | 1793 | if (x[0x23] || x[0x24] || x[0x25]) { |
1734 | printf("%s\n", data_block.c_str()); | |
1794 | printf(" %s:\n", data_block.c_str()); | |
1735 | 1795 | for (i = 0; i < 17; i++) { |
1736 | 1796 | if (x[0x23 + i / 8] & (1 << (7 - i % 8))) { |
1797 | unsigned char dmt_id = established_timings12[i].dmt_id; | |
1737 | 1798 | const struct timings *t; |
1738 | const char *suffix = "DMT"; | |
1739 | ||
1740 | if (established_timings12[i].dmt_id) { | |
1741 | t = find_dmt_id(established_timings12[i].dmt_id); | |
1799 | char type[16]; | |
1800 | ||
1801 | if (dmt_id) { | |
1802 | sprintf(type, "DMT 0x%02x", dmt_id); | |
1803 | t = find_dmt_id(dmt_id); | |
1742 | 1804 | } else { |
1743 | 1805 | t = &established_timings12[i].t; |
1744 | suffix = established_timings12[i].std_name; | |
1806 | sprintf(type, "%-8s", established_timings12[i].type); | |
1745 | 1807 | } |
1746 | print_timings(" ", t, suffix); | |
1808 | print_timings(" ", t, type); | |
1747 | 1809 | } |
1748 | 1810 | } |
1749 | 1811 | } else { |
1750 | printf("%s: none\n", data_block.c_str()); | |
1751 | } | |
1752 | has_640x480p60_est_timing = x[0x23] & 0x20; | |
1812 | printf(" %s: none\n", data_block.c_str()); | |
1813 | } | |
1814 | base.has_640x480p60_est_timing = x[0x23] & 0x20; | |
1753 | 1815 | |
1754 | 1816 | data_block = "Standard Timings"; |
1755 | 1817 | bool found = false; |
1756 | 1818 | for (i = 0; i < 8; i++) { |
1757 | 1819 | if (x[0x26 + i * 2] != 0x01 || x[0x26 + i * 2 + 1] != 0x01) { |
1758 | 1820 | found = true; |
1821 | break; | |
1759 | 1822 | } |
1760 | 1823 | } |
1761 | 1824 | if (found) { |
1762 | printf("%s\n", data_block.c_str()); | |
1825 | printf(" %s:\n", data_block.c_str()); | |
1763 | 1826 | for (i = 0; i < 8; i++) |
1764 | print_standard_timing(" ", x[0x26 + i * 2], x[0x26 + i * 2 + 1]); | |
1827 | print_standard_timing(" ", x[0x26 + i * 2], x[0x26 + i * 2 + 1]); | |
1765 | 1828 | } else { |
1766 | printf("%s: none\n", data_block.c_str()); | |
1829 | printf(" %s: none\n", data_block.c_str()); | |
1767 | 1830 | } |
1768 | 1831 | |
1769 | 1832 | /* 18 byte descriptors */ |
1770 | 1833 | if (has_preferred_timing && !x[0x36] && !x[0x37]) |
1771 | fail("Missing preferred timing\n"); | |
1834 | fail("Missing preferred timing.\n"); | |
1772 | 1835 | |
1773 | 1836 | /* Look for SPWG Noteboook Panel EDID data blocks */ |
1774 | 1837 | if ((x[0x36] || x[0x37]) && |
1776 | 1839 | !x[0x5a] && !x[0x5b] && x[0x5d] == 0xfe && |
1777 | 1840 | !x[0x6c] && !x[0x6d] && x[0x6f] == 0xfe && |
1778 | 1841 | (x[0x79] == 1 || x[0x79] == 2) && x[0x7a] <= 1) |
1779 | has_spwg = true; | |
1780 | ||
1842 | base.has_spwg = true; | |
1843 | ||
1844 | for (unsigned i = 0; i < (base.has_spwg ? 2 : 4); i++) | |
1845 | if (x[0x36 + i * 18] || x[0x37 + i * 18]) | |
1846 | cta.preparse_total_dtds++; | |
1847 | ||
1848 | data_block = "Detailed Timing Descriptors"; | |
1849 | printf(" %s:\n", data_block.c_str()); | |
1781 | 1850 | detailed_block(x + 0x36); |
1782 | 1851 | detailed_block(x + 0x48); |
1783 | 1852 | detailed_block(x + 0x5a); |
1784 | 1853 | detailed_block(x + 0x6c); |
1785 | has_spwg = false; | |
1786 | ||
1854 | base.has_spwg = false; | |
1855 | if (!base.preferred_is_also_native) { | |
1856 | cta.native_timings.clear(); | |
1857 | base.preferred_timing = timings_ext(); | |
1858 | } | |
1859 | ||
1860 | data_block = block; | |
1787 | 1861 | if (x[0x7e]) |
1788 | printf("Has %u extension block%s\n", x[0x7e], x[0x7e] > 1 ? "s" : ""); | |
1862 | printf(" Extension blocks: %u\n", x[0x7e]); | |
1863 | if (x[0x7e] + 1U != num_blocks) | |
1864 | fail("EDID specified %u extension block(s), but found %u extension block(s).\n", | |
1865 | x[0x7e], num_blocks - 1); | |
1789 | 1866 | |
1790 | 1867 | block = block_name(0x00); |
1791 | 1868 | data_block.clear(); |
1792 | 1869 | do_checksum("", x, EDID_PAGE_SIZE); |
1793 | if (edid_minor >= 3) { | |
1794 | if (!has_name_descriptor) | |
1795 | fail("Missing Display Product Name\n"); | |
1796 | if ((edid_minor == 3 || supports_continuous_freq) && | |
1797 | !has_display_range_descriptor) | |
1798 | fail("Missing Display Range Limits Descriptor\n"); | |
1870 | if (base.edid_minor >= 3) { | |
1871 | if (!base.has_name_descriptor) | |
1872 | fail("Missing Display Product Name.\n"); | |
1873 | if ((base.edid_minor == 3 || base.supports_continuous_freq) && | |
1874 | !base.has_display_range_descriptor) | |
1875 | fail("Missing Display Range Limits Descriptor.\n"); | |
1799 | 1876 | } |
1800 | 1877 | } |
1878 | ||
1879 | void edid_state::check_base_block() | |
1880 | { | |
1881 | data_block = "Base EDID"; | |
1882 | if (base.uses_gtf && !base.supports_gtf) | |
1883 | fail("GTF timings are used, but the EDID does not signal GTF support.\n"); | |
1884 | if (base.uses_cvt && !base.supports_cvt) | |
1885 | fail("CVT timings are used, but the EDID does not signal CVT support.\n"); | |
1886 | /* | |
1887 | * Allow for regular rounding of vertical and horizontal frequencies. | |
1888 | * The spec says that the pixelclock shall be rounded up, so there is | |
1889 | * no need to take rounding into account. | |
1890 | */ | |
1891 | if (base.has_display_range_descriptor && | |
1892 | (min_vert_freq_hz + 0.5 < base.min_display_vert_freq_hz || | |
1893 | (max_vert_freq_hz >= base.max_display_vert_freq_hz + 0.5 && base.max_display_vert_freq_hz) || | |
1894 | min_hor_freq_hz + 500 < base.min_display_hor_freq_hz || | |
1895 | (max_hor_freq_hz >= base.max_display_hor_freq_hz + 500 && base.max_display_hor_freq_hz) || | |
1896 | (max_pixclk_khz > base.max_display_pixclk_khz && base.max_display_pixclk_khz))) { | |
1897 | /* | |
1898 | * Check if it is really out of range, or if it could be a rounding error. | |
1899 | * The EDID spec is not very clear about rounding. | |
1900 | */ | |
1901 | bool out_of_range = | |
1902 | min_vert_freq_hz + 1.0 <= base.min_display_vert_freq_hz || | |
1903 | (max_vert_freq_hz >= base.max_display_vert_freq_hz + 1.0 && base.max_display_vert_freq_hz) || | |
1904 | min_hor_freq_hz + 1000 <= base.min_display_hor_freq_hz || | |
1905 | (max_hor_freq_hz >= base.max_display_hor_freq_hz + 1000 && base.max_display_hor_freq_hz) || | |
1906 | (max_pixclk_khz >= base.max_display_pixclk_khz + 10000 && base.max_display_pixclk_khz); | |
1907 | ||
1908 | std::string err("Some timings are out of range of the Monitor Ranges:\n"); | |
1909 | char buf[512]; | |
1910 | ||
1911 | if (min_vert_freq_hz + 0.5 < base.min_display_vert_freq_hz || | |
1912 | (max_vert_freq_hz >= base.max_display_vert_freq_hz + 0.5 && base.max_display_vert_freq_hz)) { | |
1913 | sprintf(buf, " Vertical Freq: %.3f - %.3f Hz (Monitor: %u.000 - %u.000 Hz)\n", | |
1914 | min_vert_freq_hz, max_vert_freq_hz, | |
1915 | base.min_display_vert_freq_hz, base.max_display_vert_freq_hz); | |
1916 | err += buf; | |
1917 | } | |
1918 | ||
1919 | if (min_hor_freq_hz + 500 < base.min_display_hor_freq_hz || | |
1920 | (max_hor_freq_hz >= base.max_display_hor_freq_hz + 500 && base.max_display_hor_freq_hz)) { | |
1921 | sprintf(buf, " Horizontal Freq: %.3f - %.3f kHz (Monitor: %.3f - %.3f kHz)\n", | |
1922 | min_hor_freq_hz / 1000.0, max_hor_freq_hz / 1000.0, | |
1923 | base.min_display_hor_freq_hz / 1000.0, base.max_display_hor_freq_hz / 1000.0); | |
1924 | err += buf; | |
1925 | } | |
1926 | ||
1927 | if (max_pixclk_khz >= base.max_display_pixclk_khz && base.max_display_pixclk_khz) { | |
1928 | sprintf(buf, " Maximum Clock: %.3f MHz (Monitor: %.3f MHz)\n", | |
1929 | max_pixclk_khz / 1000.0, base.max_display_pixclk_khz / 1000.0); | |
1930 | err += buf; | |
1931 | } | |
1932 | ||
1933 | if (!out_of_range) | |
1934 | err += " Could be due to a Monitor Range off-by-one rounding issue\n"; | |
1935 | ||
1936 | /* | |
1937 | * EDID 1.4 states (in an Errata) that explicitly defined | |
1938 | * timings supersede the monitor range definition. | |
1939 | */ | |
1940 | msg(!out_of_range || base.edid_minor >= 4, "%s", err.c_str()); | |
1941 | } | |
1942 | if (base.edid_minor == 3 && num_blocks > 2 && !block_map.saw_block_1) | |
1943 | fail("EDID 1.3 requires a Block Map Extension in Block 1 if there are more than 2 blocks in the EDID.\n"); | |
1944 | if (base.edid_minor == 3 && num_blocks > 128 && !block_map.saw_block_128) | |
1945 | fail("EDID 1.3 requires a Block Map Extension in Block 128 if there are more than 128 blocks in the EDID.\n"); | |
1946 | if (block_map.saw_block_128 && num_blocks > 255) | |
1947 | fail("If there is a Block Map Extension in Block 128 then the maximum number of blocks is 255.\n"); | |
1948 | } |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | 2 | * Copyright 2006-2012 Red Hat, Inc. |
3 | * Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | * Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
4 | 4 | * |
5 | 5 | * Author: Adam Jackson <ajax@nwnk.net> |
6 | 6 | * Maintainer: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
7 | 7 | */ |
8 | 8 | |
9 | 9 | #include <stdio.h> |
10 | #include <string.h> | |
11 | 10 | #include <math.h> |
12 | 11 | |
13 | 12 | #include "edid-decode.h" |
190 | 189 | |
191 | 190 | static const unsigned char edid_hdmi_mode_map[] = { 95, 94, 93, 98 }; |
192 | 191 | |
192 | unsigned char hdmi_vic_to_vic(unsigned char hdmi_vic) | |
193 | { | |
194 | if (hdmi_vic > 0 && hdmi_vic <= ARRAY_SIZE(edid_hdmi_mode_map)) | |
195 | return edid_hdmi_mode_map[hdmi_vic - 1]; | |
196 | return 0; | |
197 | } | |
198 | ||
193 | 199 | const struct timings *find_vic_id(unsigned char vic) |
194 | 200 | { |
195 | 201 | if (vic > 0 && vic <= ARRAY_SIZE(edid_cta_modes1)) |
208 | 214 | |
209 | 215 | static std::string audio_ext_format(unsigned char x) |
210 | 216 | { |
217 | if (x >= 1 && x <= 3) | |
218 | fail("Obsolete Audio Ext Format 0x%02x.\n", x); | |
211 | 219 | switch (x) { |
220 | case 1: return "HE AAC (Obsolete)"; | |
221 | case 2: return "HE AAC v2 (Obsolete)"; | |
222 | case 3: return "MPEG Surround (Obsolete)"; | |
212 | 223 | case 4: return "MPEG-4 HE AAC"; |
213 | 224 | case 5: return "MPEG-4 HE AAC v2"; |
214 | 225 | case 6: return "MPEG-4 AAC LC"; |
220 | 231 | case 13: return "L-PCM 3D Audio"; |
221 | 232 | default: break; |
222 | 233 | } |
223 | fail("Unknown Audio Ext Format 0x%02x\n", x); | |
234 | fail("Unknown Audio Ext Format 0x%02x.\n", x); | |
224 | 235 | return std::string("Unknown Audio Ext Format (") + utohex(x) + ")"; |
225 | 236 | } |
226 | 237 | |
232 | 243 | case 3: return "MPEG 1 (Layers 1 & 2)"; |
233 | 244 | case 4: return "MPEG 1 Layer 3 (MP3)"; |
234 | 245 | case 5: return "MPEG2 (multichannel)"; |
235 | case 6: return "AAC"; | |
246 | case 6: return "AAC LC"; | |
236 | 247 | case 7: return "DTS"; |
237 | 248 | case 8: return "ATRAC"; |
238 | 249 | case 9: return "One Bit Audio"; |
239 | case 10: return "Dolby Digital+"; | |
250 | case 10: return "Enhanced AC-3 (DD+)"; | |
240 | 251 | case 11: return "DTS-HD"; |
241 | 252 | case 12: return "MAT (MLP)"; |
242 | 253 | case 13: return "DST"; |
243 | 254 | case 14: return "WMA Pro"; |
244 | 255 | default: break; |
245 | 256 | } |
246 | fail("Unknown Audio Format 0x%02x\n", x); | |
257 | fail("Unknown Audio Format 0x%02x.\n", x); | |
247 | 258 | return std::string("Unknown Audio Format (") + utohex(x) + ")"; |
248 | 259 | } |
249 | 260 | |
258 | 269 | case 5: return "Level 5"; |
259 | 270 | default: break; |
260 | 271 | } |
261 | fail("Unknown MPEG-H 3D Audio Level 0x%02x\n", x); | |
272 | fail("Unknown MPEG-H 3D Audio Level 0x%02x.\n", x); | |
262 | 273 | return std::string("Unknown MPEG-H 3D Audio Level (") + utohex(x) + ")"; |
263 | 274 | } |
264 | 275 | |
265 | 276 | static void cta_audio_block(const unsigned char *x, unsigned length) |
266 | 277 | { |
267 | unsigned i, format, ext_format = 0; | |
278 | unsigned i, format, ext_format; | |
268 | 279 | |
269 | 280 | if (length % 3) { |
270 | fail("Broken CTA audio block length %d\n", length); | |
281 | fail("Broken CTA-861 audio block length %d.\n", length); | |
271 | 282 | return; |
272 | 283 | } |
273 | 284 | |
274 | 285 | for (i = 0; i < length; i += 3) { |
275 | 286 | format = (x[i] & 0x78) >> 3; |
276 | ext_format = (x[i + 2] & 0xf8) >> 3; | |
277 | 287 | if (format == 0) { |
278 | 288 | printf(" Reserved (0x00)\n"); |
279 | fail("Audio Format Code 0x00 is reserved\n"); | |
289 | fail("Audio Format Code 0x00 is reserved.\n"); | |
280 | 290 | continue; |
281 | 291 | } |
292 | if (format != 15) { | |
293 | ext_format = 0; | |
294 | printf(" %s:\n", audio_format(format).c_str()); | |
295 | } else { | |
296 | ext_format = (x[i + 2] & 0xf8) >> 3; | |
297 | printf(" %s:\n", audio_ext_format(ext_format).c_str()); | |
298 | } | |
282 | 299 | if (format != 15) |
283 | printf(" %s, max channels %u\n", audio_format(format).c_str(), | |
284 | (x[i] & 0x07)+1); | |
300 | printf(" Max channels: %u\n", (x[i] & 0x07)+1); | |
285 | 301 | else if (ext_format == 11) |
286 | printf(" %s, MPEG-H 3D Audio Level: %s\n", audio_ext_format(ext_format).c_str(), | |
302 | printf(" MPEG-H 3D Audio Level: %s\n", | |
287 | 303 | mpeg_h_3d_audio_level(x[i] & 0x07).c_str()); |
288 | 304 | else if (ext_format == 13) |
289 | printf(" %s, max channels %u\n", audio_ext_format(ext_format).c_str(), | |
305 | printf(" Max channels: %u\n", | |
290 | 306 | (((x[i + 1] & 0x80) >> 3) | ((x[i] & 0x80) >> 4) | |
291 | 307 | (x[i] & 0x07))+1); |
292 | 308 | else |
293 | printf(" %s, max channels %u\n", audio_ext_format(ext_format).c_str(), | |
294 | (x[i] & 0x07)+1); | |
309 | printf(" Max channels: %u\n", (x[i] & 0x07)+1); | |
310 | ||
295 | 311 | printf(" Supported sample rates (kHz):%s%s%s%s%s%s%s\n", |
296 | 312 | (x[i+1] & 0x40) ? " 192" : "", |
297 | 313 | (x[i+1] & 0x20) ? " 176.4" : "", |
310 | 326 | } else if (format == 10) { |
311 | 327 | // As specified by the "Dolby Audio and Dolby Atmos over HDMI" |
312 | 328 | // specification (v1.0). |
313 | if(x[i+2] & 1) | |
329 | if (x[i+2] & 1) | |
314 | 330 | printf(" Supports Joint Object Coding\n"); |
315 | if(x[i+2] & 2) | |
331 | if (x[i+2] & 2) | |
316 | 332 | printf(" Supports Joint Object Coding with ACMOD28\n"); |
333 | } else if (format == 12) { | |
334 | if (x[i+2] & 1) { | |
335 | printf(" Supports Dolby TrueHD, object audio PCM and channel-based PCM\n"); | |
336 | printf(" Hash calculation %srequired for object audio PCM or channel-based PCM\n", | |
337 | (x[i+2] & 2) ? "not " : ""); | |
338 | } else { | |
339 | printf(" Supports only Dolby TrueHD\n"); | |
340 | } | |
317 | 341 | } else if (format == 14) { |
318 | 342 | printf(" Profile: %u\n", x[i+2] & 7); |
343 | } else if (format >= 9 && format <= 13) { | |
344 | printf(" Audio Format Code dependent value: 0x%02x\n", x[i+2]); | |
319 | 345 | } else if (ext_format == 11 && (x[i+2] & 1)) { |
320 | 346 | printf(" Supports MPEG-H 3D Audio Low Complexity Profile\n"); |
321 | 347 | } else if ((ext_format >= 4 && ext_format <= 6) || |
332 | 358 | } |
333 | 359 | } |
334 | 360 | |
335 | void edid_state::cta_svd(const unsigned char *x, unsigned n, int for_ycbcr420) | |
336 | { | |
337 | static unsigned short vics[256][2]; | |
361 | void edid_state::cta_svd(const unsigned char *x, unsigned n, bool for_ycbcr420) | |
362 | { | |
338 | 363 | unsigned i; |
339 | 364 | |
340 | 365 | for (i = 0; i < n; i++) { |
358 | 383 | if (t) { |
359 | 384 | switch (vic) { |
360 | 385 | case 95: |
361 | supported_hdmi_vic_vsb_codes |= 1 << 0; | |
386 | cta.supported_hdmi_vic_vsb_codes |= 1 << 0; | |
362 | 387 | break; |
363 | 388 | case 94: |
364 | supported_hdmi_vic_vsb_codes |= 1 << 1; | |
389 | cta.supported_hdmi_vic_vsb_codes |= 1 << 1; | |
365 | 390 | break; |
366 | 391 | case 93: |
367 | supported_hdmi_vic_vsb_codes |= 1 << 2; | |
392 | cta.supported_hdmi_vic_vsb_codes |= 1 << 2; | |
368 | 393 | break; |
369 | 394 | case 98: |
370 | supported_hdmi_vic_vsb_codes |= 1 << 3; | |
395 | cta.supported_hdmi_vic_vsb_codes |= 1 << 3; | |
371 | 396 | break; |
372 | 397 | } |
373 | char suffix[16]; | |
374 | ||
375 | sprintf(suffix, "VIC %3u%s", vic, native ? ", native" : ""); | |
376 | print_timings(" ", t, suffix); | |
398 | bool first_svd = cta.first_svd && !for_ycbcr420; | |
399 | bool override_pref = first_svd && cta.first_svd_might_be_preferred; | |
400 | ||
401 | char type[16]; | |
402 | sprintf(type, "VIC %3u", vic); | |
403 | const char *flags = native ? "native" : ""; | |
404 | ||
405 | if (for_ycbcr420) { | |
406 | struct timings tmp = *t; | |
407 | tmp.ycbcr420 = true; | |
408 | print_timings(" ", &tmp, type, flags); | |
409 | } else { | |
410 | print_timings(" ", t, type, flags); | |
411 | } | |
412 | if (override_pref) { | |
413 | cta.preferred_timings.insert(cta.preferred_timings.begin(), | |
414 | timings_ext(*t, type, flags)); | |
415 | warn("VIC %u is the preferred timing, overriding the first detailed timings. Is this intended?\n", vic); | |
416 | } else if (first_svd) { | |
417 | cta.preferred_timings.push_back(timings_ext(*t, type, flags)); | |
418 | } | |
419 | if (first_svd) { | |
420 | cta.first_svd = false; | |
421 | cta.first_svd_might_be_preferred = false; | |
422 | } | |
423 | if (native) | |
424 | cta.native_timings.push_back(timings_ext(*t, type, flags)); | |
377 | 425 | } else { |
378 | 426 | printf(" Unknown (VIC %3u)\n", vic); |
379 | fail("Unknown VIC %u\n", vic); | |
427 | fail("Unknown VIC %u.\n", vic); | |
380 | 428 | } |
381 | 429 | |
382 | 430 | if (vic == 1 && !for_ycbcr420) |
383 | has_cta861_vic_1 = 1; | |
384 | if (++vics[vic][for_ycbcr420] == 2) | |
385 | fail("Duplicate %sVIC %u\n", for_ycbcr420 ? "YCbCr 4:2:0 " : "", vic); | |
386 | if (for_ycbcr420 && preparsed_has_vic[0][vic]) | |
387 | fail("YCbCr 4:2:0-only VIC %u is also a regular VIC\n", vic); | |
388 | } | |
389 | } | |
390 | ||
391 | void edid_state::print_vic_index(const char *prefix, unsigned idx, const char *suffix) | |
431 | cta.has_vic_1 = 1; | |
432 | if (++cta.vics[vic][for_ycbcr420] == 2) | |
433 | fail("Duplicate %sVIC %u.\n", for_ycbcr420 ? "YCbCr 4:2:0 " : "", vic); | |
434 | if (for_ycbcr420 && cta.preparsed_has_vic[0][vic]) | |
435 | fail("YCbCr 4:2:0-only VIC %u is also a regular VIC.\n", vic); | |
436 | } | |
437 | } | |
438 | ||
439 | void edid_state::print_vic_index(const char *prefix, unsigned idx, const char *suffix, bool ycbcr420) | |
392 | 440 | { |
393 | 441 | if (!suffix) |
394 | 442 | suffix = ""; |
395 | if (idx < preparsed_svds[0].size()) { | |
396 | unsigned char vic = preparsed_svds[0][idx]; | |
443 | if (idx < cta.preparsed_svds[0].size()) { | |
444 | unsigned char vic = cta.preparsed_svds[0][idx]; | |
397 | 445 | const struct timings *t = find_vic_id(vic); |
398 | char buf[256]; | |
399 | ||
400 | sprintf(buf, "VIC %3u%s%s", vic, *suffix ? ", " : "", suffix); | |
401 | ||
402 | if (t) | |
403 | print_timings(prefix, t, buf); | |
404 | else | |
405 | printf("%sUnknown (%s)\n", prefix, buf); | |
446 | char buf[16]; | |
447 | ||
448 | sprintf(buf, "VIC %3u", vic); | |
449 | ||
450 | if (t) { | |
451 | struct timings tmp = *t; | |
452 | tmp.ycbcr420 = ycbcr420; | |
453 | print_timings(prefix, &tmp, buf, suffix); | |
454 | } else { | |
455 | printf("%sUnknown (%s%s%s)\n", prefix, buf, | |
456 | *suffix ? ", " : "", suffix); | |
457 | } | |
406 | 458 | } else { |
407 | 459 | // Should not happen! |
408 | 460 | printf("%sSVD Index %u is out of range", prefix, idx + 1); |
424 | 476 | |
425 | 477 | if (memchk(x, length)) { |
426 | 478 | printf(" Empty Capability Map\n"); |
427 | fail("Empty Capability Map\n"); | |
479 | fail("Empty Capability Map.\n"); | |
428 | 480 | return; |
429 | 481 | } |
430 | 482 | |
436 | 488 | if (!(v & (1 << j))) |
437 | 489 | continue; |
438 | 490 | |
439 | print_vic_index(" ", i * 8 + j, ""); | |
491 | print_vic_index(" ", i * 8 + j, "", true); | |
440 | 492 | max_idx = i * 8 + j; |
441 | if (max_idx < preparsed_svds[0].size()) { | |
442 | unsigned vic = preparsed_svds[0][max_idx]; | |
443 | if (preparsed_has_vic[1][vic]) | |
444 | fail("VIC %u is also a YCbCr 4:2:0-only VIC\n", vic); | |
445 | } | |
446 | } | |
447 | } | |
448 | if (max_idx >= preparsed_svds[0].size()) | |
449 | fail("Max index %u > %u (#SVDs)\n", | |
450 | max_idx + 1, preparsed_svds[0].size()); | |
493 | if (max_idx < cta.preparsed_svds[0].size()) { | |
494 | unsigned vic = cta.preparsed_svds[0][max_idx]; | |
495 | if (cta.preparsed_has_vic[1][vic]) | |
496 | fail("VIC %u is also a YCbCr 4:2:0-only VIC.\n", vic); | |
497 | } | |
498 | } | |
499 | } | |
500 | if (max_idx >= cta.preparsed_svds[0].size()) | |
501 | fail("Max index %u > %u (#SVDs).\n", | |
502 | max_idx + 1, cta.preparsed_svds[0].size()); | |
451 | 503 | } |
452 | 504 | |
453 | 505 | void edid_state::cta_vfpdb(const unsigned char *x, unsigned length) |
454 | 506 | { |
455 | 507 | unsigned i; |
456 | 508 | |
509 | if (length == 0) { | |
510 | fail("Empty Data Block with length %u.\n", length); | |
511 | return; | |
512 | } | |
513 | cta.preferred_timings.clear(); | |
457 | 514 | for (i = 0; i < length; i++) { |
458 | 515 | unsigned char svr = x[i]; |
516 | char suffix[16]; | |
459 | 517 | |
460 | 518 | if ((svr > 0 && svr < 128) || (svr > 192 && svr < 254)) { |
461 | char suffix[16]; | |
462 | 519 | const struct timings *t; |
463 | 520 | unsigned char vic = svr; |
464 | 521 | |
467 | 524 | t = find_vic_id(vic); |
468 | 525 | if (t) { |
469 | 526 | print_timings(" ", t, suffix); |
527 | cta.preferred_timings.push_back(timings_ext(*t, suffix, "")); | |
470 | 528 | } else { |
471 | printf(" Unknown (VIC %3u)\n", vic); | |
472 | fail("Unknown VIC %u\n", vic); | |
473 | } | |
474 | ||
475 | } else if (svr > 128 && svr < 145) { | |
476 | printf(" DTD number %02u\n", svr - 128); | |
529 | printf(" %s: Unknown\n", suffix); | |
530 | fail("Unknown VIC %u.\n", vic); | |
531 | } | |
532 | ||
533 | } else if (svr >= 129 && svr <= 144) { | |
534 | sprintf(suffix, "DTD %3u", svr - 128); | |
535 | if (svr >= cta.preparse_total_dtds + 129) { | |
536 | printf(" %s: Invalid\n", suffix); | |
537 | fail("Invalid DTD %u.\n", svr - 128); | |
538 | } else { | |
539 | printf(" %s\n", suffix); | |
540 | cta.preferred_timings.push_back(timings_ext(svr, suffix)); | |
541 | } | |
542 | } else if (svr >= 145 && svr <= 160) { | |
543 | sprintf(suffix, "VTDB %3u", svr - 144); | |
544 | if (svr >= cta.preparse_total_vtdbs + 145) { | |
545 | printf(" %s: Invalid\n", suffix); | |
546 | fail("Invalid VTDB %u.\n", svr - 144); | |
547 | } else { | |
548 | printf(" %s\n", suffix); | |
549 | cta.preferred_timings.push_back(timings_ext(svr, suffix)); | |
550 | } | |
551 | } else if (svr == 254) { | |
552 | sprintf(suffix, "T8VTDB"); | |
553 | if (!cta.preparse_has_t8vtdb) { | |
554 | printf(" %s: Invalid\n", suffix); | |
555 | fail("Invalid T8VTDB.\n"); | |
556 | } else { | |
557 | printf(" %s\n", suffix); | |
558 | cta.preferred_timings.push_back(timings_ext(svr, suffix)); | |
559 | } | |
477 | 560 | } |
478 | 561 | } |
479 | 562 | } |
491 | 574 | { |
492 | 575 | unsigned len_vic, len_3d; |
493 | 576 | |
494 | printf(" (HDMI)\n"); | |
495 | printf(" Source physical address %u.%u.%u.%u\n", x[3] >> 4, x[3] & 0x0f, | |
577 | if (length < 4) { | |
578 | fail("Empty Data Block with length %u.\n", length); | |
579 | return; | |
580 | } | |
581 | printf(" Source physical address: %u.%u.%u.%u\n", x[3] >> 4, x[3] & 0x0f, | |
496 | 582 | x[4] >> 4, x[4] & 0x0f); |
497 | 583 | |
498 | 584 | if (length < 6) |
517 | 603 | |
518 | 604 | printf(" Maximum TMDS clock: %u MHz\n", x[6] * 5); |
519 | 605 | if (x[6] * 5 > 340) |
520 | fail("HDMI VSDB Max TMDS rate is > 340\n"); | |
606 | fail("HDMI VSDB Max TMDS rate is > 340.\n"); | |
521 | 607 | |
522 | 608 | if (length < 8) |
523 | 609 | return; |
575 | 661 | break; |
576 | 662 | case 0x18: |
577 | 663 | printf(" Base EDID image size is in units of 5 cm\n"); |
578 | max_display_width_mm *= 5; | |
579 | max_display_height_mm *= 5; | |
664 | base.max_display_width_mm *= 5; | |
665 | base.max_display_height_mm *= 5; | |
580 | 666 | printf(" Recalculated image size: %u cm x %u cm\n", |
581 | max_display_width_mm / 10, max_display_height_mm / 10); | |
667 | base.max_display_width_mm / 10, base.max_display_height_mm / 10); | |
582 | 668 | break; |
583 | 669 | } |
584 | 670 | b++; |
596 | 682 | |
597 | 683 | if (vic && vic <= ARRAY_SIZE(edid_hdmi_mode_map)) { |
598 | 684 | std::string suffix = "HDMI VIC " + std::to_string(vic); |
599 | supported_hdmi_vic_codes |= 1 << (vic - 1); | |
685 | cta.supported_hdmi_vic_codes |= 1 << (vic - 1); | |
600 | 686 | t = find_vic_id(edid_hdmi_mode_map[vic - 1]); |
601 | 687 | print_timings(" ", t, suffix.c_str()); |
602 | 688 | } else { |
603 | 689 | printf(" Unknown (HDMI VIC %u)\n", vic); |
604 | fail("Unknown HDMI VIC %u\n", vic); | |
690 | fail("Unknown HDMI VIC %u.\n", vic); | |
605 | 691 | } |
606 | 692 | } |
607 | 693 | |
608 | 694 | b += len_vic; |
609 | 695 | } |
610 | 696 | |
611 | if (len_3d) { | |
612 | if (formats) { | |
613 | /* 3D_Structure_ALL_15..8 */ | |
614 | if (x[b] & 0x80) | |
615 | printf(" 3D: Side-by-side (half, quincunx)\n"); | |
616 | if (x[b] & 0x01) | |
617 | printf(" 3D: Side-by-side (half, horizontal)\n"); | |
618 | /* 3D_Structure_ALL_7..0 */ | |
697 | if (!len_3d) | |
698 | return; | |
699 | ||
700 | if (formats) { | |
701 | /* 3D_Structure_ALL_15..8 */ | |
702 | if (x[b] & 0x80) | |
703 | printf(" 3D: Side-by-side (half, quincunx)\n"); | |
704 | if (x[b] & 0x01) | |
705 | printf(" 3D: Side-by-side (half, horizontal)\n"); | |
706 | /* 3D_Structure_ALL_7..0 */ | |
707 | b++; | |
708 | if (x[b] & 0x40) | |
709 | printf(" 3D: Top-and-bottom\n"); | |
710 | if (x[b] & 0x20) | |
711 | printf(" 3D: L + depth + gfx + gfx-depth\n"); | |
712 | if (x[b] & 0x10) | |
713 | printf(" 3D: L + depth\n"); | |
714 | if (x[b] & 0x08) | |
715 | printf(" 3D: Side-by-side (full)\n"); | |
716 | if (x[b] & 0x04) | |
717 | printf(" 3D: Line-alternative\n"); | |
718 | if (x[b] & 0x02) | |
719 | printf(" 3D: Field-alternative\n"); | |
720 | if (x[b] & 0x01) | |
721 | printf(" 3D: Frame-packing\n"); | |
722 | b++; | |
723 | len_3d -= 2; | |
724 | } | |
725 | ||
726 | if (mask) { | |
727 | int max_idx = -1; | |
728 | unsigned i; | |
729 | ||
730 | printf(" 3D VIC indices that support these capabilities:\n"); | |
731 | /* worst bit ordering ever */ | |
732 | for (i = 0; i < 8; i++) | |
733 | if (x[b + 1] & (1 << i)) { | |
734 | print_vic_index(" ", i, ""); | |
735 | max_idx = i; | |
736 | } | |
737 | for (i = 0; i < 8; i++) | |
738 | if (x[b] & (1 << i)) { | |
739 | print_vic_index(" ", i + 8, ""); | |
740 | max_idx = i + 8; | |
741 | } | |
742 | b += 2; | |
743 | len_3d -= 2; | |
744 | if (max_idx >= (int)cta.preparsed_svds[0].size()) | |
745 | fail("HDMI 3D VIC indices max index %d > %u (#SVDs).\n", | |
746 | max_idx + 1, cta.preparsed_svds[0].size()); | |
747 | } | |
748 | ||
749 | /* | |
750 | * list of nibbles: | |
751 | * 2D_VIC_Order_X | |
752 | * 3D_Structure_X | |
753 | * (optionally: 3D_Detail_X and reserved) | |
754 | */ | |
755 | if (!len_3d) | |
756 | return; | |
757 | ||
758 | unsigned end = b + len_3d; | |
759 | int max_idx = -1; | |
760 | ||
761 | printf(" 3D VIC indices with specific capabilities:\n"); | |
762 | while (b < end) { | |
763 | unsigned char idx = x[b] >> 4; | |
764 | std::string s; | |
765 | ||
766 | if (idx > max_idx) | |
767 | max_idx = idx; | |
768 | switch (x[b] & 0x0f) { | |
769 | case 0: s = "frame packing"; break; | |
770 | case 1: s = "field alternative"; break; | |
771 | case 2: s = "line alternative"; break; | |
772 | case 3: s = "side-by-side (full)"; break; | |
773 | case 4: s = "L + depth"; break; | |
774 | case 5: s = "L + depth + gfx + gfx-depth"; break; | |
775 | case 6: s = "top-and-bottom"; break; | |
776 | case 8: | |
777 | s = "side-by-side"; | |
778 | switch (x[b + 1] >> 4) { | |
779 | case 0x00: s += ", any subsampling"; break; | |
780 | case 0x01: s += ", horizontal"; break; | |
781 | case 0x02: case 0x03: case 0x04: case 0x05: | |
782 | s += ", not in use"; | |
783 | fail("not-in-use 3D_Detail_X value 0x%02x.\n", | |
784 | x[b + 1] >> 4); | |
785 | break; | |
786 | case 0x06: s += ", all quincunx combinations"; break; | |
787 | case 0x07: s += ", quincunx odd/left, odd/right"; break; | |
788 | case 0x08: s += ", quincunx odd/left, even/right"; break; | |
789 | case 0x09: s += ", quincunx even/left, odd/right"; break; | |
790 | case 0x0a: s += ", quincunx even/left, even/right"; break; | |
791 | default: | |
792 | s += ", reserved"; | |
793 | fail("reserved 3D_Detail_X value 0x%02x.\n", | |
794 | x[b + 1] >> 4); | |
795 | break; | |
796 | } | |
797 | break; | |
798 | default: | |
799 | s = "unknown ("; | |
800 | s += utohex(x[b] & 0x0f) + ")"; | |
801 | fail("Unknown 3D_Structure_X value 0x%02x.\n", x[b] & 0x0f); | |
802 | break; | |
803 | } | |
804 | print_vic_index(" ", idx, s.c_str()); | |
805 | if ((x[b] & 0x0f) >= 8) | |
619 | 806 | b++; |
620 | if (x[b] & 0x40) | |
621 | printf(" 3D: Top-and-bottom\n"); | |
622 | if (x[b] & 0x20) | |
623 | printf(" 3D: L + depth + gfx + gfx-depth\n"); | |
624 | if (x[b] & 0x10) | |
625 | printf(" 3D: L + depth\n"); | |
626 | if (x[b] & 0x08) | |
627 | printf(" 3D: Side-by-side (full)\n"); | |
628 | if (x[b] & 0x04) | |
629 | printf(" 3D: Line-alternative\n"); | |
630 | if (x[b] & 0x02) | |
631 | printf(" 3D: Field-alternative\n"); | |
632 | if (x[b] & 0x01) | |
633 | printf(" 3D: Frame-packing\n"); | |
634 | b++; | |
635 | len_3d -= 2; | |
636 | } | |
637 | ||
638 | if (mask) { | |
639 | int max_idx = -1; | |
640 | unsigned i; | |
641 | ||
642 | printf(" 3D VIC indices that support these capabilities:\n"); | |
643 | /* worst bit ordering ever */ | |
644 | for (i = 0; i < 8; i++) | |
645 | if (x[b + 1] & (1 << i)) { | |
646 | print_vic_index(" ", i, ""); | |
647 | max_idx = i; | |
648 | } | |
649 | for (i = 0; i < 8; i++) | |
650 | if (x[b] & (1 << i)) { | |
651 | print_vic_index(" ", i + 8, ""); | |
652 | max_idx = i + 8; | |
653 | } | |
654 | b += 2; | |
655 | len_3d -= 2; | |
656 | if (max_idx >= (int)preparsed_svds[0].size()) | |
657 | fail("HDMI 3D VIC indices max index %d > %u (#SVDs)\n", | |
658 | max_idx + 1, preparsed_svds[0].size()); | |
659 | } | |
660 | ||
661 | /* | |
662 | * list of nibbles: | |
663 | * 2D_VIC_Order_X | |
664 | * 3D_Structure_X | |
665 | * (optionally: 3D_Detail_X and reserved) | |
666 | */ | |
667 | if (len_3d > 0) { | |
668 | unsigned end = b + len_3d; | |
669 | int max_idx = -1; | |
670 | ||
671 | printf(" 3D VIC indices with specific capabilities:\n"); | |
672 | while (b < end) { | |
673 | unsigned char idx = x[b] >> 4; | |
674 | std::string s; | |
675 | ||
676 | if (idx > max_idx) | |
677 | max_idx = idx; | |
678 | switch (x[b] & 0x0f) { | |
679 | case 0: s = "frame packing"; break; | |
680 | case 1: s = "field alternative"; break; | |
681 | case 2: s = "line alternative"; break; | |
682 | case 3: s = "side-by-side (full)"; break; | |
683 | case 4: s = "L + depth"; break; | |
684 | case 5: s = "L + depth + gfx + gfx-depth"; break; | |
685 | case 6: s = "top-and-bottom"; break; | |
686 | case 8: | |
687 | s = "side-by-side"; | |
688 | switch (x[b + 1] >> 4) { | |
689 | case 0x00: break; | |
690 | case 0x01: s += ", horizontal"; break; | |
691 | case 0x02: case 0x03: case 0x04: case 0x05: | |
692 | s += ", not in use"; | |
693 | fail("not-in-use 3D_Detail_X value 0x%02x\n", | |
694 | x[b + 1] >> 4); | |
695 | break; | |
696 | case 0x06: s += ", all quincunx combinations"; break; | |
697 | case 0x07: s += ", quincunx odd/left, odd/right"; break; | |
698 | case 0x08: s += ", quincunx odd/left, even/right"; break; | |
699 | case 0x09: s += ", quincunx even/left, odd/right"; break; | |
700 | case 0x0a: s += ", quincunx even/left, even/right"; break; | |
701 | default: | |
702 | s += ", reserved"; | |
703 | fail("reserved 3D_Detail_X value 0x%02x\n", | |
704 | x[b + 1] >> 4); | |
705 | break; | |
706 | } | |
707 | break; | |
708 | default: | |
709 | s = "unknown ("; | |
710 | s += utohex(x[b] & 0x0f) + ")"; | |
711 | fail("Unknown 3D_Structure_X value 0x%02x\n", x[b] & 0x0f); | |
712 | break; | |
713 | } | |
714 | print_vic_index(" ", idx, s.c_str()); | |
715 | if ((x[b] & 0x0f) >= 8) | |
716 | b++; | |
717 | b++; | |
718 | } | |
719 | if (max_idx >= (int)preparsed_svds[0].size()) | |
720 | fail("HDMI 2D VIC indices max index %d > %u (#SVDs)\n", | |
721 | max_idx + 1, preparsed_svds[0].size()); | |
722 | } | |
723 | } | |
807 | b++; | |
808 | } | |
809 | if (max_idx >= (int)cta.preparsed_svds[0].size()) | |
810 | fail("HDMI 2D VIC indices max index %d > %u (#SVDs).\n", | |
811 | max_idx + 1, cta.preparsed_svds[0].size()); | |
724 | 812 | } |
725 | 813 | |
726 | 814 | static const char *max_frl_rates[] = { |
748 | 836 | { |
749 | 837 | printf(" EDID Extension Block Count: %u\n", x[0]); |
750 | 838 | if (length != 1 || x[0] == 0) |
751 | fail("Block is too long or reports a 0 block count\n"); | |
839 | fail("Block is too long or reports a 0 block count.\n"); | |
752 | 840 | } |
753 | 841 | |
754 | 842 | static void cta_hf_scdb(const unsigned char *x, unsigned length) |
758 | 846 | printf(" Version: %u\n", x[0]); |
759 | 847 | if (rate) { |
760 | 848 | printf(" Maximum TMDS Character Rate: %u MHz\n", rate); |
761 | if ((rate && rate <= 340) || rate > 600) | |
762 | fail("Max TMDS rate is > 0 and <= 340 or > 600\n"); | |
849 | if (rate <= 340 || rate > 600) | |
850 | fail("Max TMDS rate is > 0 and <= 340 or > 600.\n"); | |
763 | 851 | } |
764 | 852 | if (x[2] & 0x80) |
765 | 853 | printf(" SCDC Present\n"); |
783 | 871 | printf("%s\n", max_frl_rates[max_frl_rate]); |
784 | 872 | } else { |
785 | 873 | printf("Unknown (0x%02x)\n", max_frl_rate); |
786 | fail("Unknown Max Fixed Rate Link (0x%02x)\n", max_frl_rate); | |
874 | fail("Unknown Max Fixed Rate Link (0x%02x).\n", max_frl_rate); | |
787 | 875 | } |
788 | 876 | if (max_frl_rate == 1 && rate < 300) |
789 | fail("Max Fixed Rate Link is 1, but Max TMDS rate < 300\n"); | |
877 | fail("Max Fixed Rate Link is 1, but Max TMDS rate < 300.\n"); | |
790 | 878 | else if (max_frl_rate >= 2 && rate < 600) |
791 | fail("Max Fixed Rate Link is >= 2, but Max TMDS rate < 600\n"); | |
879 | fail("Max Fixed Rate Link is >= 2, but Max TMDS rate < 600.\n"); | |
792 | 880 | } |
793 | 881 | if (x[3] & 0x08) |
794 | 882 | printf(" Supports UHD VIC\n"); |
799 | 887 | if (x[3] & 0x01) |
800 | 888 | printf(" Supports 10-bits/component Deep Color 4:2:0 Pixel Encoding\n"); |
801 | 889 | |
802 | if (length <= 7) | |
890 | if (length <= 4) | |
803 | 891 | return; |
804 | 892 | |
805 | 893 | if (x[4] & 0x20) |
815 | 903 | if (x[4] & 0x01) |
816 | 904 | printf(" Supports a FAPA in blanking after first active video line\n"); |
817 | 905 | |
818 | if (length <= 8) | |
819 | return; | |
820 | ||
821 | printf(" VRRmin: %d Hz\n", x[8] & 0x3f); | |
822 | printf(" VRRmax: %d Hz\n", (x[8] & 0xc0) << 2 | x[9]); | |
823 | ||
824 | if (length <= 10) | |
906 | if (length <= 5) | |
907 | return; | |
908 | ||
909 | printf(" VRRmin: %d Hz\n", x[5] & 0x3f); | |
910 | printf(" VRRmax: %d Hz\n", (x[5] & 0xc0) << 2 | x[6]); | |
911 | ||
912 | if (length <= 7) | |
825 | 913 | return; |
826 | 914 | |
827 | 915 | if (x[7] & 0x80) |
844 | 932 | printf("%s\n", dsc_max_slices[max_slices]); |
845 | 933 | } else { |
846 | 934 | printf("Unknown (0x%02x)\n", max_slices); |
847 | fail("Unknown DSC Max Slices (0x%02x)\n", max_slices); | |
935 | fail("Unknown DSC Max Slices (0x%02x).\n", max_slices); | |
848 | 936 | } |
849 | 937 | } |
850 | 938 | if (x[8] & 0xf0) { |
855 | 943 | printf("%s\n", max_frl_rates[max_frl_rate]); |
856 | 944 | } else { |
857 | 945 | printf("Unknown (0x%02x)\n", max_frl_rate); |
858 | fail("Unknown DSC Max Fixed Rate Link (0x%02x)\n", max_frl_rate); | |
946 | fail("Unknown DSC Max Fixed Rate Link (0x%02x).\n", max_frl_rate); | |
859 | 947 | } |
860 | 948 | } |
861 | 949 | if (x[9] & 0x3f) |
866 | 954 | static void cta_hdr10plus(const unsigned char *x, unsigned length) |
867 | 955 | { |
868 | 956 | printf(" Application Version: %u", x[0]); |
869 | hex_block(" ", x + 1, length - 1); | |
957 | if (length > 1) | |
958 | hex_block(" ", x + 1, length - 1); | |
959 | else | |
960 | printf("\n"); | |
961 | } | |
962 | ||
963 | static void cta_dolby_video(const unsigned char *x, unsigned length) | |
964 | { | |
965 | unsigned char version = (x[0] >> 5) & 0x07; | |
966 | ||
967 | printf(" Version: %u (%u bytes)\n", version, length + 5); | |
968 | if (x[0] & 0x01) | |
969 | printf(" Supports YUV422 12 bit\n"); | |
970 | ||
971 | if (version == 0) { | |
972 | if (x[0] & 0x02) | |
973 | printf(" Supports 2160p60\n"); | |
974 | if (x[0] & 0x04) | |
975 | printf(" Supports global dimming\n"); | |
976 | unsigned char dm_version = x[16]; | |
977 | printf(" DM Version: %u.%u\n", dm_version >> 4, dm_version & 0xf); | |
978 | printf(" Target Min PQ: %u\n", (x[14] << 4) | (x[13] >> 4)); | |
979 | printf(" Target Max PQ: %u\n", (x[15] << 4) | (x[13] & 0xf)); | |
980 | printf(" Rx, Ry: %.8f, %.8f\n", | |
981 | ((x[1] >> 4) | (x[2] << 4)) / 4096.0, | |
982 | ((x[1] & 0xf) | (x[3] << 4)) / 4096.0); | |
983 | printf(" Gx, Gy: %.8f, %.8f\n", | |
984 | ((x[4] >> 4) | (x[5] << 4)) / 4096.0, | |
985 | ((x[4] & 0xf) | (x[6] << 4)) / 4096.0); | |
986 | printf(" Bx, By: %.8f, %.8f\n", | |
987 | ((x[7] >> 4) | (x[8] << 4)) / 4096.0, | |
988 | ((x[7] & 0xf) | (x[9] << 4)) / 4096.0); | |
989 | printf(" Wx, Wy: %.8f, %.8f\n", | |
990 | ((x[10] >> 4) | (x[11] << 4)) / 4096.0, | |
991 | ((x[10] & 0xf) | (x[12] << 4)) / 4096.0); | |
992 | return; | |
993 | } | |
994 | ||
995 | if (version == 1) { | |
996 | if (x[0] & 0x02) | |
997 | printf(" Supports 2160p60\n"); | |
998 | if (x[1] & 0x01) | |
999 | printf(" Supports global dimming\n"); | |
1000 | unsigned char dm_version = (x[0] >> 2) & 0x07; | |
1001 | printf(" DM Version: %u.x\n", dm_version + 2); | |
1002 | printf(" Colorimetry: %s\n", (x[2] & 0x01) ? "P3-D65" : "ITU-R BT.709"); | |
1003 | printf(" Low Latency: %s\n", (x[3] & 0x01) ? "Standard + Low Latency" : "Only Standard"); | |
1004 | printf(" Target Max Luminance: %u cd/m^2\n", 100 + (x[1] >> 1) * 50); | |
1005 | double lm = (x[2] >> 1) / 127.0; | |
1006 | printf(" Target Min Luminance: %.8f cd/m^2\n", lm * lm); | |
1007 | if (length == 10) { | |
1008 | printf(" Rx, Ry: %.8f, %.8f\n", x[4] / 256.0, x[5] / 256.0); | |
1009 | printf(" Gx, Gy: %.8f, %.8f\n", x[6] / 256.0, x[7] / 256.0); | |
1010 | printf(" Bx, By: %.8f, %.8f\n", x[8] / 256.0, x[9] / 256.0); | |
1011 | } else { | |
1012 | double xmin = 0.625; | |
1013 | double xstep = (0.74609375 - xmin) / 31.0; | |
1014 | double ymin = 0.25; | |
1015 | double ystep = (0.37109375 - ymin) / 31.0; | |
1016 | ||
1017 | printf(" Unique Rx, Ry: %.8f, %.8f\n", | |
1018 | xmin + xstep * (x[6] >> 3), | |
1019 | ymin + ystep * (((x[6] & 0x7) << 2) | (x[4] & 0x01) | ((x[5] & 0x01) << 1))); | |
1020 | xstep = 0.49609375 / 127.0; | |
1021 | ymin = 0.5; | |
1022 | ystep = (0.99609375 - ymin) / 127.0; | |
1023 | printf(" Unique Gx, Gy: %.8f, %.8f\n", | |
1024 | xstep * (x[4] >> 1), ymin + ystep * (x[5] >> 1)); | |
1025 | xmin = 0.125; | |
1026 | xstep = (0.15234375 - xmin) / 7.0; | |
1027 | ymin = 0.03125; | |
1028 | ystep = (0.05859375 - ymin) / 7.0; | |
1029 | printf(" Unique Bx, By: %.8f, %.8f\n", | |
1030 | xmin + xstep * (x[3] >> 5), | |
1031 | ymin + ystep * ((x[3] >> 2) & 0x07)); | |
1032 | } | |
1033 | return; | |
1034 | } | |
1035 | ||
1036 | if (version == 2) { | |
1037 | if (x[0] & 0x02) | |
1038 | printf(" Supports Backlight Control\n"); | |
1039 | if (x[1] & 0x04) | |
1040 | printf(" Supports global dimming\n"); | |
1041 | unsigned char dm_version = (x[0] >> 2) & 0x07; | |
1042 | printf(" DM Version: %u.x\n", dm_version + 2); | |
1043 | printf(" Backlt Min Luma: %u cd/m^2\n", 25 + (x[1] & 0x03) * 25); | |
1044 | printf(" Interface: "); | |
1045 | switch (x[2] & 0x03) { | |
1046 | case 0: printf("Low-Latency\n"); break; | |
1047 | case 1: printf("Low-Latency + Low-Latency-HDMI\n"); break; | |
1048 | case 2: printf("Standard + Low-Latency\n"); break; | |
1049 | case 3: printf("Standard + Low-Latency + Low-Latency-HDMI\n"); break; | |
1050 | } | |
1051 | printf(" Supports 10b 12b 444: "); | |
1052 | switch ((x[3] & 0x01) << 1 | (x[4] & 0x01)) { | |
1053 | case 0: printf("Not supported\n"); break; | |
1054 | case 1: printf("10 bit\n"); break; | |
1055 | case 2: printf("12 bit\n"); break; | |
1056 | case 3: printf("Reserved\n"); break; | |
1057 | } | |
1058 | printf(" Target Min PQ v2: %u\n", 20 * (x[1] >> 3)); | |
1059 | printf(" Target Max PQ v2: %u\n", 2055 + 65 * (x[2] >> 3)); | |
1060 | ||
1061 | double xmin = 0.625; | |
1062 | double xstep = (0.74609375 - xmin) / 31.0; | |
1063 | double ymin = 0.25; | |
1064 | double ystep = (0.37109375 - ymin) / 31.0; | |
1065 | ||
1066 | printf(" Unique Rx, Ry: %.8f, %.8f\n", | |
1067 | xmin + xstep * (x[5] >> 3), | |
1068 | ymin + ystep * (x[6] >> 3)); | |
1069 | xstep = 0.49609375 / 127.0; | |
1070 | ymin = 0.5; | |
1071 | ystep = (0.99609375 - ymin) / 127.0; | |
1072 | printf(" Unique Gx, Gy: %.8f, %.8f\n", | |
1073 | xstep * (x[3] >> 1), ymin + ystep * (x[4] >> 1)); | |
1074 | xmin = 0.125; | |
1075 | xstep = (0.15234375 - xmin) / 7.0; | |
1076 | ymin = 0.03125; | |
1077 | ystep = (0.05859375 - ymin) / 7.0; | |
1078 | printf(" Unique Bx, By: %.8f, %.8f\n", | |
1079 | xmin + xstep * (x[5] & 0x07), | |
1080 | ymin + ystep * (x[6] & 0x07)); | |
1081 | } | |
1082 | } | |
1083 | ||
1084 | static void cta_dolby_audio(const unsigned char *x, unsigned length) | |
1085 | { | |
1086 | unsigned char version = 1 + (x[0] & 0x07); | |
1087 | ||
1088 | printf(" Version: %u (%u bytes)\n", version, length + 5); | |
1089 | if (x[0] & 0x80) | |
1090 | printf(" Headphone playback only\n"); | |
1091 | if (x[0] & 0x40) | |
1092 | printf(" Height speaker zone present\n"); | |
1093 | if (x[0] & 0x20) | |
1094 | printf(" Surround speaker zone present\n"); | |
1095 | if (x[0] & 0x10) | |
1096 | printf(" Center speaker zone present\n"); | |
1097 | if (x[1] & 0x01) | |
1098 | printf(" Supports Dolby MAT PCM decoding at 48 kHz only, does not support TrueHD\n"); | |
870 | 1099 | } |
871 | 1100 | |
872 | 1101 | static const char *speaker_map[] = { |
898 | 1127 | unsigned sad; |
899 | 1128 | unsigned i; |
900 | 1129 | |
901 | if (length < 3) | |
902 | return; | |
1130 | if (length < 3) { | |
1131 | fail("Empty Data Block with length %u.\n", length); | |
1132 | return; | |
1133 | } | |
903 | 1134 | |
904 | 1135 | sad = ((x[2] << 16) | (x[1] << 8) | x[0]); |
905 | ||
906 | printf(" Speaker map:\n"); | |
907 | 1136 | |
908 | 1137 | for (i = 0; i < ARRAY_SIZE(speaker_map); i++) { |
909 | 1138 | if ((sad >> i) & 1) |
910 | printf(" %s\n", speaker_map[i]); | |
911 | } | |
1139 | printf(" %s\n", speaker_map[i]); | |
1140 | } | |
1141 | } | |
1142 | ||
1143 | static void cta_vesa_dtcdb(const unsigned char *x, unsigned length) | |
1144 | { | |
1145 | if (length != 7 && length != 15 && length != 31) { | |
1146 | fail("Invalid length %u.\n", length); | |
1147 | return; | |
1148 | } | |
1149 | ||
1150 | switch (x[0] >> 6) { | |
1151 | case 0: printf(" White"); break; | |
1152 | case 1: printf(" Red"); break; | |
1153 | case 2: printf(" Green"); break; | |
1154 | case 3: printf(" Blue"); break; | |
1155 | } | |
1156 | unsigned v = x[0] & 0x3f; | |
1157 | printf(" transfer characteristics: %u", v); | |
1158 | for (unsigned i = 1; i < length; i++) | |
1159 | printf(" %u", v += x[i]); | |
1160 | printf(" 1023\n"); | |
1161 | } | |
1162 | ||
1163 | static void cta_vesa_vdddb(const unsigned char *x, unsigned length) | |
1164 | { | |
1165 | if (length != 30) { | |
1166 | fail("Invalid length %u.\n", length); | |
1167 | return; | |
1168 | } | |
1169 | ||
1170 | printf(" Interface Type: "); | |
1171 | unsigned char v = x[0]; | |
1172 | switch (v >> 4) { | |
1173 | case 0: printf("Analog ("); | |
1174 | switch (v & 0xf) { | |
1175 | case 0: printf("15HD/VGA"); break; | |
1176 | case 1: printf("VESA NAVI-V (15HD)"); break; | |
1177 | case 2: printf("VESA NAVI-D"); break; | |
1178 | default: printf("Reserved"); break; | |
1179 | } | |
1180 | printf(")\n"); | |
1181 | break; | |
1182 | case 1: printf("LVDS %u lanes", v & 0xf); break; | |
1183 | case 2: printf("RSDS %u lanes", v & 0xf); break; | |
1184 | case 3: printf("DVI-D %u channels", v & 0xf); break; | |
1185 | case 4: printf("DVI-I analog"); break; | |
1186 | case 5: printf("DVI-I digital %u channels", v & 0xf); break; | |
1187 | case 6: printf("HDMI-A"); break; | |
1188 | case 7: printf("HDMI-B"); break; | |
1189 | case 8: printf("MDDI %u channels", v & 0xf); break; | |
1190 | case 9: printf("DisplayPort %u channels", v & 0xf); break; | |
1191 | case 10: printf("IEEE-1394"); break; | |
1192 | case 11: printf("M1 analog"); break; | |
1193 | case 12: printf("M1 digital %u channels", v & 0xf); break; | |
1194 | default: printf("Reserved"); break; | |
1195 | } | |
1196 | printf("\n"); | |
1197 | ||
1198 | printf(" Interface Standard Version: %u.%u\n", x[1] >> 4, x[1] & 0xf); | |
1199 | printf(" Content Protection Support: "); | |
1200 | switch (x[2]) { | |
1201 | case 0: printf("None\n"); break; | |
1202 | case 1: printf("HDCP\n"); break; | |
1203 | case 2: printf("DTCP\n"); break; | |
1204 | case 3: printf("DPCP\n"); break; | |
1205 | default: printf("Reserved\n"); break; | |
1206 | } | |
1207 | ||
1208 | printf(" Minimum Clock Frequency: %u MHz\n", x[3] >> 2); | |
1209 | printf(" Maximum Clock Frequency: %u MHz\n", ((x[3] & 0x03) << 8) | x[4]); | |
1210 | printf(" Device Native Pixel Format: %ux%u\n", | |
1211 | x[5] | (x[6] << 8), x[7] | (x[8] << 8)); | |
1212 | printf(" Aspect Ratio: %.2f\n", (100 + x[9]) / 100.0); | |
1213 | v = x[0x0a]; | |
1214 | printf(" Default Orientation: "); | |
1215 | switch ((v & 0xc0) >> 6) { | |
1216 | case 0x00: printf("Landscape\n"); break; | |
1217 | case 0x01: printf("Portrait\n"); break; | |
1218 | case 0x02: printf("Not Fixed\n"); break; | |
1219 | case 0x03: printf("Undefined\n"); break; | |
1220 | } | |
1221 | printf(" Rotation Capability: "); | |
1222 | switch ((v & 0x30) >> 4) { | |
1223 | case 0x00: printf("None\n"); break; | |
1224 | case 0x01: printf("Can rotate 90 degrees clockwise\n"); break; | |
1225 | case 0x02: printf("Can rotate 90 degrees counterclockwise\n"); break; | |
1226 | case 0x03: printf("Can rotate 90 degrees in either direction)\n"); break; | |
1227 | } | |
1228 | printf(" Zero Pixel Location: "); | |
1229 | switch ((v & 0x0c) >> 2) { | |
1230 | case 0x00: printf("Upper Left\n"); break; | |
1231 | case 0x01: printf("Upper Right\n"); break; | |
1232 | case 0x02: printf("Lower Left\n"); break; | |
1233 | case 0x03: printf("Lower Right\n"); break; | |
1234 | } | |
1235 | printf(" Scan Direction: "); | |
1236 | switch (v & 0x03) { | |
1237 | case 0x00: printf("Not defined\n"); break; | |
1238 | case 0x01: printf("Fast Scan is on the Major (Long) Axis and Slow Scan is on the Minor Axis\n"); break; | |
1239 | case 0x02: printf("Fast Scan is on the Minor (Short) Axis and Slow Scan is on the Major Axis\n"); break; | |
1240 | case 0x03: printf("Reserved\n"); | |
1241 | fail("Scan Direction used the reserved value 0x03.\n"); | |
1242 | break; | |
1243 | } | |
1244 | printf(" Subpixel Information: "); | |
1245 | switch (x[0x0b]) { | |
1246 | case 0x00: printf("Not defined\n"); break; | |
1247 | case 0x01: printf("RGB vertical stripes\n"); break; | |
1248 | case 0x02: printf("RGB horizontal stripes\n"); break; | |
1249 | case 0x03: printf("Vertical stripes using primary order\n"); break; | |
1250 | case 0x04: printf("Horizontal stripes using primary order\n"); break; | |
1251 | case 0x05: printf("Quad sub-pixels, red at top left\n"); break; | |
1252 | case 0x06: printf("Quad sub-pixels, red at bottom left\n"); break; | |
1253 | case 0x07: printf("Delta (triad) RGB sub-pixels\n"); break; | |
1254 | case 0x08: printf("Mosaic\n"); break; | |
1255 | case 0x09: printf("Quad sub-pixels, RGB + 1 additional color\n"); break; | |
1256 | case 0x0a: printf("Five sub-pixels, RGB + 2 additional colors\n"); break; | |
1257 | case 0x0b: printf("Six sub-pixels, RGB + 3 additional colors\n"); break; | |
1258 | case 0x0c: printf("Clairvoyante, Inc. PenTile Matrix (tm) layout\n"); break; | |
1259 | default: printf("Reserved\n"); break; | |
1260 | } | |
1261 | printf(" Horizontal and vertical dot/pixel pitch: %.2f x %.2f mm\n", | |
1262 | (double)(x[0x0c]) / 100.0, (double)(x[0x0d]) / 100.0); | |
1263 | v = x[0x0e]; | |
1264 | printf(" Dithering: "); | |
1265 | switch (v >> 6) { | |
1266 | case 0: printf("None\n"); break; | |
1267 | case 1: printf("Spatial\n"); break; | |
1268 | case 2: printf("Temporal\n"); break; | |
1269 | case 3: printf("Spatial and Temporal\n"); break; | |
1270 | } | |
1271 | printf(" Direct Drive: %s\n", (v & 0x20) ? "Yes" : "No"); | |
1272 | printf(" Overdrive %srecommended\n", (v & 0x10) ? "not " : ""); | |
1273 | printf(" Deinterlacing: %s\n", (v & 0x08) ? "Yes" : "No"); | |
1274 | ||
1275 | v = x[0x0f]; | |
1276 | printf(" Audio Support: %s\n", (v & 0x80) ? "Yes" : "No"); | |
1277 | printf(" Separate Audio Inputs Provided: %s\n", (v & 0x40) ? "Yes" : "No"); | |
1278 | printf(" Audio Input Override: %s\n", (v & 0x20) ? "Yes" : "No"); | |
1279 | v = x[0x10]; | |
1280 | if (v) | |
1281 | printf(" Audio Delay: %s%u ms\n", (v & 0x80) ? "" : "-", (v & 0x7f) * 2); | |
1282 | else | |
1283 | printf(" Audio Delay: no information provided\n"); | |
1284 | v = x[0x11]; | |
1285 | printf(" Frame Rate/Mode Conversion: "); | |
1286 | switch (v >> 6) { | |
1287 | case 0: printf("None\n"); break; | |
1288 | case 1: printf("Single Buffering\n"); break; | |
1289 | case 2: printf("Double Buffering\n"); break; | |
1290 | case 3: printf("Advanced Frame Rate Conversion\n"); break; | |
1291 | } | |
1292 | if (v & 0x3f) | |
1293 | printf(" Frame Rate Range: %u fps +/- %u fps\n", | |
1294 | x[0x12], v & 0x3f); | |
1295 | else | |
1296 | printf(" Nominal Frame Rate: %u fps\n", x[0x12]); | |
1297 | printf(" Color Bit Depth: %u @ interface, %u @ display\n", | |
1298 | (x[0x13] >> 4) + 1, (x[0x13] & 0xf) + 1); | |
1299 | v = x[0x15] & 3; | |
1300 | if (v) { | |
1301 | printf(" Additional Primary Chromaticities:\n"); | |
1302 | unsigned col_x = (x[0x16] << 2) | (x[0x14] >> 6); | |
1303 | unsigned col_y = (x[0x17] << 2) | ((x[0x14] >> 4) & 3); | |
1304 | printf(" Primary 4: 0.%04u, 0.%04u\n", | |
1305 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); | |
1306 | if (v > 1) { | |
1307 | col_x = (x[0x18] << 2) | ((x[0x14] >> 2) & 3); | |
1308 | col_y = (x[0x19] << 2) | (x[0x14] & 3); | |
1309 | printf(" Primary 5: 0.%04u, 0.%04u\n", | |
1310 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); | |
1311 | if (v > 2) { | |
1312 | col_x = (x[0x1a] << 2) | (x[0x15] >> 6); | |
1313 | col_y = (x[0x1b] << 2) | ((x[0x15] >> 4) & 3); | |
1314 | printf(" Primary 6: 0.%04u, 0.%04u\n", | |
1315 | (col_x * 10000) / 1024, (col_y * 10000) / 1024); | |
1316 | } | |
1317 | } | |
1318 | } | |
1319 | ||
1320 | v = x[0x1c]; | |
1321 | printf(" Response Time %s: %u ms\n", | |
1322 | (v & 0x80) ? "White -> Black" : "Black -> White", v & 0x7f); | |
1323 | v = x[0x1d]; | |
1324 | printf(" Overscan: %u%% x %u%%\n", v >> 4, v & 0xf); | |
912 | 1325 | } |
913 | 1326 | |
914 | 1327 | static double decode_uchar_as_double(unsigned char x) |
923 | 1336 | unsigned spm = ((x[3] << 16) | (x[2] << 8) | x[1]); |
924 | 1337 | unsigned i; |
925 | 1338 | |
926 | if (length < 4) | |
927 | return; | |
1339 | if (length < 4) { | |
1340 | fail("Empty Data Block with length %u.\n", length); | |
1341 | return; | |
1342 | } | |
928 | 1343 | |
929 | 1344 | if (x[0] & 0x40) |
930 | 1345 | printf(" Speaker count: %u\n", (x[0] & 0x1f) + 1); |
934 | 1349 | if ((spm >> i) & 1) |
935 | 1350 | printf(" %s\n", speaker_map[i]); |
936 | 1351 | } |
1352 | if ((x[0] & 0xa0) == 0x80) | |
1353 | fail("'Display' flag set, but not the 'SLD' flag.\n"); | |
937 | 1354 | if ((x[0] & 0x20) && length >= 7) { |
938 | 1355 | printf(" Xmax: %u dm\n", x[4]); |
939 | 1356 | printf(" Ymax: %u dm\n", x[5]); |
979 | 1396 | |
980 | 1397 | static void cta_sldb(const unsigned char *x, unsigned length) |
981 | 1398 | { |
1399 | if (length < 2) { | |
1400 | fail("Empty Data Block with length %u.\n", length); | |
1401 | return; | |
1402 | } | |
982 | 1403 | while (length >= 2) { |
983 | 1404 | printf(" Channel: %u (%sactive)\n", x[0] & 0x1f, |
984 | 1405 | (x[0] & 0x20) ? "" : "not "); |
997 | 1418 | } |
998 | 1419 | } |
999 | 1420 | |
1000 | static void cta_vcdb(const unsigned char *x, unsigned length) | |
1421 | void edid_state::cta_vcdb(const unsigned char *x, unsigned length) | |
1001 | 1422 | { |
1002 | 1423 | unsigned char d = x[0]; |
1003 | 1424 | |
1425 | cta.has_vcdb = true; | |
1426 | if (length < 1) { | |
1427 | fail("Empty Data Block with length %u.\n", length); | |
1428 | return; | |
1429 | } | |
1004 | 1430 | printf(" YCbCr quantization: %s\n", |
1005 | 1431 | (d & 0x80) ? "Selectable (via AVI YQ)" : "No Data"); |
1006 | 1432 | printf(" RGB quantization: %s\n", |
1033 | 1459 | case 3: printf("Supports both over- and underscan\n"); break; |
1034 | 1460 | } |
1035 | 1461 | printf(" IT scan behavior: "); |
1036 | switch ((d >> 6) & 0x03) { | |
1462 | switch ((d >> 2) & 0x03) { | |
1037 | 1463 | case 0: printf("IT video formats not supported\n"); break; |
1038 | case 1: printf("Always Overscanned\n"); break; | |
1039 | case 2: printf("Always Underscanned\n"); break; | |
1464 | case 1: | |
1465 | printf("Always Overscanned\n"); | |
1466 | // See Table 52 of CTA-861-G for a description of Byte 3 | |
1467 | if (cta.byte3 & 0x80) | |
1468 | fail("IT video formats are always overscanned, but bit 7 of Byte 3 of the CTA-861 Extension header is set to underscanned.\n"); | |
1469 | break; | |
1470 | case 2: | |
1471 | printf("Always Underscanned\n"); | |
1472 | // See Table 52 of CTA-861-G for a description of Byte 3 | |
1473 | if (!(cta.byte3 & 0x80)) | |
1474 | fail("IT video formats are always underscanned, but bit 7 of Byte 3 of the CTA-861 Extension header is set to overscanned.\n"); | |
1475 | break; | |
1040 | 1476 | case 3: printf("Supports both over- and underscan\n"); break; |
1041 | 1477 | } |
1478 | if (((d >> 2) & 0x03) < 2) | |
1479 | warn("IT scan behavior is expected to support underscanned.\n"); | |
1042 | 1480 | printf(" CE scan behavior: "); |
1043 | 1481 | switch (d & 0x03) { |
1044 | 1482 | case 0: printf("CE video formats not supported\n"); break; |
1046 | 1484 | case 2: printf("Always Underscanned\n"); break; |
1047 | 1485 | case 3: printf("Supports both over- and underscan\n"); break; |
1048 | 1486 | } |
1487 | if ((d & 0x03) == 0) | |
1488 | warn("'CE video formats not supported' makes no sense.\n"); | |
1049 | 1489 | } |
1050 | 1490 | |
1051 | 1491 | static const char *colorimetry_map[] = { |
1063 | 1503 | { |
1064 | 1504 | unsigned i; |
1065 | 1505 | |
1066 | if (length >= 2) { | |
1067 | for (i = 0; i < ARRAY_SIZE(colorimetry_map); i++) { | |
1068 | if (x[0] & (1 << i)) | |
1069 | printf(" %s\n", colorimetry_map[i]); | |
1070 | } | |
1071 | if (x[1] & 0x80) | |
1072 | printf(" DCI-P3\n"); | |
1073 | if (x[1] & 0x40) | |
1074 | printf(" ICtCp\n"); | |
1075 | } | |
1506 | if (length < 2) { | |
1507 | fail("Empty Data Block with length %u.\n", length); | |
1508 | return; | |
1509 | } | |
1510 | for (i = 0; i < ARRAY_SIZE(colorimetry_map); i++) { | |
1511 | if (x[0] & (1 << i)) | |
1512 | printf(" %s\n", colorimetry_map[i]); | |
1513 | } | |
1514 | if (x[1] & 0x80) | |
1515 | printf(" DCI-P3\n"); | |
1516 | if (x[1] & 0x40) | |
1517 | printf(" ICtCp\n"); | |
1076 | 1518 | } |
1077 | 1519 | |
1078 | 1520 | static const char *eotf_map[] = { |
1086 | 1528 | { |
1087 | 1529 | unsigned i; |
1088 | 1530 | |
1089 | if (length >= 2) { | |
1090 | printf(" Electro optical transfer functions:\n"); | |
1091 | for (i = 0; i < 6; i++) { | |
1092 | if (x[0] & (1 << i)) { | |
1093 | if (i < ARRAY_SIZE(eotf_map)) { | |
1094 | printf(" %s\n", eotf_map[i]); | |
1095 | } else { | |
1096 | printf(" Unknown (%u)\n", i); | |
1097 | fail("Unknown EOTF (%u)\n", i); | |
1098 | } | |
1099 | } | |
1100 | } | |
1101 | printf(" Supported static metadata descriptors:\n"); | |
1102 | for (i = 0; i < 8; i++) { | |
1103 | if (x[1] & (1 << i)) | |
1104 | printf(" Static metadata type %u\n", i + 1); | |
1105 | } | |
1531 | if (length < 2) { | |
1532 | fail("Empty Data Block with length %u.\n", length); | |
1533 | return; | |
1534 | } | |
1535 | printf(" Electro optical transfer functions:\n"); | |
1536 | for (i = 0; i < 6; i++) { | |
1537 | if (x[0] & (1 << i)) { | |
1538 | if (i < ARRAY_SIZE(eotf_map)) { | |
1539 | printf(" %s\n", eotf_map[i]); | |
1540 | } else { | |
1541 | printf(" Unknown (%u)\n", i); | |
1542 | fail("Unknown EOTF (%u).\n", i); | |
1543 | } | |
1544 | } | |
1545 | } | |
1546 | printf(" Supported static metadata descriptors:\n"); | |
1547 | for (i = 0; i < 8; i++) { | |
1548 | if (x[1] & (1 << i)) | |
1549 | printf(" Static metadata type %u\n", i + 1); | |
1106 | 1550 | } |
1107 | 1551 | |
1108 | 1552 | if (length >= 3) |
1120 | 1564 | |
1121 | 1565 | static void cta_hdr_dyn_metadata_block(const unsigned char *x, unsigned length) |
1122 | 1566 | { |
1567 | if (length < 3) { | |
1568 | fail("Empty Data Block with length %u.\n", length); | |
1569 | return; | |
1570 | } | |
1123 | 1571 | while (length >= 3) { |
1124 | 1572 | unsigned type_len = x[0]; |
1125 | 1573 | unsigned type = x[1] | (x[2] << 8); |
1129 | 1577 | printf(" HDR Dynamic Metadata Type %u\n", type); |
1130 | 1578 | switch (type) { |
1131 | 1579 | case 1: |
1132 | case 2: | |
1133 | 1580 | case 4: |
1134 | 1581 | if (type_len > 2) |
1135 | 1582 | printf(" Version: %u\n", x[3] & 0xf); |
1136 | 1583 | break; |
1584 | case 2: | |
1585 | if (type_len > 2) { | |
1586 | unsigned version = x[3] & 0xf; | |
1587 | printf(" Version: %u\n", version); | |
1588 | if (version >= 1) { | |
1589 | if (x[3] & 0x10) printf(" Supports SL-HDR1 (ETSI TS 103 433-1)\n"); | |
1590 | if (x[3] & 0x20) printf(" Supports SL-HDR2 (ETSI TS 103 433-2)\n"); | |
1591 | if (x[3] & 0x40) printf(" Supports SL-HDR3 (ETSI TS 103 433-3)\n"); | |
1592 | } | |
1593 | } | |
1594 | break; | |
1137 | 1595 | default: |
1138 | 1596 | break; |
1139 | 1597 | } |
1146 | 1604 | { |
1147 | 1605 | unsigned len_hdr = x[0] >> 5; |
1148 | 1606 | |
1149 | if (length < 2) | |
1150 | return; | |
1607 | if (length < 2) { | |
1608 | fail("Empty Data Block with length %u.\n", length); | |
1609 | return; | |
1610 | } | |
1151 | 1611 | printf(" VSIFs: %u\n", x[1]); |
1152 | 1612 | if (length < len_hdr + 2) |
1153 | 1613 | return; |
1157 | 1617 | int payload_len = x[0] >> 5; |
1158 | 1618 | |
1159 | 1619 | if ((x[0] & 0x1f) == 1 && length >= 4) { |
1160 | printf(" InfoFrame Type Code %u IEEE OUI: 0x%02x%02x%02x\n", | |
1161 | x[0] & 0x1f, x[3], x[2], x[1]); | |
1620 | unsigned oui = (x[3] << 16) | (x[2] << 8) | x[1]; | |
1621 | ||
1622 | printf(" InfoFrame Type Code %u, OUI %s\n", | |
1623 | x[0] & 0x1f, ouitohex(oui).c_str()); | |
1162 | 1624 | x += 4; |
1163 | 1625 | length -= 4; |
1164 | 1626 | } else { |
1171 | 1633 | } |
1172 | 1634 | } |
1173 | 1635 | |
1636 | void edid_state::cta_displayid_type_7(const unsigned char *x, unsigned length) | |
1637 | { | |
1638 | check_displayid_datablock_revision(x[0], 0x00, 2); | |
1639 | ||
1640 | if (length < 21U + ((x[0] & 0x70) >> 4)) { | |
1641 | fail("Empty Data Block with length %u.\n", length); | |
1642 | return; | |
1643 | } | |
1644 | parse_displayid_type_1_7_timing(x + 1, true, 2, true); | |
1645 | } | |
1646 | ||
1647 | void edid_state::cta_displayid_type_8(const unsigned char *x, unsigned length) | |
1648 | { | |
1649 | check_displayid_datablock_revision(x[0], 0xe8, 1); | |
1650 | if (length < ((x[0] & 0x08) ? 3 : 2)) { | |
1651 | fail("Empty Data Block with length %u.\n", length); | |
1652 | return; | |
1653 | } | |
1654 | ||
1655 | unsigned sz = (x[0] & 0x08) ? 2 : 1; | |
1656 | unsigned type = x[0] >> 6; | |
1657 | ||
1658 | if (type) { | |
1659 | fail("Only code type 0 is supported.\n"); | |
1660 | return; | |
1661 | } | |
1662 | ||
1663 | if (x[0] & 0x20) | |
1664 | printf(" Also supports YCbCr 4:2:0\n"); | |
1665 | ||
1666 | x++; | |
1667 | length--; | |
1668 | for (unsigned i = 0; i < length / sz; i++) { | |
1669 | unsigned id = x[i * sz]; | |
1670 | ||
1671 | if (sz == 2) | |
1672 | id |= x[i * sz + 1] << 8; | |
1673 | parse_displayid_type_4_8_timing(type, id, true); | |
1674 | } | |
1675 | } | |
1676 | ||
1677 | void edid_state::cta_displayid_type_10(const unsigned char *x, unsigned length) | |
1678 | { | |
1679 | check_displayid_datablock_revision(x[0], 0x70); | |
1680 | if (length < 7U + ((x[0] & 0x70) >> 4)) { | |
1681 | fail("Empty Data Block with length %u.\n", length); | |
1682 | return; | |
1683 | } | |
1684 | ||
1685 | unsigned sz = 6U + ((x[0] & 0x70) >> 4); | |
1686 | x++; | |
1687 | length--; | |
1688 | for (unsigned i = 0; i < length / sz; i++) | |
1689 | parse_displayid_type_10_timing(x + i * sz, true); | |
1690 | } | |
1691 | ||
1174 | 1692 | static void cta_hdmi_audio_block(const unsigned char *x, unsigned length) |
1175 | 1693 | { |
1176 | 1694 | unsigned num_descs; |
1177 | 1695 | |
1178 | if (length < 2) | |
1179 | return; | |
1696 | if (length < 2) { | |
1697 | fail("Empty Data Block with length %u.\n", length); | |
1698 | return; | |
1699 | } | |
1180 | 1700 | if (x[0] & 3) |
1181 | 1701 | printf(" Max Stream Count: %u\n", (x[0] & 3) + 1); |
1182 | 1702 | if (x[0] & 4) |
1235 | 1755 | } |
1236 | 1756 | } |
1237 | 1757 | |
1238 | static const char *oui_name(unsigned oui) | |
1239 | { | |
1240 | switch (oui) { | |
1241 | case 0x00001a: return "AMD"; | |
1242 | case 0x00044b: return "NVIDIA"; | |
1243 | case 0x000c6e: return "ASUS"; | |
1244 | case 0x0010fa: return "Apple"; | |
1245 | case 0x0014b9: return "MSTAR"; | |
1246 | case 0x00d046: return "Dolby"; | |
1247 | case 0x00e047: return "InFocus"; | |
1248 | case 0xca125c: return "Microsoft"; | |
1249 | default: return NULL; | |
1250 | } | |
1758 | void edid_state::cta_ext_block(const unsigned char *x, unsigned length) | |
1759 | { | |
1760 | const char *name; | |
1761 | unsigned oui; | |
1762 | bool reverse = false; | |
1763 | bool audio_block = false; | |
1764 | ||
1765 | switch (x[0]) { | |
1766 | case 0x00: data_block = "Video Capability Data Block"; break; | |
1767 | case 0x01: data_block.clear(); break; | |
1768 | case 0x02: data_block = "VESA Video Display Device Data Block"; break; | |
1769 | case 0x03: data_block = "VESA Video Timing Block Extension"; break; | |
1770 | case 0x04: data_block = "Reserved for HDMI Video Data Block"; break; | |
1771 | case 0x05: data_block = "Colorimetry Data Block"; break; | |
1772 | case 0x06: data_block = "HDR Static Metadata Data Block"; break; | |
1773 | case 0x07: data_block = "HDR Dynamic Metadata Data Block"; break; | |
1774 | ||
1775 | case 0x0d: data_block = "Video Format Preference Data Block"; break; | |
1776 | case 0x0e: data_block = "YCbCr 4:2:0 Video Data Block"; break; | |
1777 | case 0x0f: data_block = "YCbCr 4:2:0 Capability Map Data Block"; break; | |
1778 | case 0x10: data_block = "Reserved for CTA-861 Miscellaneous Audio Fields"; break; | |
1779 | case 0x11: data_block.clear(); audio_block = true; break; | |
1780 | case 0x12: data_block = "HDMI Audio Data Block"; audio_block = true; break; | |
1781 | case 0x13: data_block = "Room Configuration Data Block"; audio_block = true; break; | |
1782 | case 0x14: data_block = "Speaker Location Data Block"; audio_block = true; break; | |
1783 | ||
1784 | case 0x20: data_block = "InfoFrame Data Block"; break; | |
1785 | ||
1786 | case 0x34: data_block = "DisplayID Type VII Video Timing Data Block"; break; | |
1787 | case 0x35: data_block = "DisplayID Type VIII Video Timing Data Block"; break; | |
1788 | case 0x42: data_block = "DisplayID Type X Video Timing Data Block"; break; | |
1789 | ||
1790 | case 0x78: data_block = "HDMI Forum EDID Extension Override Data Block"; break; | |
1791 | case 0x79: data_block = "HDMI Forum Sink Capability Data Block"; break; | |
1792 | default: | |
1793 | if (x[0] <= 12) | |
1794 | printf(" Unknown CTA-861 Video-Related"); | |
1795 | else if (x[0] <= 31) | |
1796 | printf(" Unknown CTA-861 Audio-Related"); | |
1797 | else if (x[0] >= 120 && x[0] <= 127) | |
1798 | printf(" Unknown CTA-861 HDMI-Related"); | |
1799 | else | |
1800 | printf(" Unknown CTA-861"); | |
1801 | printf(" Data Block (extended tag 0x%02x, length %u)\n", x[0], length); | |
1802 | hex_block(" ", x + 1, length); | |
1803 | data_block.clear(); | |
1804 | warn("Unknown Extended CTA-861 Data Block 0x%02x.\n", x[0]); | |
1805 | return; | |
1806 | } | |
1807 | ||
1808 | // See Table 52 of CTA-861-G for a description of Byte 3 | |
1809 | if (audio_block && !(cta.byte3 & 0x40)) | |
1810 | fail("audio information is present, but bit 6 of Byte 3 of the CTA-861 Extension header indicates no Basic Audio support.\n"); | |
1811 | ||
1812 | if (data_block.length()) | |
1813 | printf(" %s:\n", data_block.c_str()); | |
1814 | ||
1815 | switch (x[0]) { | |
1816 | case 0x00: cta_vcdb(x + 1, length); return; | |
1817 | case 0x01: | |
1818 | if (length < 3) { | |
1819 | data_block = std::string("Vendor-Specific Video Data Block"); | |
1820 | fail("Invalid length %u < 3.\n", length); | |
1821 | return; | |
1822 | } | |
1823 | oui = (x[3] << 16) + (x[2] << 8) + x[1]; | |
1824 | name = oui_name(oui); | |
1825 | if (!name) { | |
1826 | name = oui_name(oui, true); | |
1827 | if (name) | |
1828 | reverse = true; | |
1829 | } | |
1830 | if (!name) { | |
1831 | printf(" Vendor-Specific Video Data Block, OUI %s:\n", | |
1832 | ouitohex(oui).c_str()); | |
1833 | hex_block(" ", x + 4, length - 3); | |
1834 | data_block.clear(); | |
1835 | warn("Unknown Extended Vendor-Specific Video Data Block, OUI %s.\n", | |
1836 | ouitohex(oui).c_str()); | |
1837 | return; | |
1838 | } | |
1839 | data_block = std::string("Vendor-Specific Video Data Block (") + name + ")"; | |
1840 | if (reverse) | |
1841 | fail((std::string("OUI ") + ouitohex(oui) + " is in the wrong byte order\n").c_str()); | |
1842 | printf(" %s, OUI %s:\n", data_block.c_str(), ouitohex(oui).c_str()); | |
1843 | if (oui == 0x90848b) | |
1844 | cta_hdr10plus(x + 4, length - 3); | |
1845 | else if (oui == 0x00d046) | |
1846 | cta_dolby_video(x + 4, length - 3); | |
1847 | else | |
1848 | hex_block(" ", x + 4, length - 3); | |
1849 | return; | |
1850 | case 0x02: cta_vesa_vdddb(x + 1, length); return; | |
1851 | case 0x05: cta_colorimetry_block(x + 1, length); return; | |
1852 | case 0x06: cta_hdr_static_metadata_block(x + 1, length); return; | |
1853 | case 0x07: cta_hdr_dyn_metadata_block(x + 1, length); return; | |
1854 | case 0x0d: cta_vfpdb(x + 1, length); return; | |
1855 | case 0x0e: cta_svd(x + 1, length, true); return; | |
1856 | case 0x0f: cta_y420cmdb(x + 1, length); return; | |
1857 | case 0x11: | |
1858 | if (length < 3) { | |
1859 | data_block = std::string("Vendor-Specific Audio Data Block"); | |
1860 | fail("Invalid length %u < 3.\n", length); | |
1861 | return; | |
1862 | } | |
1863 | oui = (x[3] << 16) + (x[2] << 8) + x[1]; | |
1864 | name = oui_name(oui); | |
1865 | if (!name) { | |
1866 | name = oui_name(oui, true); | |
1867 | if (name) | |
1868 | reverse = true; | |
1869 | } | |
1870 | if (!name) { | |
1871 | printf(" Vendor-Specific Audio Data Block, OUI %s:\n", | |
1872 | ouitohex(oui).c_str()); | |
1873 | hex_block(" ", x + 4, length - 3); | |
1874 | data_block.clear(); | |
1875 | warn("Unknown Extended Vendor-Specific Audio Data Block, OUI %s.\n", | |
1876 | ouitohex(oui).c_str()); | |
1877 | return; | |
1878 | } | |
1879 | data_block = std::string("Vendor-Specific Audio Data Block (") + name + ")"; | |
1880 | if (reverse) | |
1881 | fail((std::string("OUI ") + ouitohex(oui) + " is in the wrong byte order\n").c_str()); | |
1882 | printf(" %s, OUI %s:\n", data_block.c_str(), ouitohex(oui).c_str()); | |
1883 | if (oui == 0x00d046) | |
1884 | cta_dolby_audio(x + 4, length - 3); | |
1885 | else | |
1886 | hex_block(" ", x + 4, length - 3); | |
1887 | return; | |
1888 | case 0x12: cta_hdmi_audio_block(x + 1, length); return; | |
1889 | case 0x13: cta_rcdb(x + 1, length); return; | |
1890 | case 0x14: cta_sldb(x + 1, length); return; | |
1891 | case 0x20: cta_ifdb(x + 1, length); return; | |
1892 | case 0x34: cta_displayid_type_7(x + 1, length); return; | |
1893 | case 0x35: cta_displayid_type_8(x + 1, length); return; | |
1894 | case 0x42: cta_displayid_type_10(x + 1, length); return; | |
1895 | case 0x78: | |
1896 | cta_hf_eeodb(x + 1, length); | |
1897 | // This must be the first CTA-861 block | |
1898 | if (!cta.first_block) | |
1899 | fail("Block starts at a wrong offset.\n"); | |
1900 | return; | |
1901 | case 0x79: | |
1902 | if (!cta.last_block_was_hdmi_vsdb) | |
1903 | fail("HDMI Forum SCDB did not immediately follow the HDMI VSDB.\n"); | |
1904 | if (cta.have_hf_scdb || cta.have_hf_vsdb) | |
1905 | fail("Duplicate HDMI Forum VSDB/SCDB.\n"); | |
1906 | if (length < 2) { | |
1907 | data_block = std::string("HDMI Forum SCDB"); | |
1908 | fail("Invalid length %u < 2.\n", length); | |
1909 | return; | |
1910 | } | |
1911 | if (x[1] || x[2]) | |
1912 | printf(" Non-zero SCDB reserved fields!\n"); | |
1913 | cta_hf_scdb(x + 3, length - 2); | |
1914 | cta.have_hf_scdb = 1; | |
1915 | return; | |
1916 | } | |
1917 | ||
1918 | hex_block(" ", x + 1, length); | |
1251 | 1919 | } |
1252 | 1920 | |
1253 | 1921 | void edid_state::cta_block(const unsigned char *x) |
1254 | 1922 | { |
1255 | static int last_block_was_hdmi_vsdb; | |
1256 | static int have_hf_vsdb, have_hf_scdb; | |
1257 | static int first_block = 1; | |
1258 | 1923 | unsigned length = x[0] & 0x1f; |
1259 | 1924 | const char *name; |
1260 | 1925 | unsigned oui; |
1926 | bool reverse = false; | |
1927 | bool audio_block = false; | |
1261 | 1928 | |
1262 | 1929 | switch ((x[0] & 0xe0) >> 5) { |
1263 | 1930 | case 0x01: |
1264 | 1931 | data_block = "Audio Data Block"; |
1265 | printf(" %s\n", data_block.c_str()); | |
1932 | printf(" %s:\n", data_block.c_str()); | |
1266 | 1933 | cta_audio_block(x + 1, length); |
1934 | audio_block = true; | |
1267 | 1935 | break; |
1268 | 1936 | case 0x02: |
1269 | 1937 | data_block = "Video Data Block"; |
1270 | printf(" %s\n", data_block.c_str()); | |
1271 | cta_svd(x + 1, length, 0); | |
1938 | printf(" %s:\n", data_block.c_str()); | |
1939 | cta_svd(x + 1, length, false); | |
1272 | 1940 | break; |
1273 | 1941 | case 0x03: |
1274 | 1942 | oui = (x[3] << 16) + (x[2] << 8) + x[1]; |
1275 | printf(" Vendor-Specific Data Block, OUI 0x%06x", oui); | |
1276 | 1943 | name = oui_name(oui); |
1277 | if (oui == 0x000c03) { | |
1278 | data_block = "Vendor-Specific Data Block (HDMI)"; | |
1279 | cta_hdmi_block(x + 1, length); | |
1280 | last_block_was_hdmi_vsdb = 1; | |
1281 | first_block = 0; | |
1282 | if (edid_minor != 3) | |
1283 | fail("The HDMI Specification uses EDID 1.3, not 1.%u\n", edid_minor); | |
1284 | return; | |
1285 | } | |
1286 | if (oui == 0xc45dd8) { | |
1287 | data_block = "Vendor-Specific Data Block (HDMI Forum)"; | |
1288 | if (!last_block_was_hdmi_vsdb) | |
1289 | fail("HDMI Forum VSDB did not immediately follow the HDMI VSDB\n"); | |
1290 | if (have_hf_scdb || have_hf_vsdb) | |
1291 | fail("Duplicate HDMI Forum VSDB/SCDB\n"); | |
1292 | printf(" (HDMI Forum)\n"); | |
1293 | cta_hf_scdb(x + 4, length - 3); | |
1294 | have_hf_vsdb = 1; | |
1295 | } else if (name) { | |
1296 | data_block = std::string("Vendor-Specific Data Block (") + name + ")"; | |
1297 | printf(" (%s)\n", name); | |
1298 | hex_block(" ", x + 4, length - 3); | |
1299 | } else { | |
1300 | printf("\n"); | |
1944 | if (!name) { | |
1945 | name = oui_name(oui, true); | |
1946 | if (name) | |
1947 | reverse = true; | |
1948 | } | |
1949 | if (!name) { | |
1950 | printf(" Vendor-Specific Data Block, OUI %s:\n", ouitohex(oui).c_str()); | |
1301 | 1951 | hex_block(" ", x + 4, length - 3); |
1302 | 1952 | data_block.clear(); |
1303 | warn("Unknown Vendor-Specific Data Block, OUI 0x%06x\n", oui); | |
1304 | } | |
1953 | warn("Unknown Vendor-Specific Data Block, OUI %s.\n", | |
1954 | ouitohex(oui).c_str()); | |
1955 | return; | |
1956 | } | |
1957 | data_block = std::string("Vendor-Specific Data Block (") + name + ")"; | |
1958 | if (reverse) | |
1959 | fail((std::string("OUI ") + ouitohex(oui) + " is in the wrong byte order\n").c_str()); | |
1960 | printf(" %s, OUI %s:\n", data_block.c_str(), ouitohex(oui).c_str()); | |
1961 | if (oui == 0x000c03) { | |
1962 | cta_hdmi_block(x + 1, length); | |
1963 | cta.last_block_was_hdmi_vsdb = 1; | |
1964 | cta.first_block = 0; | |
1965 | // The HDMI OUI is present, so this EDID represents an HDMI | |
1966 | // interface. And HDMI interfaces must use EDID version 1.3 | |
1967 | // according to the HDMI Specification, so check for this. | |
1968 | if (base.edid_minor != 3) | |
1969 | fail("The HDMI Specification requires EDID 1.3 instead of 1.%u.\n", | |
1970 | base.edid_minor); | |
1971 | return; | |
1972 | } | |
1973 | if (oui == 0xc45dd8) { | |
1974 | if (!cta.last_block_was_hdmi_vsdb) | |
1975 | fail("HDMI Forum VSDB did not immediately follow the HDMI VSDB.\n"); | |
1976 | if (cta.have_hf_scdb || cta.have_hf_vsdb) | |
1977 | fail("Duplicate HDMI Forum VSDB/SCDB.\n"); | |
1978 | cta_hf_scdb(x + 4, length - 3); | |
1979 | cta.have_hf_vsdb = 1; | |
1980 | break; | |
1981 | } | |
1982 | hex_block(" ", x + 4, length - 3); | |
1305 | 1983 | break; |
1306 | 1984 | case 0x04: |
1307 | 1985 | data_block = "Speaker Allocation Data Block"; |
1308 | printf(" %s\n", data_block.c_str()); | |
1986 | printf(" %s:\n", data_block.c_str()); | |
1309 | 1987 | cta_sadb(x + 1, length); |
1988 | audio_block = true; | |
1310 | 1989 | break; |
1311 | 1990 | case 0x05: |
1312 | printf(" VESA DTC Data Block\n"); | |
1313 | hex_block(" ", x + 1, length); | |
1991 | data_block = "VESA Display Transfer Characteristics Data Block"; | |
1992 | printf(" %s:\n", data_block.c_str()); | |
1993 | cta_vesa_dtcdb(x + 1, length); | |
1314 | 1994 | break; |
1315 | 1995 | case 0x07: |
1316 | printf(" Extended tag: "); | |
1317 | switch (x[1]) { | |
1318 | case 0x00: | |
1319 | data_block = "Video Capability Data Block"; | |
1320 | printf("%s\n", data_block.c_str()); | |
1321 | cta_vcdb(x + 2, length - 1); | |
1322 | break; | |
1323 | case 0x01: | |
1324 | oui = (x[4] << 16) + (x[3] << 8) + x[2]; | |
1325 | printf("Vendor-Specific Video Data Block, OUI 0x%06x", oui); | |
1326 | name = oui_name(oui); | |
1327 | if (oui == 0x90848b) { | |
1328 | data_block = "Vendor-Specific Video Data Block (HDR10+)"; | |
1329 | printf(" (HDR10+)\n"); | |
1330 | cta_hdr10plus(x + 5, length - 4); | |
1331 | } else if (name) { | |
1332 | data_block = std::string("Vendor-Specific Data Block (") + name + ")"; | |
1333 | printf(" (%s)\n", name); | |
1334 | hex_block(" ", x + 5, length - 4); | |
1335 | } else { | |
1336 | printf("\n"); | |
1337 | hex_block(" ", x + 5, length - 4); | |
1338 | data_block.clear(); | |
1339 | warn("Unknown Extended Vendor-Specific Data Block, OUI 0x%06x\n", oui); | |
1340 | } | |
1341 | break; | |
1342 | case 0x02: | |
1343 | printf("VESA Video Display Device Data Block\n"); | |
1344 | hex_block(" ", x + 2, length - 1); | |
1345 | break; | |
1346 | case 0x03: | |
1347 | printf("VESA Video Timing Block Extension\n"); | |
1348 | hex_block(" ", x + 2, length - 1); | |
1349 | break; | |
1350 | case 0x04: | |
1351 | printf("Reserved for HDMI Video Data Block\n"); | |
1352 | hex_block(" ", x + 2, length - 1); | |
1353 | break; | |
1354 | case 0x05: | |
1355 | data_block = "Colorimetry Data Block"; | |
1356 | printf("%s\n", data_block.c_str()); | |
1357 | cta_colorimetry_block(x + 2, length - 1); | |
1358 | break; | |
1359 | case 0x06: | |
1360 | data_block = "HDR Static Metadata Data Block"; | |
1361 | printf("%s\n", data_block.c_str()); | |
1362 | cta_hdr_static_metadata_block(x + 2, length - 1); | |
1363 | break; | |
1364 | case 0x07: | |
1365 | data_block = "HDR Dynamic Metadata Data Block"; | |
1366 | printf("%s\n", data_block.c_str()); | |
1367 | cta_hdr_dyn_metadata_block(x + 2, length - 1); | |
1368 | break; | |
1369 | case 0x0d: | |
1370 | data_block = "Video Format Preference Data Block"; | |
1371 | printf("%s\n", data_block.c_str()); | |
1372 | cta_vfpdb(x + 2, length - 1); | |
1373 | break; | |
1374 | case 0x0e: | |
1375 | data_block = "YCbCr 4:2:0 Video Data Block"; | |
1376 | printf("%s\n", data_block.c_str()); | |
1377 | cta_svd(x + 2, length - 1, 1); | |
1378 | break; | |
1379 | case 0x0f: | |
1380 | data_block = "YCbCr 4:2:0 Capability Map Data Block"; | |
1381 | printf("%s\n", data_block.c_str()); | |
1382 | cta_y420cmdb(x + 2, length - 1); | |
1383 | break; | |
1384 | case 0x10: | |
1385 | printf("Reserved for CTA Miscellaneous Audio Fields\n"); | |
1386 | hex_block(" ", x + 2, length - 1); | |
1387 | break; | |
1388 | case 0x11: | |
1389 | printf("Vendor-Specific Audio Data Block\n"); | |
1390 | hex_block(" ", x + 2, length - 1); | |
1391 | break; | |
1392 | case 0x12: | |
1393 | data_block = "HDMI Audio Data Block"; | |
1394 | printf("%s\n", data_block.c_str()); | |
1395 | cta_hdmi_audio_block(x + 2, length - 1); | |
1396 | break; | |
1397 | case 0x13: | |
1398 | data_block = "Room Configuration Data Block"; | |
1399 | printf("%s\n", data_block.c_str()); | |
1400 | cta_rcdb(x + 2, length - 1); | |
1401 | break; | |
1402 | case 0x14: | |
1403 | data_block = "Speaker Location Data Block"; | |
1404 | printf("%s\n", data_block.c_str()); | |
1405 | cta_sldb(x + 2, length - 1); | |
1406 | break; | |
1407 | case 0x20: | |
1408 | printf("InfoFrame Data Block\n"); | |
1409 | cta_ifdb(x + 2, length - 1); | |
1410 | break; | |
1411 | case 0x78: | |
1412 | data_block = "HDMI Forum EDID Extension Override Data Block"; | |
1413 | printf("%s\n", data_block.c_str()); | |
1414 | cta_hf_eeodb(x + 2, length - 1); | |
1415 | // This must be the first CTA block | |
1416 | if (!first_block) | |
1417 | fail("Block starts at a wrong offset\n"); | |
1418 | break; | |
1419 | case 0x79: | |
1420 | data_block = "HDMI Forum Sink Capability Data Block"; | |
1421 | printf("%s\n", data_block.c_str()); | |
1422 | if (!last_block_was_hdmi_vsdb) | |
1423 | fail("HDMI Forum SCDB did not immediately follow the HDMI VSDB\n"); | |
1424 | if (have_hf_scdb || have_hf_vsdb) | |
1425 | fail("Duplicate HDMI Forum VSDB/SCDB\n"); | |
1426 | if (x[2] || x[3]) | |
1427 | printf(" Non-zero SCDB reserved fields!\n"); | |
1428 | cta_hf_scdb(x + 4, length - 3); | |
1429 | have_hf_scdb = 1; | |
1430 | break; | |
1431 | default: | |
1432 | if (x[1] <= 12) | |
1433 | printf("Unknown CTA Video-Related"); | |
1434 | else if (x[1] <= 31) | |
1435 | printf("Unknown CTA Audio-Related"); | |
1436 | else if (x[1] >= 120 && x[1] <= 127) | |
1437 | printf("Unknown CTA HDMI-Related"); | |
1438 | else | |
1439 | printf("Unknown CTA"); | |
1440 | printf(" Data Block (extended tag 0x%02x, length %u)\n", x[1], length - 1); | |
1441 | hex_block(" ", x + 2, length - 1); | |
1442 | data_block.clear(); | |
1443 | warn("Unknown Extended CTA Data Block 0x%02x\n", x[1]); | |
1444 | break; | |
1445 | } | |
1996 | cta_ext_block(x + 1, length - 1); | |
1446 | 1997 | break; |
1447 | 1998 | default: { |
1448 | 1999 | unsigned tag = (*x & 0xe0) >> 5; |
1449 | 2000 | unsigned length = *x & 0x1f; |
1450 | printf(" Unknown CTA tag 0x%02x, length %u\n", tag, length); | |
2001 | ||
2002 | printf(" Unknown CTA-861 tag 0x%02x, length %u\n", tag, length); | |
1451 | 2003 | hex_block(" ", x + 1, length); |
1452 | 2004 | data_block.clear(); |
1453 | warn("Unknown CTA Data Block %u\n", tag); | |
2005 | warn("Unknown CTA-861 Data Block %u.\n", tag); | |
1454 | 2006 | break; |
1455 | 2007 | } |
1456 | 2008 | } |
1457 | first_block = 0; | |
1458 | last_block_was_hdmi_vsdb = 0; | |
2009 | ||
2010 | // See Table 52 of CTA-861-G for a description of Byte 3 | |
2011 | if (audio_block && !(cta.byte3 & 0x40)) | |
2012 | fail("audio information is present, but bit 6 of Byte 3 of the CTA-861 Extension header indicates no Basic Audio support.\n"); | |
2013 | cta.first_block = 0; | |
2014 | cta.last_block_was_hdmi_vsdb = 0; | |
1459 | 2015 | } |
1460 | 2016 | |
1461 | 2017 | void edid_state::preparse_cta_block(const unsigned char *x) |
1463 | 2019 | unsigned version = x[1]; |
1464 | 2020 | unsigned offset = x[2]; |
1465 | 2021 | |
2022 | if (offset >= 4) { | |
2023 | const unsigned char *detailed; | |
2024 | ||
2025 | for (detailed = x + offset; detailed + 17 < x + 127; detailed += 18) { | |
2026 | if (memchk(detailed, 18)) | |
2027 | break; | |
2028 | if (detailed[0] || detailed[1]) | |
2029 | cta.preparse_total_dtds++; | |
2030 | } | |
2031 | } | |
2032 | ||
1466 | 2033 | if (version < 3) |
1467 | 2034 | return; |
1468 | 2035 | |
1469 | 2036 | for (unsigned i = 4; i < offset; i += (x[i] & 0x1f) + 1) { |
1470 | 2037 | bool for_ycbcr420 = false; |
2038 | unsigned oui; | |
1471 | 2039 | |
1472 | 2040 | switch ((x[i] & 0xe0) >> 5) { |
2041 | case 0x03: | |
2042 | oui = (x[i + 3] << 16) + (x[i + 2] << 8) + x[i + 1]; | |
2043 | if (oui == 0x000c03) { | |
2044 | cta.has_hdmi = true; | |
2045 | cta.preparsed_phys_addr = (x[i + 4] << 8) | x[i + 5]; | |
2046 | } | |
2047 | break; | |
1473 | 2048 | case 0x07: |
2049 | if (x[i + 1] == 0x0d) | |
2050 | cta.has_vfpdb = true; | |
2051 | if (x[i + 1] == 0x22) | |
2052 | cta.preparse_total_vtdbs++; | |
2053 | if (x[i + 1] == 0x23) | |
2054 | cta.preparse_has_t8vtdb = true; | |
2055 | if (x[i + 1] == 0x32) | |
2056 | cta.preparse_total_vtdbs += | |
2057 | ((x[i] & 0x1f) - 2) / (6 + ((x[i + 2] & 0x70) >> 4)); | |
1474 | 2058 | if (x[i + 1] != 0x0e) |
1475 | 2059 | continue; |
1476 | 2060 | for_ycbcr420 = true; |
1481 | 2065 | |
1482 | 2066 | if ((vic & 0x7f) <= 64) |
1483 | 2067 | vic &= 0x7f; |
1484 | preparsed_svds[for_ycbcr420].push_back(vic); | |
1485 | preparsed_has_vic[for_ycbcr420][vic] = true; | |
2068 | cta.preparsed_svds[for_ycbcr420].push_back(vic); | |
2069 | cta.preparsed_has_vic[for_ycbcr420][vic] = true; | |
1486 | 2070 | } |
1487 | 2071 | break; |
1488 | 2072 | } |
1495 | 2079 | unsigned offset = x[2]; |
1496 | 2080 | const unsigned char *detailed; |
1497 | 2081 | |
1498 | printf("%s Revision %u\n", block.c_str(), version); | |
2082 | // See Table 52 of CTA-861-G for a description of Byte 3 | |
2083 | ||
2084 | printf(" Revision: %u\n", version); | |
2085 | if (version == 0) | |
2086 | fail("Invalid CTA-861 Extension revision 0.\n"); | |
2087 | if (version == 2) | |
2088 | fail("Deprecated CTA-861 Extension revision 2.\n"); | |
2089 | if (cta.has_hdmi && version != 3) | |
2090 | fail("The HDMI Specification requires CTA Extension revision 3.\n"); | |
2091 | if (version > 3) | |
2092 | warn("Unknown CTA-861 Extension revision %u.\n", version); | |
1499 | 2093 | |
1500 | 2094 | if (version >= 1) do { |
1501 | 2095 | if (version == 1 && x[3] != 0) |
1502 | fail("Non-zero byte 3\n"); | |
2096 | fail("Non-zero byte 3.\n"); | |
1503 | 2097 | |
1504 | 2098 | if (offset < 4) |
1505 | 2099 | break; |
1506 | 2100 | |
1507 | if (version < 3) { | |
1508 | printf("%u 8-byte timing descriptors\n", (offset - 4) / 8); | |
1509 | if (offset - 4 > 0) { | |
1510 | /* do stuff */ | |
1511 | } | |
1512 | } | |
1513 | ||
1514 | if (version >= 2) { | |
2101 | if (version < 3 && ((offset - 4) / 8)) { | |
2102 | printf(" 8-byte timing descriptors: %u\n", (offset - 4) / 8); | |
2103 | fail("8-byte descriptors were never used.\n"); | |
2104 | } | |
2105 | ||
2106 | if (version >= 2) { | |
1515 | 2107 | if (x[3] & 0x80) |
1516 | printf("Underscans PC formats by default\n"); | |
2108 | printf(" Underscans IT Video Formats by default\n"); | |
2109 | else | |
2110 | warn("IT Video Formats are overscanned by default, but normally this should be underscanned.\n"); | |
1517 | 2111 | if (x[3] & 0x40) |
1518 | printf("Basic audio support\n"); | |
2112 | printf(" Basic audio support\n"); | |
1519 | 2113 | if (x[3] & 0x20) |
1520 | printf("Supports YCbCr 4:4:4\n"); | |
2114 | printf(" Supports YCbCr 4:4:4\n"); | |
1521 | 2115 | if (x[3] & 0x10) |
1522 | printf("Supports YCbCr 4:2:2\n"); | |
1523 | printf("%u native detailed modes\n", x[3] & 0x0f); | |
1524 | } | |
1525 | if (version == 3) { | |
2116 | printf(" Supports YCbCr 4:2:2\n"); | |
2117 | // Disable this test: this fails a lot of EDIDs, and there are | |
2118 | // also some corner cases where you only want to receive 4:4:4 | |
2119 | // and refuse a fallback to 4:2:2. | |
2120 | // if ((x[3] & 0x30) && (x[3] & 0x30) != 0x30) | |
2121 | // msg(!cta.has_hdmi, "If YCbCr support is indicated, then both 4:2:2 and 4:4:4 %s be supported.\n", | |
2122 | // cta.has_hdmi ? "shall" : "should"); | |
2123 | printf(" Native detailed modes: %u\n", x[3] & 0x0f); | |
2124 | if (cta.first_block) | |
2125 | cta.byte3 = x[3]; | |
2126 | else if (x[3] != cta.byte3) | |
2127 | fail("Byte 3 must be the same for all CTA-861 Extension Blocks.\n"); | |
2128 | if (cta.first_block) { | |
2129 | unsigned native_dtds = x[3] & 0x0f; | |
2130 | ||
2131 | cta.native_timings.clear(); | |
2132 | if (!native_dtds && !cta.has_vfpdb) { | |
2133 | cta.first_svd_might_be_preferred = true; | |
2134 | } else if (native_dtds > cta.preparse_total_dtds) { | |
2135 | fail("There are more Native DTDs (%u) than DTDs (%u).\n", | |
2136 | native_dtds, cta.preparse_total_dtds); | |
2137 | } | |
2138 | if (native_dtds > cta.preparse_total_dtds) | |
2139 | native_dtds = cta.preparse_total_dtds; | |
2140 | for (unsigned i = 0; i < native_dtds; i++) { | |
2141 | char type[16]; | |
2142 | ||
2143 | sprintf(type, "DTD %3u", i + 1); | |
2144 | cta.native_timings.push_back(timings_ext(i + 129, type)); | |
2145 | } | |
2146 | if (cta.has_hdmi && block_nr != (block_map.saw_block_1 ? 2 : 1)) | |
2147 | fail("The HDMI Specification requires that the first Extension Block (that is not a Block Map) is an CTA-861 Extension Block.\n"); | |
2148 | } | |
2149 | } | |
2150 | if (version >= 3) { | |
1526 | 2151 | unsigned i; |
1527 | 2152 | |
1528 | printf("%u bytes of CTA data blocks\n", offset - 4); | |
1529 | 2153 | for (i = 4; i < offset; i += (x[i] & 0x1f) + 1) |
1530 | 2154 | cta_block(x + i); |
1531 | } | |
1532 | ||
1533 | unsigned cnt; | |
1534 | for (detailed = x + offset, cnt = 1; detailed + 18 < x + 127; detailed += 18, cnt++) { | |
2155 | ||
2156 | data_block.clear(); | |
2157 | if (i != offset) | |
2158 | fail("Offset is %u, but should be %u.\n", offset, i); | |
2159 | } | |
2160 | ||
2161 | data_block = "Detailed Timing Descriptors"; | |
2162 | base.seen_non_detailed_descriptor = false; | |
2163 | bool first = true; | |
2164 | for (detailed = x + offset; detailed + 17 < x + 127; detailed += 18) { | |
1535 | 2165 | if (memchk(detailed, 18)) |
1536 | 2166 | break; |
1537 | data_block = "Detailed Timings #" + std::to_string(cnt); | |
1538 | detailed_timings("", detailed); | |
1539 | } | |
1540 | if (!memchk(detailed, x + 0x7f - detailed)) { | |
2167 | if (first) { | |
2168 | first = false; | |
2169 | printf(" %s:\n", data_block.c_str()); | |
2170 | } | |
2171 | detailed_block(detailed); | |
2172 | } | |
2173 | if (!memchk(detailed, x + 127 - detailed)) { | |
1541 | 2174 | data_block = "Padding"; |
1542 | fail("CTA-861 padding contains non-zero bytes\n"); | |
2175 | fail("CTA-861 padding contains non-zero bytes.\n"); | |
1543 | 2176 | } |
1544 | 2177 | } while (0); |
1545 | 2178 | |
1546 | 2179 | data_block.clear(); |
1547 | if (has_serial_number && has_serial_string) | |
1548 | fail("Both the serial number and the serial string are set\n"); | |
1549 | if (!has_cta861_vic_1 && !has_640x480p60_est_timing) | |
2180 | if (base.has_serial_number && base.has_serial_string) | |
2181 | warn("Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0.\n"); | |
2182 | if (!cta.has_vic_1 && !base.has_640x480p60_est_timing) | |
1550 | 2183 | fail("Required 640x480p60 timings are missing in the established timings" |
1551 | " and the SVD list (VIC 1)\n"); | |
1552 | if ((supported_hdmi_vic_vsb_codes & supported_hdmi_vic_codes) != | |
1553 | supported_hdmi_vic_codes) | |
1554 | fail("HDMI VIC Codes must have their CTA-861 VIC equivalents in the VSB\n"); | |
1555 | } | |
2184 | " and the SVD list (VIC 1).\n"); | |
2185 | if ((cta.supported_hdmi_vic_vsb_codes & cta.supported_hdmi_vic_codes) != | |
2186 | cta.supported_hdmi_vic_codes) | |
2187 | fail("HDMI VIC Codes must have their CTA-861 VIC equivalents in the VSB.\n"); | |
2188 | if (!cta.has_vcdb) | |
2189 | warn("Missing VCDB, needed for Set Selectable RGB Quantization to avoid interop issues.\n"); | |
2190 | } | |
2191 | ||
2192 | void edid_state::cta_resolve_svr(vec_timings_ext::iterator iter) | |
2193 | { | |
2194 | if (iter->svr() == 254) { | |
2195 | iter->flags = cta.t8vtdb.flags; | |
2196 | iter->t = cta.t8vtdb.t; | |
2197 | } else if (iter->svr() <= 144) { | |
2198 | iter->flags = cta.vec_dtds[iter->svr() - 129].flags; | |
2199 | iter->t = cta.vec_dtds[iter->svr() - 129].t; | |
2200 | } else { | |
2201 | iter->flags = cta.vec_vtdbs[iter->svr() - 145].flags; | |
2202 | iter->t = cta.vec_vtdbs[iter->svr() - 145].t; | |
2203 | } | |
2204 | } | |
2205 | ||
2206 | void edid_state::cta_resolve_svrs() | |
2207 | { | |
2208 | for (vec_timings_ext::iterator iter = cta.preferred_timings.begin(); | |
2209 | iter != cta.preferred_timings.end(); ++iter) { | |
2210 | if (iter->has_svr()) | |
2211 | cta_resolve_svr(iter); | |
2212 | } | |
2213 | ||
2214 | for (vec_timings_ext::iterator iter = cta.native_timings.begin(); | |
2215 | iter != cta.native_timings.end(); ++iter) { | |
2216 | if (iter->has_svr()) | |
2217 | cta_resolve_svr(iter); | |
2218 | } | |
2219 | } | |
2220 | ||
2221 | void edid_state::check_cta_blocks() | |
2222 | { | |
2223 | unsigned max_pref_prog_hact = 0; | |
2224 | unsigned max_pref_prog_vact = 0; | |
2225 | unsigned max_pref_ilace_hact = 0; | |
2226 | unsigned max_pref_ilace_vact = 0; | |
2227 | ||
2228 | data_block = "CTA-861"; | |
2229 | for (vec_timings_ext::iterator iter = cta.preferred_timings.begin(); | |
2230 | iter != cta.preferred_timings.end(); ++iter) { | |
2231 | if (iter->t.interlaced && | |
2232 | (iter->t.vact > max_pref_ilace_vact || | |
2233 | (iter->t.vact == max_pref_ilace_vact && iter->t.hact >= max_pref_ilace_hact))) { | |
2234 | max_pref_ilace_hact = iter->t.hact; | |
2235 | max_pref_ilace_vact = iter->t.vact; | |
2236 | } | |
2237 | if (!iter->t.interlaced && | |
2238 | (iter->t.vact > max_pref_prog_vact || | |
2239 | (iter->t.vact == max_pref_prog_vact && iter->t.hact >= max_pref_prog_hact))) { | |
2240 | max_pref_prog_hact = iter->t.hact; | |
2241 | max_pref_prog_vact = iter->t.vact; | |
2242 | } | |
2243 | } | |
2244 | ||
2245 | unsigned native_prog = 0; | |
2246 | unsigned native_prog_hact = 0; | |
2247 | unsigned native_prog_vact = 0; | |
2248 | bool native_prog_mixed_resolutions = false; | |
2249 | unsigned native_ilace = 0; | |
2250 | unsigned native_ilace_hact = 0; | |
2251 | unsigned native_ilace_vact = 0; | |
2252 | bool native_ilace_mixed_resolutions = false; | |
2253 | ||
2254 | for (vec_timings_ext::iterator iter = cta.native_timings.begin(); | |
2255 | iter != cta.native_timings.end(); ++iter) { | |
2256 | if (iter->t.interlaced) { | |
2257 | native_ilace++; | |
2258 | if (!native_ilace_hact) { | |
2259 | native_ilace_hact = iter->t.hact; | |
2260 | native_ilace_vact = iter->t.vact; | |
2261 | } else if (native_ilace_hact != iter->t.hact || | |
2262 | native_ilace_vact != iter->t.vact) { | |
2263 | native_ilace_mixed_resolutions = true; | |
2264 | } | |
2265 | } else { | |
2266 | native_prog++; | |
2267 | if (!native_prog_hact) { | |
2268 | native_prog_hact = iter->t.hact; | |
2269 | native_prog_vact = iter->t.vact; | |
2270 | } else if (native_prog_hact != iter->t.hact || | |
2271 | native_prog_vact != iter->t.vact) { | |
2272 | native_prog_mixed_resolutions = true; | |
2273 | } | |
2274 | } | |
2275 | } | |
2276 | ||
2277 | if (native_prog_mixed_resolutions) | |
2278 | fail("Native progressive timings are a mix of several resolutions.\n"); | |
2279 | if (native_ilace_mixed_resolutions) | |
2280 | fail("Native interlaced timings are a mix of several resolutions.\n"); | |
2281 | if (native_ilace && !native_prog) | |
2282 | fail("A native interlaced timing is present, but not a native progressive timing.\n"); | |
2283 | if (!native_prog_mixed_resolutions && native_prog > 1) | |
2284 | warn("Multiple native progressive timings are defined.\n"); | |
2285 | if (!native_ilace_mixed_resolutions && native_ilace > 1) | |
2286 | warn("Multiple native interlaced timings are defined.\n"); | |
2287 | ||
2288 | if (!native_prog_mixed_resolutions && native_prog_vact && | |
2289 | (max_pref_prog_vact > native_prog_vact || | |
2290 | (max_pref_prog_vact == native_prog_vact && max_pref_prog_hact > native_prog_hact))) | |
2291 | warn("Native progressive resolution of %ux%u is smaller than the max preferred progressive resolution %ux%u.\n", | |
2292 | native_prog_hact, native_prog_vact, | |
2293 | max_pref_prog_hact, max_pref_prog_vact); | |
2294 | if (!native_ilace_mixed_resolutions && native_ilace_vact && | |
2295 | (max_pref_ilace_vact > native_ilace_vact || | |
2296 | (max_pref_ilace_vact == native_ilace_vact && max_pref_ilace_hact > native_ilace_hact))) | |
2297 | warn("Native interlaced resolution of %ux%u is smaller than the max preferred interlaced resolution %ux%u.\n", | |
2298 | native_ilace_hact, native_ilace_vact, | |
2299 | max_pref_ilace_hact, max_pref_ilace_vact); | |
2300 | } |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | * Copyright 2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
2 | * Copyright 2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | 3 | * |
4 | 4 | * Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
5 | 5 | */ |
9 | 9 | void edid_state::parse_digital_interface(const unsigned char *x) |
10 | 10 | { |
11 | 11 | data_block = "Digital Interface"; |
12 | printf("%s\n", data_block.c_str()); | |
13 | ||
14 | printf(" Supported Digital Interface: "); | |
12 | printf(" %s:\n", data_block.c_str()); | |
13 | ||
14 | printf(" Supported Digital Interface: "); | |
15 | 15 | unsigned short v = x[2]; |
16 | 16 | switch (v) { |
17 | 17 | case 0x00: |
18 | 18 | printf("Analog Video Input\n"); |
19 | 19 | if (!memchk(x + 2, 12)) |
20 | fail("Bytes 0x02-0x0d should be 0\n"); | |
20 | fail("Bytes 0x02-0x0d should be 0.\n"); | |
21 | 21 | return; |
22 | 22 | case 0x01: printf("DVI\n"); break; |
23 | 23 | case 0x02: printf("DVI Single Link\n"); break; |
31 | 31 | case 0x0a: printf("Open LDI - Consumer Electronics\n"); break; |
32 | 32 | default: |
33 | 33 | printf("Unknown (0x%02x)\n", v); |
34 | fail("Unknown Digital Interface 0x%02x\n", v); | |
34 | fail("Unknown Digital Interface 0x%02x.\n", v); | |
35 | 35 | break; |
36 | 36 | } |
37 | 37 | |
38 | 38 | switch ((x[3]) >> 6) { |
39 | 39 | case 0x00: |
40 | 40 | if (!memchk(x + 3, 4)) |
41 | fail("Bytes 0x03-0x06 should be 0\n"); | |
41 | fail("Bytes 0x03-0x06 should be 0.\n"); | |
42 | 42 | break; |
43 | 43 | case 0x01: |
44 | printf(" Version %u.%u Release %u.%u\n", x[3] & 0x3f, x[4], x[5], x[6]); | |
44 | printf(" Version: %u.%u\n Release: %u.%u\n", x[3] & 0x3f, x[4], x[5], x[6]); | |
45 | 45 | if (x[4] > 99) |
46 | fail("Version number > 99\n"); | |
46 | fail("Version number > 99.\n"); | |
47 | 47 | if (x[6] > 99) |
48 | fail("Release number > 99\n"); | |
48 | fail("Release number > 99.\n"); | |
49 | 49 | break; |
50 | 50 | case 0x02: |
51 | 51 | if (x[3] & 0x3f) |
52 | fail("Bits 5-0 of byte 0x03 should be 0\n"); | |
52 | fail("Bits 5-0 of byte 0x03 should be 0.\n"); | |
53 | 53 | if (x[5] || x[6]) |
54 | fail("Bytes 0x05-0x06 should be 0\n"); | |
55 | printf(" Letter Designation: %c\n", x[4]); | |
54 | fail("Bytes 0x05-0x06 should be 0.\n"); | |
55 | printf(" Letter Designation: %c\n", x[4]); | |
56 | 56 | break; |
57 | 57 | case 0x03: |
58 | 58 | if (x[3] & 0x3f) |
59 | fail("Bits 5-0 of byte 0x03 should be 0\n"); | |
60 | printf(" Date Code: Year %u Week %u Day %u\n", 1990 + x[4], x[5], x[6]); | |
59 | fail("Bits 5-0 of byte 0x03 should be 0.\n"); | |
60 | printf(" Date Code: Year %u Week %u Day %u\n", 1990 + x[4], x[5], x[6]); | |
61 | 61 | if (!x[5] || x[5] > 12) |
62 | fail("Bad month number\n"); | |
62 | fail("Bad month number.\n"); | |
63 | 63 | if (!x[6] || x[6] > 31) |
64 | fail("Bad day number\n"); | |
64 | fail("Bad day number.\n"); | |
65 | 65 | break; |
66 | 66 | } |
67 | 67 | |
68 | 68 | v = x[7]; |
69 | printf(" Data Enable Signal Usage %sAvailable\n", | |
69 | printf(" Data Enable Signal Usage %sAvailable\n", | |
70 | 70 | (v & 0x80) ? "" : "Not "); |
71 | 71 | if (v & 0x80) |
72 | printf(" Data Enable Signal %s\n", | |
73 | (v & 0x40) ? "Low" : "High"); | |
72 | printf(" Data Enable Signal %s\n", | |
73 | (v & 0x40) ? "High" : "Low"); | |
74 | 74 | else if (v & 0x40) |
75 | fail("Bit 6 of byte 0x07 should be 0\n"); | |
76 | printf(" Edge of Shift Clock: "); | |
75 | fail("Bit 6 of byte 0x07 should be 0.\n"); | |
76 | printf(" Edge of Shift Clock: "); | |
77 | 77 | switch ((v >> 4) & 0x03) { |
78 | 78 | case 0: printf("Not specified\n"); break; |
79 | 79 | case 1: printf("Use rising edge of shift clock\n"); break; |
80 | 80 | case 2: printf("Use falling edge of shift clock\n"); break; |
81 | 81 | case 3: printf("Use both edges of shift clock\n"); break; |
82 | 82 | } |
83 | printf(" HDCP is %ssupported\n", (v & 0x08) ? "" : "not "); | |
84 | printf(" Digital Receivers do %ssupport Double Clocking of Input Data\n", | |
85 | (v & 0x04) ? "" : "not "); | |
86 | printf(" Packetized Digital Video is %ssupported\n", (v & 0x02) ? "" : "not "); | |
83 | printf(" HDCP is %ssupported\n", (v & 0x08) ? "" : "not "); | |
84 | printf(" Digital Receivers %ssupport Double Clocking of Input Data\n", | |
85 | (v & 0x04) ? "" : "do not "); | |
86 | printf(" Packetized Digital Video is %ssupported\n", (v & 0x02) ? "" : "not "); | |
87 | 87 | if (v & 0x01) |
88 | fail("Bit 0 of byte 0x07 should be 0\n"); | |
88 | fail("Bit 0 of byte 0x07 should be 0.\n"); | |
89 | 89 | |
90 | 90 | v = x[8]; |
91 | printf(" Data Formats: "); | |
91 | printf(" Data Formats: "); | |
92 | 92 | switch (v) { |
93 | 93 | case 0x15: printf("8-Bit Over 8-Bit RGB\n"); break; |
94 | 94 | case 0x19: printf("12-Bit Over 12-Bit RGB\n"); break; |
97 | 97 | case 0x49: printf("48-Bit MSB-Aligned RGB (Dual Link - High Color)\n"); break; |
98 | 98 | default: |
99 | 99 | printf("Unknown (0x%02x)\n", v); |
100 | fail("Unknown Data Format 0x%02x\n", v); | |
100 | fail("Unknown Data Format 0x%02x.\n", v); | |
101 | 101 | break; |
102 | 102 | } |
103 | 103 | if (x[2] == 0x03 && v != 0x48) |
104 | fail("Data Format should be 0x48, not 0x%02x\n", v); | |
104 | fail("Data Format should be 0x48, not 0x%02x.\n", v); | |
105 | 105 | if (x[2] == 0x04 && v != 0x49) |
106 | fail("Data Format should be 0x49, not 0x%02x\n", v); | |
106 | fail("Data Format should be 0x49, not 0x%02x.\n", v); | |
107 | 107 | |
108 | 108 | v = x[9]; |
109 | 109 | if (v) { |
110 | printf(" Minimum Pixel Clock Frequency Per Link: %u MHz\n", v); | |
110 | printf(" Minimum Pixel Clock Frequency Per Link: %u MHz\n", v); | |
111 | 111 | if (v == 0xff) |
112 | fail("Invalid Min-PCF 0x%02x\n", v); | |
112 | fail("Invalid Min-PCF 0x%02x.\n", v); | |
113 | 113 | } |
114 | 114 | |
115 | 115 | v = x[10] | (x[11] << 8); |
116 | 116 | if (v) { |
117 | printf(" Maximum Pixel Clock Frequency Per Link: %u MHz\n", v); | |
117 | printf(" Maximum Pixel Clock Frequency Per Link: %u MHz\n", v); | |
118 | 118 | if (v == 0xffff) |
119 | fail("Invalid Max-PCF 0x%04x\n", v); | |
119 | fail("Invalid Max-PCF 0x%04x.\n", v); | |
120 | 120 | } |
121 | 121 | |
122 | 122 | v = x[12] | (x[13] << 8); |
123 | 123 | if (v == 0xffff) |
124 | printf(" Crossover Frequency: None - Single Link\n"); | |
124 | printf(" Crossover Frequency: None - Single Link\n"); | |
125 | 125 | else if (v) |
126 | printf(" Crossover Frequency: %u MHz\n", v); | |
126 | printf(" Crossover Frequency: %u MHz\n", v); | |
127 | 127 | } |
128 | 128 | |
129 | 129 | void edid_state::parse_display_device(const unsigned char *x) |
130 | 130 | { |
131 | 131 | data_block = "Display Device"; |
132 | printf("%s\n", data_block.c_str()); | |
133 | ||
134 | printf(" Sub-Pixel Layout: "); | |
132 | printf(" %s:\n", data_block.c_str()); | |
133 | ||
134 | printf(" Sub-Pixel Layout: "); | |
135 | 135 | unsigned char v = x[0x0e]; |
136 | 136 | switch (v) { |
137 | 137 | case 0x00: printf("Not defined\n"); break; |
141 | 141 | case 0x04: printf("Quad Pixel - G at bottom right & top left\n"); break; |
142 | 142 | default: |
143 | 143 | printf("Unknown (0x%02x)\n", v); |
144 | fail("Unknown Sub-Pixel Layout 0x%02x\n", v); | |
145 | break; | |
146 | } | |
147 | printf(" Sub-Pixel Configuration: "); | |
144 | fail("Unknown Sub-Pixel Layout 0x%02x.\n", v); | |
145 | break; | |
146 | } | |
147 | printf(" Sub-Pixel Configuration: "); | |
148 | 148 | v = x[0x0f]; |
149 | 149 | switch (v) { |
150 | 150 | case 0x00: printf("Not defined\n"); break; |
154 | 154 | case 0x04: printf("Quad Pixel\n"); break; |
155 | 155 | default: |
156 | 156 | printf("Unknown (0x%02x)\n", v); |
157 | fail("Unknown Sub-Pixel Configuration 0x%02x\n", v); | |
158 | break; | |
159 | } | |
160 | printf(" Sub-Pixel Shape: "); | |
157 | fail("Unknown Sub-Pixel Configuration 0x%02x.\n", v); | |
158 | break; | |
159 | } | |
160 | printf(" Sub-Pixel Shape: "); | |
161 | 161 | v = x[0x10]; |
162 | 162 | switch (v) { |
163 | 163 | case 0x00: printf("Not defined\n"); break; |
168 | 168 | case 0x05: printf("Elliptical\n"); break; |
169 | 169 | default: |
170 | 170 | printf("Unknown (0x%02x)\n", v); |
171 | fail("Unknown Sub-Pixel Shape 0x%02x\n", v); | |
171 | fail("Unknown Sub-Pixel Shape 0x%02x.\n", v); | |
172 | 172 | break; |
173 | 173 | } |
174 | 174 | if (x[0x11]) |
175 | printf(" Horizontal Dot/Pixel Pitch: %.2f mm\n", | |
175 | printf(" Horizontal Dot/Pixel Pitch: %.2f mm\n", | |
176 | 176 | x[0x11] / 100.0); |
177 | 177 | if (x[0x12]) |
178 | printf(" Vertical Dot/Pixel Pitch: %.2f mm\n", | |
178 | printf(" Vertical Dot/Pixel Pitch: %.2f mm\n", | |
179 | 179 | x[0x12] / 100.0); |
180 | 180 | v = x[0x13]; |
181 | printf(" Display Device %s a Fixed Pixel Format\n", | |
181 | printf(" Display Device %s a Fixed Pixel Format\n", | |
182 | 182 | (v & 0x80) ? "has" : "does not have"); |
183 | printf(" View Direction: "); | |
183 | printf(" View Direction: "); | |
184 | 184 | switch ((v & 0x60) >> 5) { |
185 | 185 | case 0x00: printf("Not specified\n"); break; |
186 | 186 | case 0x01: printf("Direct\n"); break; |
187 | 187 | case 0x02: printf("Reflected\n"); break; |
188 | 188 | case 0x03: printf("Direct & Reflected\n"); break; |
189 | 189 | } |
190 | printf(" Display Device uses %stransparent background\n", | |
190 | printf(" Display Device uses %stransparent background\n", | |
191 | 191 | (v & 0x10) ? "" : "non-"); |
192 | printf(" Physical Implementation: "); | |
192 | printf(" Physical Implementation: "); | |
193 | 193 | switch ((v & 0x0c) >> 2) { |
194 | 194 | case 0x00: printf("Not specified\n"); break; |
195 | 195 | case 0x01: printf("Large Image device for group viewing\n"); break; |
196 | 196 | case 0x02: printf("Desktop or personal display\n"); break; |
197 | 197 | case 0x03: printf("Eyepiece type personal display\n"); break; |
198 | 198 | } |
199 | printf(" Monitor/display does %ssupport DDC/CI\n", | |
199 | printf(" Monitor/display does %ssupport DDC/CI\n", | |
200 | 200 | (v & 0x02) ? "" : "not "); |
201 | 201 | if (v & 0x01) |
202 | fail("Bit 0 of byte 0x13 should be 0\n"); | |
202 | fail("Bit 0 of byte 0x13 should be 0.\n"); | |
203 | 203 | } |
204 | 204 | |
205 | 205 | void edid_state::parse_display_caps(const unsigned char *x) |
206 | 206 | { |
207 | 207 | data_block = "Display Capabities & Feature Support Set"; |
208 | printf("%s\n", data_block.c_str()); | |
208 | printf(" %s:\n", data_block.c_str()); | |
209 | 209 | |
210 | 210 | unsigned short v = x[0x14]; |
211 | 211 | |
212 | printf(" Legacy Modes: %s VGA/DOS Legacy Timing Modes are supported\n", | |
212 | printf(" Legacy Modes: %s VGA/DOS Legacy Timing Modes are supported\n", | |
213 | 213 | (v & 0x80) ? "All" : "Not all"); |
214 | printf(" Stereo Video: "); | |
214 | printf(" Stereo Video: "); | |
215 | 215 | switch ((v & 0x70) >> 4) { |
216 | 216 | case 0x00: printf("No direct stereo\n"); break; |
217 | 217 | case 0x01: printf("Field seq. stereo via stereo sync signal\n"); break; |
219 | 219 | case 0x03: printf("auto-stereoscopic, line interleave\n"); break; |
220 | 220 | default: |
221 | 221 | printf("Unknown (0x%02x)\n", (v & 0x70) >> 4); |
222 | fail("Unknown Stereo Video 0x%02x\n", (v & 0x70) >> 4); | |
223 | break; | |
224 | } | |
225 | printf(" Scaler On Board: %s\n", (v & 0x08) ? "Yes" : "No"); | |
226 | printf(" Image Centering: %s\n", (v & 0x04) ? "Yes" : "No"); | |
227 | printf(" Conditional Update: %s\n", (v & 0x02) ? "Yes" : "No"); | |
228 | printf(" Interlaced Video: %s\n", (v & 0x01) ? "Yes" : "No"); | |
222 | fail("Unknown Stereo Video 0x%02x.\n", (v & 0x70) >> 4); | |
223 | break; | |
224 | } | |
225 | printf(" Scaler On Board: %s\n", (v & 0x08) ? "Yes" : "No"); | |
226 | printf(" Image Centering: %s\n", (v & 0x04) ? "Yes" : "No"); | |
227 | printf(" Conditional Update: %s\n", (v & 0x02) ? "Yes" : "No"); | |
228 | printf(" Interlaced Video: %s\n", (v & 0x01) ? "Yes" : "No"); | |
229 | 229 | |
230 | 230 | v = x[0x15]; |
231 | printf(" Frame Lock: %s\n", (v & 0x80) ? "Yes" : "No"); | |
232 | printf(" Frame Rate Conversion: "); | |
231 | printf(" Frame Lock: %s\n", (v & 0x80) ? "Yes" : "No"); | |
232 | printf(" Frame Rate Conversion: "); | |
233 | 233 | switch ((v & 0x60) >> 5) { |
234 | 234 | case 0x00: printf("Not supported\n"); break; |
235 | 235 | case 0x01: printf("Vertical is converted to a single frequency\n"); break; |
237 | 237 | case 0x03: printf("Both Vertical & Horizontal are converted to single frequencies\n"); break; |
238 | 238 | } |
239 | 239 | if (v & 0x1f) |
240 | fail("Bits 4-0 of byte 0x15 should be 0\n"); | |
240 | fail("Bits 4-0 of byte 0x15 should be 0.\n"); | |
241 | 241 | v = x[0x16] | (x[0x17] << 8); |
242 | printf(" Vertical Frequency: "); | |
242 | printf(" Vertical Frequency: "); | |
243 | 243 | if (!v) { |
244 | 244 | printf("Not available\n"); |
245 | 245 | } else if (v == 0xffff) { |
246 | 246 | printf("Reserved\n"); |
247 | fail("Vertical Frequency uses 0xffff (reserved value)\n"); | |
247 | fail("Vertical Frequency uses 0xffff (reserved value).\n"); | |
248 | 248 | } else { |
249 | 249 | printf("%.2f kHz\n", v / 100.0); |
250 | 250 | } |
251 | 251 | v = x[0x18] | (x[0x19] << 8); |
252 | printf(" Horizontal Frequency: "); | |
252 | printf(" Horizontal Frequency: "); | |
253 | 253 | if (!v) { |
254 | 254 | printf("Not available\n"); |
255 | 255 | } else if (v == 0xffff) { |
256 | 256 | printf("Reserved\n"); |
257 | fail("Horizontal Frequency uses 0xffff (reserved value)\n"); | |
257 | fail("Horizontal Frequency uses 0xffff (reserved value).\n"); | |
258 | 258 | } else { |
259 | 259 | printf("%.2f kHz\n", v / 100.0); |
260 | 260 | } |
261 | 261 | |
262 | 262 | v = x[0x1a]; |
263 | printf(" Display/Scan Orientation Definition Type: "); | |
263 | printf(" Display/Scan Orientation Definition Type: "); | |
264 | 264 | switch ((v & 0xc0) >> 6) { |
265 | 265 | case 0x00: printf("Not defined\n"); break; |
266 | 266 | case 0x01: printf("Fixed Orientation\n"); break; |
267 | 267 | case 0x02: printf("Pivots: Default Orientation\n"); break; |
268 | 268 | case 0x03: printf("Pivots: Current Orientation (requires multiple EDID Extension Tables)\n"); break; |
269 | 269 | } |
270 | printf(" Screen Orientation: %s\n", | |
270 | printf(" Screen Orientation: %s\n", | |
271 | 271 | (v & 0x20) ? "Portrait" : "Landscape"); |
272 | printf(" Zero Pixel Location: "); | |
272 | printf(" Zero Pixel Location: "); | |
273 | 273 | switch ((v & 0x18) >> 3) { |
274 | 274 | case 0x00: printf("Upper Left\n"); break; |
275 | 275 | case 0x01: printf("Upper Right\n"); break; |
276 | 276 | case 0x02: printf("Lower Left\n"); break; |
277 | 277 | case 0x03: printf("Lower Right\n"); break; |
278 | 278 | } |
279 | printf(" Scan Direction: "); | |
279 | printf(" Scan Direction: "); | |
280 | 280 | switch ((v & 0x06) >> 1) { |
281 | 281 | case 0x00: printf("Not defined\n"); break; |
282 | 282 | case 0x01: printf("Fast Scan is on the Major (Long) Axis and Slow Scan is on the Minor Axis\n"); break; |
283 | 283 | case 0x02: printf("Fast Scan is on the Minor (Short) Axis and Slow Scan is on the Major Axis\n"); break; |
284 | 284 | case 0x03: |
285 | 285 | printf("Reserved\n"); |
286 | fail("Scan Direction used the reserved value 0x03\n"); | |
287 | break; | |
288 | } | |
289 | printf(" Standalone Projector: %s\n", | |
286 | fail("Scan Direction used the reserved value 0x03.\n"); | |
287 | break; | |
288 | } | |
289 | printf(" Standalone Projector: %s\n", | |
290 | 290 | (v & 0x01) ? "Yes" : "No"); |
291 | 291 | |
292 | 292 | v = x[0x1b]; |
293 | printf(" Default Color/Luminance Decoding: "); | |
293 | printf(" Default Color/Luminance Decoding: "); | |
294 | 294 | switch (v) { |
295 | 295 | case 0x00: printf("Not defined\n"); break; |
296 | 296 | case 0x01: printf("BGR\n"); break; |
309 | 309 | case 0x0e: printf("Monochrome\n"); break; |
310 | 310 | default: |
311 | 311 | printf("Unknown (0x%02x)\n", v); |
312 | fail("Unknown Default Color/Luminance Decoding 0x%02x\n", v); | |
312 | fail("Unknown Default Color/Luminance Decoding 0x%02x.\n", v); | |
313 | 313 | break; |
314 | 314 | } |
315 | 315 | v = x[0x1c]; |
316 | printf(" Preferred Color/Luminance Decoder: "); | |
316 | printf(" Preferred Color/Luminance Decoder: "); | |
317 | 317 | switch (v) { |
318 | 318 | case 0x00: printf("Uses Default Decoding\n"); break; |
319 | 319 | case 0x01: printf("BGR\n"); break; |
322 | 322 | case 0x04: printf("Monochrome\n"); break; |
323 | 323 | default: |
324 | 324 | printf("Unknown (0x%02x)\n", v); |
325 | fail("Unknown Preferred Color/Luminance Decoding 0x%02x\n", v); | |
325 | fail("Unknown Preferred Color/Luminance Decoding 0x%02x.\n", v); | |
326 | 326 | break; |
327 | 327 | } |
328 | 328 | v = x[0x1d]; |
329 | 329 | if (v && (x[0x1e] & 0xfc)) { |
330 | printf(" Color/Luminance Decoding Capabilities:\n"); | |
331 | printf(" BGR: %s\n", (v & 0x80) ? "Yes" : "No"); | |
332 | printf(" Y/C (S-Video) NTSC: %s\n", (v & 0x40) ? "Yes" : "No"); | |
333 | printf(" Y/C (S-Video) PAL: %s\n", (v & 0x20) ? "Yes" : "No"); | |
334 | printf(" Y/C (S-Video) SECAM: %s\n", (v & 0x10) ? "Yes" : "No"); | |
335 | printf(" YCrCb 4:4:4 per SMPTE 293M & 294M: %s\n", (v & 0x08) ? "Yes" : "No"); | |
336 | printf(" YCrCb 4:2:2 per SMPTE 293M & 294M: %s\n", (v & 0x04) ? "Yes" : "No"); | |
337 | printf(" YCrCb 4:2:0 per SMPTE 293M & 294M: %s\n", (v & 0x02) ? "Yes" : "No"); | |
338 | printf(" YCrCb per SMPTE 260M (Legacy HDTV): %s\n", (v & 0x01) ? "Yes" : "No"); | |
330 | printf(" Color/Luminance Decoding Capabilities:\n"); | |
331 | printf(" BGR: %s\n", (v & 0x80) ? "Yes" : "No"); | |
332 | printf(" Y/C (S-Video) NTSC: %s\n", (v & 0x40) ? "Yes" : "No"); | |
333 | printf(" Y/C (S-Video) PAL: %s\n", (v & 0x20) ? "Yes" : "No"); | |
334 | printf(" Y/C (S-Video) SECAM: %s\n", (v & 0x10) ? "Yes" : "No"); | |
335 | printf(" YCrCb 4:4:4 per SMPTE 293M & 294M: %s\n", (v & 0x08) ? "Yes" : "No"); | |
336 | printf(" YCrCb 4:2:2 per SMPTE 293M & 294M: %s\n", (v & 0x04) ? "Yes" : "No"); | |
337 | printf(" YCrCb 4:2:0 per SMPTE 293M & 294M: %s\n", (v & 0x02) ? "Yes" : "No"); | |
338 | printf(" YCrCb per SMPTE 260M (Legacy HDTV): %s\n", (v & 0x01) ? "Yes" : "No"); | |
339 | 339 | v = x[0x1e]; |
340 | printf(" YPbPr per SMPTE 240M (Legacy HDTV): %s\n", (v & 0x80) ? "Yes" : "No"); | |
341 | printf(" YCrCb per SMPTE 274M (Modern HDTV): %s\n", (v & 0x40) ? "Yes" : "No"); | |
342 | printf(" YPbPr per SMPTE 274M (Modern HDTV): %s\n", (v & 0x20) ? "Yes" : "No"); | |
343 | printf(" Y B-Y R-Y BetaCam (Sony): %s\n", (v & 0x10) ? "Yes" : "No"); | |
344 | printf(" Y B-Y R-Y M-2 (Matsushita): %s\n", (v & 0x08) ? "Yes" : "No"); | |
345 | printf(" Monochrome: %s\n", (v & 0x04) ? "Yes" : "No"); | |
346 | } else { | |
347 | printf(" Color/Luminance Decoding Capabilities: None\n"); | |
340 | printf(" YPbPr per SMPTE 240M (Legacy HDTV): %s\n", (v & 0x80) ? "Yes" : "No"); | |
341 | printf(" YCrCb per SMPTE 274M (Modern HDTV): %s\n", (v & 0x40) ? "Yes" : "No"); | |
342 | printf(" YPbPr per SMPTE 274M (Modern HDTV): %s\n", (v & 0x20) ? "Yes" : "No"); | |
343 | printf(" Y B-Y R-Y BetaCam (Sony): %s\n", (v & 0x10) ? "Yes" : "No"); | |
344 | printf(" Y B-Y R-Y M-2 (Matsushita): %s\n", (v & 0x08) ? "Yes" : "No"); | |
345 | printf(" Monochrome: %s\n", (v & 0x04) ? "Yes" : "No"); | |
346 | } else { | |
347 | printf(" Color/Luminance Decoding Capabilities: None\n"); | |
348 | 348 | } |
349 | 349 | if (v & 0x03) |
350 | fail("Bits 1-0 of byte 0x1e should be 0\n"); | |
350 | fail("Bits 1-0 of byte 0x1e should be 0.\n"); | |
351 | 351 | |
352 | 352 | v = x[0x1f]; |
353 | printf(" Dithering: %s\n", (v & 0x80) ? "Yes" : "No"); | |
353 | printf(" Dithering: %s\n", (v & 0x80) ? "Yes" : "No"); | |
354 | 354 | if (v & 0x7f) |
355 | fail("Bits 6-0 of byte 0x1f should be 0\n"); | |
355 | fail("Bits 6-0 of byte 0x1f should be 0.\n"); | |
356 | 356 | v = x[0x20]; |
357 | printf(" Supported Color Bit-Depth of Sub-Channel 0 (Blue): "); | |
358 | if (!v) { | |
359 | printf("No Information\n"); | |
360 | } else if (v <= 16) { | |
361 | printf("%u\n", v); | |
362 | } else { | |
363 | printf("Reserved (0x%02x)\n", v); | |
364 | fail("Supported Color Bit-Depth of Sub-Channel Blue value is 0x%02x\n", v); | |
357 | printf(" Supported Color Bit-Depth of Sub-Channel 0 (Blue): "); | |
358 | if (!v) { | |
359 | printf("No Information\n"); | |
360 | } else if (v <= 16) { | |
361 | printf("%u\n", v); | |
362 | } else { | |
363 | printf("Reserved (0x%02x)\n", v); | |
364 | fail("Supported Color Bit-Depth of Sub-Channel Blue value is 0x%02x.\n", v); | |
365 | 365 | } |
366 | 366 | v = x[0x21]; |
367 | printf(" Supported Color Bit-Depth of Sub-Channel 1 (Green): "); | |
368 | if (!v) { | |
369 | printf("No Information\n"); | |
370 | } else if (v <= 16) { | |
371 | printf("%u\n", v); | |
372 | } else { | |
373 | printf("Reserved (0x%02x)\n", v); | |
374 | fail("Supported Color Bit-Depth of Sub-Channel Green value is 0x%02x\n", v); | |
367 | printf(" Supported Color Bit-Depth of Sub-Channel 1 (Green): "); | |
368 | if (!v) { | |
369 | printf("No Information\n"); | |
370 | } else if (v <= 16) { | |
371 | printf("%u\n", v); | |
372 | } else { | |
373 | printf("Reserved (0x%02x)\n", v); | |
374 | fail("Supported Color Bit-Depth of Sub-Channel Green value is 0x%02x.\n", v); | |
375 | 375 | } |
376 | 376 | v = x[0x22]; |
377 | printf(" Supported Color Bit-Depth of Sub-Channel 2 (Red): "); | |
378 | if (!v) { | |
379 | printf("No Information\n"); | |
380 | } else if (v <= 16) { | |
381 | printf("%u\n", v); | |
382 | } else { | |
383 | printf("Reserved (0x%02x)\n", v); | |
384 | fail("Supported Color Bit-Depth of Sub-Channel Red value is 0x%02x\n", v); | |
377 | printf(" Supported Color Bit-Depth of Sub-Channel 2 (Red): "); | |
378 | if (!v) { | |
379 | printf("No Information\n"); | |
380 | } else if (v <= 16) { | |
381 | printf("%u\n", v); | |
382 | } else { | |
383 | printf("Reserved (0x%02x)\n", v); | |
384 | fail("Supported Color Bit-Depth of Sub-Channel Red value is 0x%02x.\n", v); | |
385 | 385 | } |
386 | 386 | v = x[0x23]; |
387 | printf(" Supported Color Bit-Depth of Sub-Channel 0 (Cb/Pb): "); | |
388 | if (!v) { | |
389 | printf("No Information\n"); | |
390 | } else if (v <= 16) { | |
391 | printf("%u\n", v); | |
392 | } else { | |
393 | printf("Reserved (0x%02x)\n", v); | |
394 | fail("Supported Color Bit-Depth of Sub-Channel Cb/Pb value is 0x%02x\n", v); | |
387 | printf(" Supported Color Bit-Depth of Sub-Channel 0 (Cb/Pb): "); | |
388 | if (!v) { | |
389 | printf("No Information\n"); | |
390 | } else if (v <= 16) { | |
391 | printf("%u\n", v); | |
392 | } else { | |
393 | printf("Reserved (0x%02x)\n", v); | |
394 | fail("Supported Color Bit-Depth of Sub-Channel Cb/Pb value is 0x%02x.\n", v); | |
395 | 395 | } |
396 | 396 | v = x[0x24]; |
397 | printf(" Supported Color Bit-Depth of Sub-Channel 1 (Y): "); | |
398 | if (!v) { | |
399 | printf("No Information\n"); | |
400 | } else if (v <= 16) { | |
401 | printf("%u\n", v); | |
402 | } else { | |
403 | printf("Reserved (0x%02x)\n", v); | |
404 | fail("Supported Color Bit-Depth of Sub-Channel Y value is 0x%02x\n", v); | |
397 | printf(" Supported Color Bit-Depth of Sub-Channel 1 (Y): "); | |
398 | if (!v) { | |
399 | printf("No Information\n"); | |
400 | } else if (v <= 16) { | |
401 | printf("%u\n", v); | |
402 | } else { | |
403 | printf("Reserved (0x%02x)\n", v); | |
404 | fail("Supported Color Bit-Depth of Sub-Channel Y value is 0x%02x.\n", v); | |
405 | 405 | } |
406 | 406 | v = x[0x25]; |
407 | printf(" Supported Color Bit-Depth of Sub-Channel 2 (Cr/Pr): "); | |
408 | if (!v) { | |
409 | printf("No Information\n"); | |
410 | } else if (v <= 16) { | |
411 | printf("%u\n", v); | |
412 | } else { | |
413 | printf("Reserved (0x%02x)\n", v); | |
414 | fail("Supported Color Bit-Depth of Sub-Channel Cr/Pr value is 0x%02x\n", v); | |
407 | printf(" Supported Color Bit-Depth of Sub-Channel 2 (Cr/Pr): "); | |
408 | if (!v) { | |
409 | printf("No Information\n"); | |
410 | } else if (v <= 16) { | |
411 | printf("%u\n", v); | |
412 | } else { | |
413 | printf("Reserved (0x%02x)\n", v); | |
414 | fail("Supported Color Bit-Depth of Sub-Channel Cr/Pr value is 0x%02x.\n", v); | |
415 | 415 | } |
416 | 416 | |
417 | 417 | v = x[0x26]; |
418 | printf(" Aspect Ratio Conversion Modes: "); | |
419 | if (!v) { | |
420 | printf("None\n"); | |
421 | } else { | |
422 | printf(" Full Mode: %s\n", (v & 0x80) ? "Yes" : "No"); | |
423 | printf(" Zoom Mode: %s\n", (v & 0x40) ? "Yes" : "No"); | |
424 | printf(" Squeeze (Side Bars/Letterbox) Mode: %s\n", (v & 0x20) ? "Yes" : "No"); | |
425 | printf(" Variable (Expand/Shrink) Mode: %s\n", (v & 0x10) ? "Yes" : "No"); | |
418 | printf(" Aspect Ratio Conversion Modes:"); | |
419 | if (!v) { | |
420 | printf(" None\n"); | |
421 | } else { | |
422 | printf("\n"); | |
423 | printf(" Full Mode: %s\n", (v & 0x80) ? "Yes" : "No"); | |
424 | printf(" Zoom Mode: %s\n", (v & 0x40) ? "Yes" : "No"); | |
425 | printf(" Squeeze (Side Bars/Letterbox) Mode: %s\n", (v & 0x20) ? "Yes" : "No"); | |
426 | printf(" Variable (Expand/Shrink) Mode: %s\n", (v & 0x10) ? "Yes" : "No"); | |
426 | 427 | } |
427 | 428 | if (v & 0x0f) |
428 | fail("Bits 3-0 of byte 0x26 should be 0\n"); | |
429 | fail("Bits 3-0 of byte 0x26 should be 0.\n"); | |
429 | 430 | } |
430 | 431 | |
431 | 432 | void edid_state::parse_display_xfer(const unsigned char *x) |
432 | 433 | { |
433 | 434 | data_block = "Display Transfer Characteristics - Gamma"; |
434 | printf("%s\n", data_block.c_str()); | |
435 | printf(" %s:\n", data_block.c_str()); | |
435 | 436 | |
436 | 437 | unsigned char v = x[0x51]; |
437 | 438 | unsigned num_entries = v & 0x3f; |
438 | 439 | |
439 | 440 | switch ((v & 0xc0) >> 6) { |
440 | 441 | case 0x00: |
441 | printf(" No Display Transfer Characteristics\n"); | |
442 | printf(" No Display Transfer Characteristics\n"); | |
442 | 443 | if (!memchk(x + 0x51, 46)) |
443 | fail("Bytes 0x51-0x7e should be 0\n"); | |
444 | fail("Bytes 0x51-0x7e should be 0.\n"); | |
444 | 445 | return; |
445 | 446 | case 0x03: |
446 | fail("Bits 7-6 of byte 0x51 cannot be 0x03\n"); | |
447 | fail("Bits 7-6 of byte 0x51 cannot be 0x03.\n"); | |
447 | 448 | return; |
448 | 449 | default: |
449 | 450 | break; |
451 | 452 | |
452 | 453 | if (((v & 0xc0) >> 6) == 0x01) { |
453 | 454 | if (!num_entries || num_entries > 45) |
454 | fail("White Curve with %u entries\n", num_entries); | |
455 | fail("White Curve with %u entries.\n", num_entries); | |
455 | 456 | if (num_entries > 45) |
456 | 457 | num_entries = 45; |
457 | 458 | if (!memchk(x + 0x52 + num_entries, 45 - num_entries)) |
458 | fail("Bytes 0x%02x-0x7e should be 0\n", 0x52 + num_entries); | |
459 | printf(" White Curve (%u entries):\n", num_entries); | |
460 | hex_block(" ", x + 0x52, num_entries, false, 15); | |
459 | fail("Bytes 0x%02x-0x7e should be 0.\n", 0x52 + num_entries); | |
460 | printf(" White Curve (%u entries):\n", num_entries); | |
461 | hex_block(" ", x + 0x52, num_entries, false, 15); | |
461 | 462 | } else { |
462 | 463 | if (!num_entries || num_entries > 15) |
463 | fail("Sub-Channel Curve with %u entries\n", num_entries); | |
464 | fail("Sub-Channel Curve with %u entries.\n", num_entries); | |
464 | 465 | if (num_entries > 15) |
465 | 466 | num_entries = 15; |
466 | printf(" Sub-Channel 0 (Blue) Curve with %u entries:\n", num_entries); | |
467 | hex_block(" ", x + 0x52, num_entries, false); | |
467 | printf(" Sub-Channel 0 (Blue) Curve with %u entries:\n", num_entries); | |
468 | hex_block(" ", x + 0x52, num_entries, false); | |
468 | 469 | if (!memchk(x + 0x52 + num_entries, 15 - num_entries)) |
469 | fail("Bytes 0x%02x-0x7e should be 0\n", 0x52 + num_entries); | |
470 | printf(" Sub-Channel 1 (Green) Curve with %u entries:\n", num_entries); | |
471 | hex_block(" ", x + 0x52 + 15, num_entries, false); | |
470 | fail("Bytes 0x%02x-0x7e should be 0.\n", 0x52 + num_entries); | |
471 | printf(" Sub-Channel 1 (Green) Curve with %u entries:\n", num_entries); | |
472 | hex_block(" ", x + 0x52 + 15, num_entries, false); | |
472 | 473 | if (!memchk(x + 0x52 + 15 + num_entries, 15 - num_entries)) |
473 | fail("Bytes 0x%02x-0x7e should be 0\n", 0x52 + 15 + num_entries); | |
474 | printf(" Sub-Channel 2 (Red) Curve with %u entries:\n", num_entries); | |
475 | hex_block(" ", x + 0x52 + 30, num_entries, false); | |
474 | fail("Bytes 0x%02x-0x7e should be 0.\n", 0x52 + 15 + num_entries); | |
475 | printf(" Sub-Channel 2 (Red) Curve with %u entries:\n", num_entries); | |
476 | hex_block(" ", x + 0x52 + 30, num_entries, false); | |
476 | 477 | if (!memchk(x + 0x52 + 30 + num_entries, 15 - num_entries)) |
477 | fail("Bytes 0x%02x-0x7e should be 0\n", 0x52 + 30 + num_entries); | |
478 | fail("Bytes 0x%02x-0x7e should be 0.\n", 0x52 + 30 + num_entries); | |
478 | 479 | } |
479 | 480 | } |
480 | 481 | |
481 | 482 | void edid_state::parse_di_ext_block(const unsigned char *x) |
482 | 483 | { |
483 | printf("%s Version %u\n", block.c_str(), x[1]); | |
484 | printf(" Version: %u\n", x[1]); | |
484 | 485 | if (!x[1]) |
485 | fail("Invalid version 0\n"); | |
486 | fail("Invalid version 0.\n"); | |
486 | 487 | |
487 | 488 | parse_digital_interface(x); |
488 | 489 | parse_display_device(x); |
489 | 490 | parse_display_caps(x); |
490 | 491 | if (!memchk(x + 0x27, 16)) |
491 | fail("Bytes 0x27-0x36 should be 0\n"); | |
492 | fail("Bytes 0x27-0x36 should be 0.\n"); | |
492 | 493 | if (!memchk(x + 0x37, 17)) |
493 | fail("Bytes 0x37-0x47 should be 0\n"); | |
494 | fail("Bytes 0x37-0x47 should be 0.\n"); | |
494 | 495 | if (!memchk(x + 0x48, 9)) |
495 | fail("Bytes 0x48-0x50 should be 0\n"); | |
496 | fail("Bytes 0x48-0x50 should be 0.\n"); | |
496 | 497 | parse_display_xfer(x); |
497 | 498 | } |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | 2 | * Copyright 2006-2012 Red Hat, Inc. |
3 | * Copyright 2018-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | * Copyright 2018-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
4 | 4 | * |
5 | 5 | * Author: Adam Jackson <ajax@nwnk.net> |
6 | 6 | * Maintainer: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
7 | 7 | */ |
8 | 8 | |
9 | #include <string.h> | |
10 | 9 | #include <math.h> |
11 | 10 | |
12 | 11 | #include "edid-decode.h" |
40 | 39 | printf("\n"); |
41 | 40 | } |
42 | 41 | |
43 | static void check_displayid_datablock_revision(const unsigned char *x) | |
44 | { | |
45 | unsigned char revisionflags = x[1]; | |
46 | ||
47 | if (revisionflags) | |
48 | warn("Unexpected revision and flags (0x%02x != 0)\n", revisionflags); | |
42 | void edid_state::check_displayid_datablock_revision(unsigned char hdr, | |
43 | unsigned char valid_flags, | |
44 | unsigned char rev) | |
45 | { | |
46 | unsigned char revision = hdr & 7; | |
47 | unsigned char flags = hdr & ~7 & ~valid_flags; | |
48 | ||
49 | if (revision != rev) | |
50 | warn("Unexpected revision (%u != %u).\n", revision, rev); | |
51 | if (flags) | |
52 | warn("Unexpected flags (0x%02x).\n", flags); | |
49 | 53 | } |
50 | 54 | |
51 | 55 | static bool check_displayid_datablock_length(const unsigned char *x, |
56 | 60 | unsigned char len = x[2]; |
57 | 61 | |
58 | 62 | if (expectedlenmin == expectedlenmax && len != expectedlenmax) |
59 | fail("DisplayID payload length is different than expected (%d != %d)\n", len, expectedlenmax); | |
63 | fail("DisplayID payload length is different than expected (%d != %d).\n", len, expectedlenmax); | |
60 | 64 | else if (len > expectedlenmax) |
61 | fail("DisplayID payload length is greater than expected (%d > %d)\n", len, expectedlenmax); | |
65 | fail("DisplayID payload length is greater than expected (%d > %d).\n", len, expectedlenmax); | |
62 | 66 | else if (len < expectedlenmin) |
63 | fail("DisplayID payload length is less than expected (%d < %d)\n", len, expectedlenmin); | |
67 | fail("DisplayID payload length is less than expected (%d < %d).\n", len, expectedlenmin); | |
64 | 68 | else |
65 | 69 | return true; |
66 | 70 | |
71 | 75 | |
72 | 76 | // tag 0x00 and 0x20 |
73 | 77 | |
74 | static void parse_displayid_product_id(const unsigned char *x, bool is_v2) | |
75 | { | |
76 | check_displayid_datablock_revision(x); | |
77 | ||
78 | if (is_v2) | |
79 | printf(" Vendor IEEE OUI: %02X-%02X-%02X\n", x[3], x[4], x[5]); | |
80 | else | |
78 | void edid_state::parse_displayid_product_id(const unsigned char *x) | |
79 | { | |
80 | check_displayid_datablock_revision(x[1]); | |
81 | ||
82 | dispid.has_product_identification = true; | |
83 | if (dispid.version >= 0x20) { | |
84 | unsigned oui = (x[3] << 16) | (x[4] << 8) | x[5]; | |
85 | printf(" Vendor OUI %s\n", ouitohex(oui).c_str()); | |
86 | } else { | |
81 | 87 | printf(" Vendor ID: %c%c%c\n", x[3], x[4], x[5]); |
88 | } | |
82 | 89 | printf(" Product Code: %u\n", x[6] | (x[7] << 8)); |
83 | 90 | unsigned sn = x[8] | (x[9] << 8) | (x[10] << 16) | (x[11] << 24); |
84 | if (sn) | |
85 | printf(" Serial Number: %u\n", sn); | |
91 | if (sn) { | |
92 | if (hide_serial_numbers) | |
93 | printf(" Serial Number: ...\n"); | |
94 | else | |
95 | printf(" Serial Number: %u\n", sn); | |
96 | } | |
86 | 97 | unsigned week = x[12]; |
87 | 98 | unsigned year = 2000 + x[13]; |
88 | 99 | printf(" %s: %u", |
124 | 135 | } |
125 | 136 | } |
126 | 137 | |
127 | static void parse_displayid_parameters(const unsigned char *x) | |
128 | { | |
129 | check_displayid_datablock_revision(x); | |
138 | void edid_state::parse_displayid_parameters(const unsigned char *x) | |
139 | { | |
140 | check_displayid_datablock_revision(x[1]); | |
130 | 141 | |
131 | 142 | if (!check_displayid_datablock_length(x, 12, 12)) |
132 | 143 | return; |
133 | 144 | |
145 | dispid.has_display_parameters = true; | |
134 | 146 | printf(" Image size: %.1f mm x %.1f mm\n", |
135 | 147 | ((x[4] << 8) + x[3]) / 10.0, |
136 | 148 | ((x[6] << 8) + x[5]) / 10.0); |
167 | 179 | |
168 | 180 | void edid_state::parse_displayid_color_characteristics(const unsigned char *x) |
169 | 181 | { |
170 | check_displayid_datablock_revision(x); | |
182 | check_displayid_datablock_revision(x[1], 0xf8, 1); | |
171 | 183 | |
172 | 184 | unsigned cie_year = (x[1] & 0x80) ? 1976 : 1931; |
173 | 185 | unsigned xfer_id = (x[1] >> 3) & 0x0f; |
180 | 192 | printf(" Uses %u CIE (x, y) coordinates\n", cie_year); |
181 | 193 | if (xfer_id) { |
182 | 194 | printf(" Associated with Transfer Characteristics Data Block with Identifier %u\n", xfer_id); |
183 | if (!(preparse_xfer_ids & (1 << xfer_id))) | |
184 | fail("Missing Transfer Characteristics Data Block with Identifier %u\n", xfer_id); | |
195 | if (!(dispid.preparse_xfer_ids & (1 << xfer_id))) | |
196 | fail("Missing Transfer Characteristics Data Block with Identifier %u.\n", xfer_id); | |
185 | 197 | } |
186 | 198 | if (!num_primaries) { |
187 | 199 | printf(" Uses color space %s\n", |
208 | 220 | |
209 | 221 | // tag 0x03 and 0x22 |
210 | 222 | |
211 | void edid_state::parse_displayid_type_1_7_timing(const unsigned char *x, bool type7) | |
223 | void edid_state::parse_displayid_type_1_7_timing(const unsigned char *x, | |
224 | bool type7, unsigned block_rev, bool is_cta) | |
212 | 225 | { |
213 | 226 | struct timings t = {}; |
214 | 227 | unsigned hbl, vbl; |
215 | 228 | std::string s("aspect "); |
216 | 229 | |
230 | dispid.has_type_1_7 = true; | |
217 | 231 | t.pixclk_khz = (type7 ? 1 : 10) * (1 + (x[0] + (x[1] << 8) + (x[2] << 16))); |
218 | 232 | switch (x[3] & 0xf) { |
219 | 233 | case 0: |
257 | 271 | break; |
258 | 272 | default: |
259 | 273 | s += "undefined"; |
260 | fail("Unknown aspect 0x%02x\n", x[3] & 0xf); | |
274 | if ((x[3] & 0xf) > (dispid.version <= 0x12 ? 7 : 8)) | |
275 | fail("Unknown aspect 0x%02x.\n", x[3] & 0xf); | |
261 | 276 | break; |
262 | 277 | } |
263 | 278 | switch ((x[3] >> 5) & 0x3) { |
272 | 287 | break; |
273 | 288 | case 3: |
274 | 289 | s += ", reserved"; |
275 | fail("Reserved stereo 0x03\n"); | |
276 | break; | |
277 | } | |
290 | fail("Reserved stereo 0x03.\n"); | |
291 | break; | |
292 | } | |
293 | if (block_rev >= 2 && (x[3] & 0x80)) | |
294 | s += ", YCbCr 4:2:0"; | |
278 | 295 | |
279 | 296 | t.hact = 1 + (x[4] | (x[5] << 8)); |
280 | 297 | hbl = 1 + (x[6] | (x[7] << 8)); |
297 | 314 | t.vsync /= 2; |
298 | 315 | t.vbp /= 2; |
299 | 316 | } |
300 | if (x[3] & 0x80) | |
317 | if (block_rev < 2 && (x[3] & 0x80)) { | |
301 | 318 | s += ", preferred"; |
302 | ||
303 | print_detailed_timings(" ", t, s.c_str()); | |
319 | dispid.preferred_timings.push_back(timings_ext(t, "DTD", s)); | |
320 | } | |
321 | ||
322 | print_timings(" ", &t, "DTD", s.c_str(), true); | |
323 | if (is_cta) { | |
324 | timings_ext te(t, "DTD", s); | |
325 | cta.vec_vtdbs.push_back(te); | |
326 | ||
327 | // Only use a T7VTDB if is cannot be expressed by a | |
328 | // DTD or a T10VTDB. | |
329 | if (t.hact <= 4095 && t.vact <= 4095 && | |
330 | t.pixclk_khz <= 655360 && !(x[3] & 0xe0)) { | |
331 | fail("This T7VTDB can be represented as an 18-byte DTD.\n"); | |
332 | return; | |
333 | } | |
334 | unsigned htot = t.hact + t.hfp + t.hsync + t.hbp; | |
335 | unsigned vtot = t.vact + t.vfp + t.vsync + t.vbp; | |
336 | unsigned refresh = (t.pixclk_khz * 1000ULL) / (htot * vtot); | |
337 | ||
338 | for (unsigned rb = 0; rb <= 3; rb++) { | |
339 | timings cvt_t = calc_cvt_mode(refresh, t.hact, t.vact, rb); | |
340 | if (match_timings(t, cvt_t)) { | |
341 | fail("This T7VTDB can be represented as a T10VTDB.\n"); | |
342 | return; | |
343 | } | |
344 | } | |
345 | timings cvt_t = calc_cvt_mode(refresh, t.hact, t.vact, 3 | RB_FLAG); | |
346 | if (match_timings(t, cvt_t)) | |
347 | fail("This T7VTDB can be represented as a T10VTDB.\n"); | |
348 | } | |
304 | 349 | } |
305 | 350 | |
306 | 351 | // tag 0x04 |
350 | 395 | break; |
351 | 396 | case 3: |
352 | 397 | s += ", reserved"; |
353 | fail("Reserved stereo 0x03\n"); | |
354 | break; | |
355 | } | |
356 | if (x[3] & 0x80) | |
398 | fail("Reserved stereo 0x03.\n"); | |
399 | break; | |
400 | } | |
401 | if (x[3] & 0x80) { | |
357 | 402 | s += ", preferred"; |
358 | ||
359 | print_detailed_timings(" ", t, s.c_str()); | |
403 | dispid.preferred_timings.push_back(timings_ext(t, "DTD", s)); | |
404 | } | |
405 | ||
406 | print_timings(" ", &t, "DTD", s.c_str(), true); | |
360 | 407 | } |
361 | 408 | |
362 | 409 | // tag 0x05 |
408 | 455 | break; |
409 | 456 | default: |
410 | 457 | s += "undefined"; |
411 | fail("Unknown aspect 0x%02x\n", x[3] & 0xf); | |
458 | if ((x[3] & 0xf) > (dispid.version <= 0x12 ? 7 : 8)) | |
459 | fail("Unknown aspect 0x%02x.\n", x[3] & 0xf); | |
412 | 460 | break; |
413 | 461 | } |
414 | 462 | |
418 | 466 | |
419 | 467 | edid_cvt_mode(1 + (x[2] & 0x7f), t); |
420 | 468 | |
421 | if (x[0] & 0x80) | |
469 | if (x[0] & 0x80) { | |
422 | 470 | s += ", preferred"; |
423 | ||
424 | print_detailed_timings(" ", t, s.c_str()); | |
471 | dispid.preferred_timings.push_back(timings_ext(t, "CVT", s)); | |
472 | } | |
473 | ||
474 | print_timings(" ", &t, "CVT", s.c_str()); | |
425 | 475 | } |
426 | 476 | |
427 | 477 | // tag 0x06 and 0x23 |
428 | 478 | |
429 | void edid_state::parse_displayid_type_4_8_timing(unsigned char type, unsigned short id) | |
479 | void edid_state::parse_displayid_type_4_8_timing(unsigned char type, unsigned short id, bool is_cta) | |
430 | 480 | { |
431 | 481 | const struct timings *t = NULL; |
432 | char suffix[16]; | |
482 | char type_name[16]; | |
433 | 483 | |
434 | 484 | switch (type) { |
435 | case 0: t = find_dmt_id(id); strcpy(suffix, "DMT"); break; | |
436 | case 1: t = find_vic_id(id); sprintf(suffix, "VIC %3u", id); break; | |
437 | case 2: t = find_hdmi_vic_id(id); sprintf(suffix, "HDMI VIC %u", id); break; | |
485 | case 0: t = find_dmt_id(id); sprintf(type_name, "DMT 0x%02x", id); break; | |
486 | case 1: t = find_vic_id(id); sprintf(type_name, "VIC %3u", id); break; | |
487 | case 2: t = find_hdmi_vic_id(id); sprintf(type_name, "HDMI VIC %u", id); break; | |
438 | 488 | default: break; |
439 | 489 | } |
440 | 490 | if (t) |
441 | print_timings(" ", t, suffix); | |
491 | print_timings(" ", t, type_name); | |
492 | if (t && is_cta && !cta.t8vtdb.is_valid()) { | |
493 | timings_ext te(*t, type_name, ""); | |
494 | cta.t8vtdb = te; | |
495 | } | |
442 | 496 | } |
443 | 497 | |
444 | 498 | // tag 0x09 |
445 | 499 | |
446 | static void parse_displayid_video_timing_range_limits(const unsigned char *x) | |
447 | { | |
448 | check_displayid_datablock_revision(x); | |
500 | void edid_state::parse_displayid_video_timing_range_limits(const unsigned char *x) | |
501 | { | |
502 | check_displayid_datablock_revision(x[1]); | |
449 | 503 | |
450 | 504 | if (!check_displayid_datablock_length(x, 15, 15)) |
451 | 505 | return; |
468 | 522 | |
469 | 523 | // tag 0x0a and 0x0b |
470 | 524 | |
471 | static void parse_displayid_string(const unsigned char *x) | |
472 | { | |
473 | check_displayid_datablock_revision(x); | |
525 | void edid_state::parse_displayid_string(const unsigned char *x) | |
526 | { | |
527 | check_displayid_datablock_revision(x[1]); | |
474 | 528 | if (check_displayid_datablock_length(x)) |
475 | printf(" %s\n", extract_string(x + 3, x[2])); | |
529 | printf(" Text: '%s'\n", extract_string(x + 3, x[2])); | |
476 | 530 | } |
477 | 531 | |
478 | 532 | // tag 0x0c |
479 | 533 | |
480 | static void parse_displayid_display_device(const unsigned char *x) | |
481 | { | |
482 | check_displayid_datablock_revision(x); | |
534 | void edid_state::parse_displayid_display_device(const unsigned char *x) | |
535 | { | |
536 | check_displayid_datablock_revision(x[1]); | |
483 | 537 | |
484 | 538 | if (!check_displayid_datablock_length(x, 13, 13)) |
485 | 539 | return; |
567 | 621 | case 0x01: printf("Fast Scan is on the Major (Long) Axis and Slow Scan is on the Minor Axis\n"); break; |
568 | 622 | case 0x02: printf("Fast Scan is on the Minor (Short) Axis and Slow Scan is on the Major Axis\n"); break; |
569 | 623 | case 0x03: printf("Reserved\n"); |
570 | fail("Scan Direction used the reserved value 0x03\n"); | |
624 | fail("Scan Direction used the reserved value 0x03.\n"); | |
571 | 625 | break; |
572 | 626 | } |
573 | 627 | printf(" Sub-pixel layout/configuration/shape: "); |
597 | 651 | |
598 | 652 | // tag 0x0d |
599 | 653 | |
600 | static void parse_displayid_intf_power_sequencing(const unsigned char *x) | |
601 | { | |
602 | check_displayid_datablock_revision(x); | |
654 | void edid_state::parse_displayid_intf_power_sequencing(const unsigned char *x) | |
655 | { | |
656 | check_displayid_datablock_revision(x[1]); | |
603 | 657 | |
604 | 658 | if (!check_displayid_datablock_length(x, 6, 6)) |
605 | 659 | return; |
616 | 670 | |
617 | 671 | void edid_state::parse_displayid_transfer_characteristics(const unsigned char *x) |
618 | 672 | { |
619 | check_displayid_datablock_revision(x); | |
673 | check_displayid_datablock_revision(x[1], 0xf0, 1); | |
620 | 674 | |
621 | 675 | unsigned xfer_id = x[1] >> 4; |
622 | 676 | bool first_is_white = x[3] & 0x80; |
624 | 678 | |
625 | 679 | if (xfer_id) { |
626 | 680 | printf(" Transfer Characteristics Data Block Identifier: %u\n", xfer_id); |
627 | if (!(preparse_color_ids & (1 << xfer_id))) | |
628 | fail("Missing Color Characteristics Data Block using Identifier %u\n", xfer_id); | |
681 | if (!(dispid.preparse_color_ids & (1 << xfer_id))) | |
682 | fail("Missing Color Characteristics Data Block using Identifier %u.\n", xfer_id); | |
629 | 683 | } |
630 | 684 | if (first_is_white) |
631 | 685 | printf(" The first curve is the 'white' transfer characteristic\n"); |
659 | 713 | |
660 | 714 | // tag 0x0f |
661 | 715 | |
662 | static void parse_displayid_display_intf(const unsigned char *x) | |
663 | { | |
664 | check_displayid_datablock_revision(x); | |
716 | void edid_state::parse_displayid_display_intf(const unsigned char *x) | |
717 | { | |
718 | check_displayid_datablock_revision(x[1]); | |
665 | 719 | |
666 | 720 | if (!check_displayid_datablock_length(x, 10, 10)) |
667 | 721 | return; |
668 | 722 | |
723 | dispid.has_display_interface_features = true; | |
669 | 724 | printf(" Interface Type: "); |
670 | 725 | switch (x[3] >> 4) { |
671 | 726 | case 0x00: |
744 | 799 | |
745 | 800 | void edid_state::parse_displayid_stereo_display_intf(const unsigned char *x) |
746 | 801 | { |
747 | check_displayid_datablock_revision(x); | |
802 | check_displayid_datablock_revision(x[1], 0xc0, 1); | |
748 | 803 | |
749 | 804 | switch (x[1] >> 6) { |
750 | 805 | case 0x00: printf(" Timings that explicitly report 3D capability\n"); break; |
809 | 864 | while (1U + (x[0] & 0x1f) <= len) { |
810 | 865 | unsigned num_codes = x[0] & 0x1f; |
811 | 866 | unsigned type = x[0] >> 6; |
812 | char suffix[16]; | |
867 | char type_name[16]; | |
813 | 868 | |
814 | 869 | for (unsigned i = 1; i <= num_codes; i++) { |
815 | 870 | switch (type) { |
816 | 871 | case 0x00: |
817 | strcpy(suffix, "DMT"); | |
818 | print_timings(" ", find_dmt_id(x[i]), suffix); | |
872 | sprintf(type_name, "DMT 0x%02x", x[i]); | |
873 | print_timings(" ", find_dmt_id(x[i]), type_name); | |
819 | 874 | break; |
820 | 875 | case 0x01: |
821 | sprintf(suffix, "VIC %3u", x[i]); | |
822 | print_timings(" ", find_vic_id(x[i]), suffix); | |
876 | sprintf(type_name, "VIC %3u", x[i]); | |
877 | print_timings(" ", find_vic_id(x[i]), type_name); | |
823 | 878 | break; |
824 | 879 | case 0x02: |
825 | sprintf(suffix, "HDMI VIC %u", x[i]); | |
826 | print_timings(" ", find_hdmi_vic_id(x[i]), suffix); | |
880 | sprintf(type_name, "HDMI VIC %u", x[i]); | |
881 | print_timings(" ", find_hdmi_vic_id(x[i]), type_name); | |
827 | 882 | break; |
828 | 883 | } |
829 | 884 | } |
856 | 911 | break; |
857 | 912 | case 3: |
858 | 913 | s += ", reserved"; |
859 | fail("Reserved stereo 0x03\n"); | |
914 | fail("Reserved stereo 0x03.\n"); | |
860 | 915 | break; |
861 | 916 | } |
862 | 917 | if (x[0] & 0x10) |
863 | 918 | s += ", refresh rate * (1000/1001) supported"; |
864 | if (x[0] & 0x80) | |
919 | ||
920 | t.rb = 2; | |
921 | if ((x[0] & 0x03) == 1) | |
922 | warn("Unexpected use of 'custom reduced blanking'.\n"); | |
923 | else if ((x[0] & 0x03) > 1) | |
924 | fail("Invalid Timing Formula.\n"); | |
925 | ||
926 | edid_cvt_mode(1 + x[6], t); | |
927 | ||
928 | if (x[0] & 0x80) { | |
865 | 929 | s += ", preferred"; |
866 | ||
867 | switch (x[0] & 0x03) { | |
868 | case 0: t.rb = 2; break; | |
869 | case 1: t.rb = 1; break; | |
870 | default: break; | |
871 | } | |
872 | ||
873 | edid_cvt_mode(1 + x[6], t); | |
874 | ||
875 | print_detailed_timings(" ", t, s.c_str()); | |
930 | dispid.preferred_timings.push_back(timings_ext(t, "CVT", s)); | |
931 | } | |
932 | ||
933 | print_timings(" ", &t, "CVT", s.c_str()); | |
876 | 934 | } |
877 | 935 | |
878 | 936 | // tag 0x12 and 0x28 |
879 | 937 | |
880 | static void parse_displayid_tiled_display_topology(const unsigned char *x, bool is_v2) | |
881 | { | |
882 | check_displayid_datablock_revision(x); | |
938 | void edid_state::parse_displayid_tiled_display_topology(const unsigned char *x, bool is_v2) | |
939 | { | |
940 | check_displayid_datablock_revision(x[1]); | |
883 | 941 | |
884 | 942 | if (!check_displayid_datablock_length(x, 22, 22)) |
885 | 943 | return; |
909 | 967 | default: printf("Reserved\n"); break; |
910 | 968 | } |
911 | 969 | if (caps & 0x80) |
970 | printf(" Tiled display consists of a single physical display enclosure\n"); | |
971 | else | |
912 | 972 | printf(" Tiled display consists of multiple physical display enclosures\n"); |
913 | else | |
914 | printf(" Tiled display consists of a single physical display enclosure\n"); | |
915 | 973 | printf(" Num horizontal tiles: %u Num vertical tiles: %u\n", |
916 | 974 | num_h_tile + 1, num_v_tile + 1); |
917 | 975 | printf(" Tile location: %u, %u\n", tile_h_location, tile_v_location); |
927 | 985 | printf(" Left bevel size: %.1f pixels\n", |
928 | 986 | pix_mult * x[15] / 10.0); |
929 | 987 | } else { |
930 | fail("No bevel information, but the pixel multiplier is non-zero\n"); | |
988 | fail("No bevel information, but the pixel multiplier is non-zero.\n"); | |
931 | 989 | } |
932 | 990 | printf(" Tile resolution: %ux%u\n", tile_width + 1, tile_height + 1); |
933 | 991 | } else if (pix_mult) { |
934 | fail("No bevel information, but the pixel multiplier is non-zero\n"); | |
992 | fail("No bevel information, but the pixel multiplier is non-zero.\n"); | |
935 | 993 | } |
936 | 994 | if (is_v2) |
937 | 995 | printf(" Tiled Display Manufacturer/Vendor ID: %02X-%02X-%02X\n", |
941 | 999 | x[0x10], x[0x11], x[0x12]); |
942 | 1000 | printf(" Tiled Display Product ID Code: %u\n", |
943 | 1001 | x[0x13] | (x[0x14] << 8)); |
944 | printf(" Tiled Display Serial Number: %u\n", | |
945 | x[0x15] | (x[0x16] << 8) | (x[0x17] << 16)| (x[0x18] << 24)); | |
1002 | if (hide_serial_numbers) | |
1003 | printf(" Tiled Display Serial Number: ...\n"); | |
1004 | else | |
1005 | printf(" Tiled Display Serial Number: %u\n", | |
1006 | x[0x15] | (x[0x16] << 8) | (x[0x17] << 16)| (x[0x18] << 24)); | |
946 | 1007 | } |
947 | 1008 | |
948 | 1009 | // tag 0x13 |
996 | 1057 | break; |
997 | 1058 | case 3: |
998 | 1059 | s += ", reserved"; |
999 | fail("Reserved stereo 0x03\n"); | |
1000 | break; | |
1001 | } | |
1002 | ||
1003 | if (x[2] & 0x80) | |
1060 | fail("Reserved stereo 0x03.\n"); | |
1061 | break; | |
1062 | } | |
1063 | ||
1064 | if (x[2] & 0x80) { | |
1004 | 1065 | s += ", preferred"; |
1005 | ||
1006 | print_detailed_timings(" ", t, s.c_str()); | |
1066 | dispid.preferred_timings.push_back(timings_ext(t, "DTD", s)); | |
1067 | } | |
1068 | ||
1069 | print_timings(" ", &t, "DTD", s.c_str(), true); | |
1007 | 1070 | } |
1008 | 1071 | |
1009 | 1072 | static std::string ieee7542d(unsigned short fp) |
1020 | 1083 | |
1021 | 1084 | // tag 0x21 |
1022 | 1085 | |
1023 | static void parse_displayid_parameters_v2(const unsigned char *x) | |
1024 | { | |
1025 | check_displayid_datablock_revision(x); | |
1086 | void edid_state::parse_displayid_parameters_v2(const unsigned char *x) | |
1087 | { | |
1088 | check_displayid_datablock_revision(x[1]); | |
1026 | 1089 | |
1027 | 1090 | if (!check_displayid_datablock_length(x, 29, 29)) |
1028 | 1091 | return; |
1030 | 1093 | unsigned hor_size = (x[4] << 8) + x[3]; |
1031 | 1094 | unsigned vert_size = (x[6] << 8) + x[5]; |
1032 | 1095 | |
1096 | dispid.has_display_parameters = true; | |
1033 | 1097 | if (x[1] & 0x80) |
1034 | 1098 | printf(" Image size: %u mm x %u mm\n", |
1035 | 1099 | hor_size, vert_size); |
1119 | 1183 | break; |
1120 | 1184 | case 3: |
1121 | 1185 | s += ", reserved"; |
1122 | fail("Reserved stereo 0x03\n"); | |
1186 | fail("Reserved stereo 0x03.\n"); | |
1123 | 1187 | break; |
1124 | 1188 | } |
1125 | 1189 | if (x[0] & 0x10) |
1133 | 1197 | |
1134 | 1198 | edid_cvt_mode(1 + x[5], t); |
1135 | 1199 | |
1136 | print_detailed_timings(" ", t, s.c_str()); | |
1200 | print_timings(" ", &t, "CVT", s.c_str()); | |
1137 | 1201 | } |
1138 | 1202 | |
1139 | 1203 | // tag 0x25 |
1140 | 1204 | |
1141 | static void parse_displayid_dynamic_video_timings_range_limits(const unsigned char *x) | |
1142 | { | |
1143 | check_displayid_datablock_revision(x); | |
1205 | void edid_state::parse_displayid_dynamic_video_timings_range_limits(const unsigned char *x) | |
1206 | { | |
1207 | check_displayid_datablock_revision(x[1], 0, (x[1] & 7) == 1); | |
1144 | 1208 | |
1145 | 1209 | if (!check_displayid_datablock_length(x, 9, 9)) |
1146 | 1210 | return; |
1150 | 1214 | printf(" Maximum Pixel Clock: %u kHz\n", |
1151 | 1215 | 1 + (x[6] | (x[7] << 8) | (x[8] << 16))); |
1152 | 1216 | printf(" Minimum Vertical Refresh Rate: %u Hz\n", x[9]); |
1153 | printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10]); | |
1217 | if (x[1] & 7) | |
1218 | printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10] + ((x[11] & 3) << 8)); | |
1219 | else | |
1220 | printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10]); | |
1154 | 1221 | printf(" Seamless Dynamic Video Timing Support: %s\n", |
1155 | 1222 | (x[11] & 0x80) ? "Yes" : "No"); |
1156 | 1223 | } |
1194 | 1261 | "Custom" |
1195 | 1262 | }; |
1196 | 1263 | |
1197 | static void parse_displayid_interface_features(const unsigned char *x) | |
1198 | { | |
1199 | check_displayid_datablock_revision(x); | |
1264 | void edid_state::parse_displayid_interface_features(const unsigned char *x) | |
1265 | { | |
1266 | check_displayid_datablock_revision(x[1]); | |
1200 | 1267 | |
1201 | 1268 | if (!check_displayid_datablock_length(x, 9)) |
1202 | 1269 | return; |
1203 | 1270 | |
1271 | dispid.has_display_interface_features = true; | |
1204 | 1272 | unsigned len = x[2]; |
1205 | 1273 | if (len > 0) print_flags(" Supported bpc for RGB encoding", x[3], bpc444); |
1206 | 1274 | if (len > 1) print_flags(" Supported bpc for YCbCr 4:4:4 encoding", x[4], bpc444); |
1252 | 1320 | |
1253 | 1321 | // tag 0x29 |
1254 | 1322 | |
1255 | static void parse_displayid_ContainerID(const unsigned char *x) | |
1256 | { | |
1257 | check_displayid_datablock_revision(x); | |
1323 | void edid_state::parse_displayid_ContainerID(const unsigned char *x) | |
1324 | { | |
1325 | check_displayid_datablock_revision(x[1]); | |
1258 | 1326 | |
1259 | 1327 | if (check_displayid_datablock_length(x, 16, 16)) { |
1260 | 1328 | x += 3; |
1267 | 1335 | } |
1268 | 1336 | } |
1269 | 1337 | |
1338 | // tag 0x32 | |
1339 | ||
1340 | void edid_state::parse_displayid_type_10_timing(const unsigned char *x, bool is_cta) | |
1341 | { | |
1342 | struct timings t = {}; | |
1343 | std::string s("aspect "); | |
1344 | ||
1345 | t.hact = 1 + (x[1] | (x[2] << 8)); | |
1346 | t.vact = 1 + (x[3] | (x[4] << 8)); | |
1347 | calc_ratio(&t); | |
1348 | s += std::to_string(t.hratio) + ":" + std::to_string(t.vratio); | |
1349 | ||
1350 | switch ((x[0] >> 5) & 0x3) { | |
1351 | case 0: | |
1352 | s += ", no 3D stereo"; | |
1353 | break; | |
1354 | case 1: | |
1355 | s += ", 3D stereo"; | |
1356 | break; | |
1357 | case 2: | |
1358 | s += ", 3D stereo depends on user action"; | |
1359 | break; | |
1360 | case 3: | |
1361 | s += ", reserved"; | |
1362 | fail("Reserved stereo 0x03.\n"); | |
1363 | break; | |
1364 | } | |
1365 | ||
1366 | switch (x[0] & 0x07) { | |
1367 | case 1: t.rb = 1; break; | |
1368 | case 2: t.rb = 2; break; | |
1369 | case 3: t.rb = 3; break; | |
1370 | default: break; | |
1371 | } | |
1372 | ||
1373 | if (x[0] & 0x10) { | |
1374 | if (t.rb == 2) { | |
1375 | s += ", refresh rate * (1000/1001) supported"; | |
1376 | } else if (t.rb == 3) { | |
1377 | s += ", hblank is 160 pixels"; | |
1378 | t.rb |= RB_FLAG; | |
1379 | } else { | |
1380 | fail("VR_HB must be 0.\n"); | |
1381 | } | |
1382 | } | |
1383 | if (x[0] & 0x80) | |
1384 | s += ", YCbCr 4:2:0"; | |
1385 | ||
1386 | edid_cvt_mode(1 + x[5], t); | |
1387 | ||
1388 | print_timings(" ", &t, "CVT", s.c_str()); | |
1389 | if (is_cta) { | |
1390 | timings_ext te(t, "CVT", s); | |
1391 | cta.vec_vtdbs.push_back(te); | |
1392 | } | |
1393 | } | |
1394 | ||
1395 | // tag 0x7e, OUI 3A-02-92 (VESA) | |
1396 | ||
1397 | void edid_state::parse_displayid_vesa(const unsigned char *x) | |
1398 | { | |
1399 | check_displayid_datablock_revision(x[1]); | |
1400 | ||
1401 | if (!check_displayid_datablock_length(x, 5, 7)) | |
1402 | return; | |
1403 | ||
1404 | unsigned len = x[2]; | |
1405 | x += 6; | |
1406 | printf(" Data Structure Type: "); | |
1407 | switch (x[0] & 0x07) { | |
1408 | case 0x00: printf("eDP\n"); break; | |
1409 | case 0x01: printf("DP\n"); break; | |
1410 | default: printf("Reserved\n"); break; | |
1411 | } | |
1412 | printf(" Default Colorspace and EOTF Handling: %s\n", | |
1413 | (x[0] & 0x80) ? "Native as specified in the Display Parameters DB" : "sRGB"); | |
1414 | printf(" Number of Pixels in Hor Pix Cnt Overlapping an Adjacent Panel: %u\n", | |
1415 | x[1] & 0xf); | |
1416 | printf(" Multi-SST Operation: "); | |
1417 | switch ((x[1] >> 5) & 0x03) { | |
1418 | case 0x00: printf("Not Supported\n"); break; | |
1419 | case 0x01: printf("Two Streams (number of links shall be 2 or 4)\n"); break; | |
1420 | case 0x02: printf("Four Streams (number of links shall be 4)\n"); break; | |
1421 | case 0x03: printf("Reserved\n"); break; | |
1422 | } | |
1423 | if (len >= 7) { | |
1424 | double bpp = (x[2] & 0x3f) + (x[3] & 0x0f) / 16.0; | |
1425 | printf(" Pass through timing's target DSC bits per pixel: %.4f\n", bpp); | |
1426 | } | |
1427 | } | |
1428 | ||
1429 | // tag 0x81 | |
1430 | ||
1431 | void edid_state::parse_displayid_cta_data_block(const unsigned char *x) | |
1432 | { | |
1433 | check_displayid_datablock_revision(x[1]); | |
1434 | ||
1435 | unsigned len = x[2]; | |
1436 | unsigned i; | |
1437 | ||
1438 | if (len > 248) { | |
1439 | fail("Length is > 248.\n"); | |
1440 | len = 248; | |
1441 | } | |
1442 | x += 3; | |
1443 | ||
1444 | for (i = 0; i < len; i += (x[i] & 0x1f) + 1) | |
1445 | cta_block(x + i); | |
1446 | ||
1447 | if (i != len) | |
1448 | fail("Length is %u instead of %u.\n", len, i); | |
1449 | } | |
1450 | ||
1270 | 1451 | // DisplayID main |
1271 | 1452 | |
1272 | static std::string product_type(unsigned version, unsigned char x, bool heading) | |
1453 | std::string edid_state::product_type(unsigned char x, bool heading) | |
1273 | 1454 | { |
1274 | 1455 | std::string headingstr; |
1275 | 1456 | |
1276 | if (version < 0x20) { | |
1457 | if (dispid.version < 0x20) { | |
1277 | 1458 | headingstr = "Display Product Type"; |
1278 | 1459 | if (heading) return headingstr; |
1460 | dispid.is_display = x == 2 || x == 3 || x == 4 || x == 6; | |
1279 | 1461 | switch (x) { |
1280 | 1462 | case 0: return "Extension Section"; |
1281 | 1463 | case 1: return "Test Structure; test equipment only"; |
1289 | 1471 | } else { |
1290 | 1472 | headingstr = "Display Product Primary Use Case"; |
1291 | 1473 | if (heading) return headingstr; |
1474 | dispid.is_display = x >= 2 && x <= 8; | |
1292 | 1475 | switch (x) { |
1293 | 1476 | case 0: return "Same primary use case as the base section"; |
1294 | 1477 | case 1: return "Test Structure; test equipment only"; |
1302 | 1485 | default: break; |
1303 | 1486 | } |
1304 | 1487 | } |
1305 | fail("Unknown %s 0x%02x\n", headingstr.c_str(), x); | |
1488 | fail("Unknown %s 0x%02x.\n", headingstr.c_str(), x); | |
1306 | 1489 | return std::string("Unknown " + headingstr + " (") + utohex(x) + ")"; |
1307 | 1490 | } |
1308 | 1491 | |
1315 | 1498 | |
1316 | 1499 | unsigned offset = 5; |
1317 | 1500 | |
1501 | dispid.preparse_displayid_blocks++; | |
1318 | 1502 | while (length > 0) { |
1319 | 1503 | unsigned tag = x[offset]; |
1504 | unsigned len = x[offset + 2]; | |
1320 | 1505 | |
1321 | 1506 | switch (tag) { |
1322 | 1507 | case 0x02: |
1323 | preparse_color_ids |= 1 << ((x[offset + 1] >> 3) & 0x0f); | |
1508 | dispid.preparse_color_ids |= 1 << ((x[offset + 1] >> 3) & 0x0f); | |
1324 | 1509 | break; |
1325 | 1510 | case 0x0e: |
1326 | preparse_xfer_ids |= 1 << ((x[offset + 1] >> 4) & 0x0f); | |
1511 | dispid.preparse_xfer_ids |= 1 << ((x[offset + 1] >> 4) & 0x0f); | |
1327 | 1512 | break; |
1328 | 1513 | default: |
1329 | 1514 | break; |
1331 | 1516 | |
1332 | 1517 | if (length < 3) |
1333 | 1518 | break; |
1334 | ||
1335 | unsigned len = x[offset + 2]; | |
1336 | 1519 | |
1337 | 1520 | if (length < len + 3) |
1338 | 1521 | break; |
1353 | 1536 | unsigned ext_count = x[4]; |
1354 | 1537 | unsigned i; |
1355 | 1538 | |
1356 | printf("%s Version %u.%u Length %u Extension Count %u\n", | |
1357 | block.c_str(), version >> 4, version & 0xf, | |
1358 | length, ext_count); | |
1359 | ||
1360 | if (ext_count > 0) | |
1361 | warn("Non-0 DisplayID extension count %d\n", ext_count); | |
1362 | ||
1363 | printf("%s: %s\n", product_type(version, prod_type, true).c_str(), | |
1364 | product_type(version, prod_type, false).c_str()); | |
1539 | printf(" Version: %u.%u\n Extension Count: %u\n", | |
1540 | version >> 4, version & 0xf, ext_count); | |
1541 | ||
1542 | if (dispid.is_base_block) { | |
1543 | dispid.version = version; | |
1544 | printf(" %s: %s\n", product_type(prod_type, true).c_str(), | |
1545 | product_type(prod_type, false).c_str()); | |
1546 | if (!prod_type) | |
1547 | fail("DisplayID Base Block has no product type.\n"); | |
1548 | if (ext_count != dispid.preparse_displayid_blocks - 1) | |
1549 | fail("Expected %u DisplayID Extension Block%s, but got %u.\n", | |
1550 | ext_count, | |
1551 | ext_count > 1 ? "s" : "", | |
1552 | dispid.preparse_displayid_blocks - 1); | |
1553 | } else { | |
1554 | if (prod_type) | |
1555 | fail("Product Type should be 0 in extension block.\n"); | |
1556 | if (ext_count) | |
1557 | fail("Extension Count should be 0 in extension block.\n"); | |
1558 | if (version != dispid.version) | |
1559 | fail("Got version %u.%u, expected %u.%u.\n", | |
1560 | version >> 4, version & 0xf, | |
1561 | dispid.version >> 4, dispid.version & 0xf); | |
1562 | } | |
1365 | 1563 | |
1366 | 1564 | if (length > 121) { |
1367 | fail("DisplayID length %d is greater than 121\n", length); | |
1565 | fail("DisplayID length %d is greater than 121.\n", length); | |
1368 | 1566 | length = 121; |
1369 | 1567 | } |
1370 | 1568 | |
1371 | 1569 | unsigned offset = 5; |
1570 | bool first_data_block = true; | |
1372 | 1571 | while (length > 0) { |
1373 | 1572 | unsigned tag = x[offset]; |
1573 | unsigned oui = 0; | |
1374 | 1574 | |
1375 | 1575 | switch (tag) { |
1376 | // DisplayID 1.3: | |
1576 | // DisplayID 1.3: | |
1377 | 1577 | case 0x00: data_block = "Product Identification Data Block (" + utohex(tag) + ")"; break; |
1378 | 1578 | case 0x01: data_block = "Display Parameters Data Block (" + utohex(tag) + ")"; break; |
1379 | 1579 | case 0x02: data_block = "Color Characteristics Data Block"; break; |
1382 | 1582 | case 0x05: data_block = "Video Timing Modes Type 3 - Short Timings Data Block"; break; |
1383 | 1583 | case 0x06: data_block = "Video Timing Modes Type 4 - DMT Timings Data Block"; break; |
1384 | 1584 | case 0x07: data_block = "Supported Timing Modes Type 1 - VESA DMT Timings Data Block"; break; |
1385 | case 0x08: data_block = "Supported Timing Modes Type 2 - CTA Timings Data Block"; break; | |
1585 | case 0x08: data_block = "Supported Timing Modes Type 2 - CTA-861 Timings Data Block"; break; | |
1386 | 1586 | case 0x09: data_block = "Video Timing Range Data Block"; break; |
1387 | 1587 | case 0x0a: data_block = "Product Serial Number Data Block"; break; |
1388 | 1588 | case 0x0b: data_block = "GP ASCII String Data Block"; break; |
1394 | 1594 | case 0x11: data_block = "Video Timing Modes Type 5 - Short Timings Data Block"; break; |
1395 | 1595 | case 0x12: data_block = "Tiled Display Topology Data Block (" + utohex(tag) + ")"; break; |
1396 | 1596 | case 0x13: data_block = "Video Timing Modes Type 6 - Detailed Timings Data Block"; break; |
1397 | // 0x14 .. 0x7e RESERVED for Additional VESA-defined Data Blocks | |
1398 | // DisplayID 2.0 | |
1597 | // 0x14 .. 0x7e RESERVED for Additional VESA-defined Data Blocks | |
1598 | // DisplayID 2.0 | |
1399 | 1599 | case 0x20: data_block = "Product Identification Data Block (" + utohex(tag) + ")"; break; |
1400 | 1600 | case 0x21: data_block = "Display Parameters Data Block (" + utohex(tag) + ")"; break; |
1401 | 1601 | case 0x22: data_block = "Video Timing Modes Type 7 - Detailed Timings Data Block"; break; |
1406 | 1606 | case 0x27: data_block = "Stereo Display Interface Data Block (" + utohex(tag) + ")"; break; |
1407 | 1607 | case 0x28: data_block = "Tiled Display Topology Data Block (" + utohex(tag) + ")"; break; |
1408 | 1608 | case 0x29: data_block = "ContainerID Data Block"; break; |
1409 | // 0x2a .. 0x7d RESERVED for Additional VESA-defined Data Blocks | |
1609 | case 0x32: data_block = "Video Timing Modes Type 10 - Formula-based Timings Data Block"; break; | |
1610 | // 0x2a .. 0x7d RESERVED for Additional VESA-defined Data Blocks | |
1410 | 1611 | case 0x7e: // DisplayID 2.0 |
1411 | case 0x7f: data_block = "Vendor-specific Data Block (" + utohex(tag) + ")"; break; // DisplayID 1.3 | |
1412 | // 0x7f .. 0x80 RESERVED | |
1413 | case 0x81: data_block = "CTA DisplayID Data Block (" + utohex(tag) + ")"; break; | |
1414 | // 0x82 .. 0xff RESERVED | |
1612 | case 0x7f: // DisplayID 1.3 | |
1613 | if ((tag == 0x7e && version >= 0x20) || | |
1614 | (tag == 0x7f && version < 0x20)) { | |
1615 | oui = (x[offset + 3] << 16) + (x[offset + 4] << 8) + x[offset + 5]; | |
1616 | const char *name = oui_name(oui); | |
1617 | bool reversed = false; | |
1618 | ||
1619 | if (!name) { | |
1620 | name = oui_name(oui, true); | |
1621 | if (name) | |
1622 | reversed = true; | |
1623 | } | |
1624 | if (name) | |
1625 | data_block = std::string("Vendor-Specific Data Block (") + name + ")"; | |
1626 | else | |
1627 | data_block = "Vendor-Specific Data Block, OUI " + ouitohex(oui); | |
1628 | if (reversed) | |
1629 | fail((std::string("OUI ") + ouitohex(oui) + " is in the wrong byte order.\n").c_str()); | |
1630 | } else { | |
1631 | data_block = "Unknown DisplayID Data Block (" + utohex(tag) + ")"; | |
1632 | } | |
1633 | break; | |
1634 | // 0x80 RESERVED | |
1635 | case 0x81: data_block = "CTA-861 DisplayID Data Block (" + utohex(tag) + ")"; break; | |
1636 | // 0x82 .. 0xff RESERVED | |
1415 | 1637 | default: data_block = "Unknown DisplayID Data Block (" + utohex(tag) + ")"; break; |
1416 | 1638 | } |
1639 | ||
1640 | if (version >= 0x20 && (tag < 0x20 || tag == 0x7f)) | |
1641 | fail("Use of DisplayID v1.x tag for DisplayID v%u.%u.\n", | |
1642 | version >> 4, version & 0xf); | |
1643 | if (version < 0x20 && tag >= 0x20 && tag <= 0x7e) | |
1644 | fail("Use of DisplayID v2.0 tag for DisplayID v%u.%u.\n", | |
1645 | version >> 4, version & 0xf); | |
1417 | 1646 | |
1418 | 1647 | if (length < 3) { |
1419 | 1648 | // report a problem when the remaining bytes are not 0. |
1420 | 1649 | if (tag || x[offset + 1]) { |
1421 | fail("Not enough bytes remain (%d) for a DisplayID data block or the DisplayID filler is non-0\n", length); | |
1650 | fail("Not enough bytes remain (%d) for a DisplayID data block or the DisplayID filler is non-0.\n", length); | |
1422 | 1651 | } |
1423 | 1652 | break; |
1424 | 1653 | } |
1425 | 1654 | |
1655 | unsigned block_rev = x[offset + 1] & 0x07; | |
1426 | 1656 | unsigned len = x[offset + 2]; |
1427 | 1657 | |
1428 | 1658 | if (length < len + 3) { |
1429 | fail("The length of this DisplayID data block (%d) exceeds the number of bytes remaining (%d)\n", len + 3, length); | |
1659 | fail("The length of this DisplayID data block (%d) exceeds the number of bytes remaining (%d).\n", len + 3, length); | |
1430 | 1660 | break; |
1431 | 1661 | } |
1432 | 1662 | |
1433 | 1663 | if (!tag && !len) { |
1434 | 1664 | // A Product Identification Data Block with no payload bytes is not valid - assume this is the end. |
1435 | 1665 | if (!memchk(x + offset, length)) { |
1436 | fail("Non-0 filler bytes in the DisplayID block\n"); | |
1666 | fail("Non-0 filler bytes in the DisplayID block.\n"); | |
1437 | 1667 | } |
1438 | 1668 | break; |
1439 | 1669 | } |
1440 | 1670 | |
1441 | printf(" %s\n", data_block.c_str()); | |
1671 | printf(" %s:\n", data_block.c_str()); | |
1442 | 1672 | |
1443 | 1673 | switch (tag) { |
1444 | case 0x00: parse_displayid_product_id(x + offset, false); break; | |
1674 | case 0x00: parse_displayid_product_id(x + offset); break; | |
1445 | 1675 | case 0x01: parse_displayid_parameters(x + offset); break; |
1446 | 1676 | case 0x02: parse_displayid_color_characteristics(x + offset); break; |
1447 | 1677 | case 0x03: |
1678 | check_displayid_datablock_revision(x[offset + 1], 0, block_rev & 1); | |
1448 | 1679 | for (i = 0; i < len / 20; i++) |
1449 | parse_displayid_type_1_7_timing(&x[offset + 3 + (i * 20)], false); | |
1680 | parse_displayid_type_1_7_timing(&x[offset + 3 + (i * 20)], false, block_rev); | |
1450 | 1681 | break; |
1451 | 1682 | case 0x04: |
1683 | check_displayid_datablock_revision(x[offset + 1]); | |
1452 | 1684 | for (i = 0; i < len / 11; i++) |
1453 | 1685 | parse_displayid_type_2_timing(&x[offset + 3 + (i * 11)]); |
1454 | 1686 | break; |
1455 | 1687 | case 0x05: |
1688 | check_displayid_datablock_revision(x[offset + 1], 0, block_rev & 1); | |
1456 | 1689 | for (i = 0; i < len / 3; i++) |
1457 | 1690 | parse_displayid_type_3_timing(&x[offset + 3 + (i * 3)]); |
1458 | 1691 | break; |
1459 | 1692 | case 0x06: |
1693 | check_displayid_datablock_revision(x[offset + 1], 0xc0, 1); | |
1460 | 1694 | for (i = 0; i < len; i++) |
1461 | 1695 | parse_displayid_type_4_8_timing((x[offset + 1] & 0xc0) >> 6, x[offset + 3 + i]); |
1462 | 1696 | break; |
1463 | 1697 | case 0x07: |
1698 | check_displayid_datablock_revision(x[offset + 1]); | |
1464 | 1699 | for (i = 0; i < min(len, 10) * 8; i++) |
1465 | 1700 | if (x[offset + 3 + i / 8] & (1 << (i % 8))) { |
1466 | print_timings(" ", find_dmt_id(i + 1), "DMT"); | |
1701 | char type[16]; | |
1702 | sprintf(type, "DMT 0x%02x", i + 1); | |
1703 | print_timings(" ", find_dmt_id(i + 1), type); | |
1467 | 1704 | } |
1468 | 1705 | break; |
1469 | 1706 | case 0x08: |
1707 | check_displayid_datablock_revision(x[offset + 1]); | |
1470 | 1708 | for (i = 0; i < min(len, 8) * 8; i++) |
1471 | 1709 | if (x[offset + 3 + i / 8] & (1 << (i % 8))) { |
1472 | char suffix[16]; | |
1473 | sprintf(suffix, "VIC %3u", i + 1); | |
1474 | print_timings(" ", find_vic_id(i + 1), suffix); | |
1710 | char type[16]; | |
1711 | sprintf(type, "VIC %3u", i + 1); | |
1712 | print_timings(" ", find_vic_id(i + 1), type); | |
1475 | 1713 | } |
1476 | 1714 | break; |
1477 | 1715 | case 0x09: parse_displayid_video_timing_range_limits(x + offset); break; |
1483 | 1721 | case 0x0f: parse_displayid_display_intf(x + offset); break; |
1484 | 1722 | case 0x10: parse_displayid_stereo_display_intf(x + offset); break; |
1485 | 1723 | case 0x11: |
1724 | check_displayid_datablock_revision(x[offset + 1]); | |
1486 | 1725 | for (i = 0; i < len / 7; i++) |
1487 | 1726 | parse_displayid_type_5_timing(&x[offset + 3 + (i * 7)]); |
1488 | 1727 | break; |
1489 | 1728 | case 0x12: parse_displayid_tiled_display_topology(x + offset, false); break; |
1490 | 1729 | case 0x13: |
1730 | check_displayid_datablock_revision(x[offset + 1]); | |
1491 | 1731 | for (i = 0; i < len; i += (x[offset + 3 + i + 2] & 0x40) ? 17 : 14) |
1492 | 1732 | parse_displayid_type_6_timing(&x[offset + 3 + i]); |
1493 | 1733 | break; |
1494 | case 0x20: parse_displayid_product_id(x + offset, true); break; | |
1734 | case 0x20: parse_displayid_product_id(x + offset); break; | |
1495 | 1735 | case 0x21: parse_displayid_parameters_v2(x + offset); break; |
1496 | case 0x22: | |
1497 | for (i = 0; i < len / 20; i++) | |
1498 | parse_displayid_type_1_7_timing(&x[offset + 3 + i * 20], true); | |
1736 | case 0x22: { | |
1737 | unsigned sz = 20; | |
1738 | ||
1739 | if (block_rev >= 2) | |
1740 | check_displayid_datablock_revision(x[offset + 1], 0x08, 2); | |
1741 | else if (block_rev == 1) | |
1742 | check_displayid_datablock_revision(x[offset + 1], 0x08, 1); | |
1743 | else | |
1744 | check_displayid_datablock_revision(x[offset + 1]); | |
1745 | sz += (x[offset + 1] & 0x70) >> 4; | |
1746 | if (block_rev >= 1 && (x[offset + 1] & 0x08)) | |
1747 | printf(" These timings support DSC pass-through\n"); | |
1748 | for (i = 0; i < len / sz; i++) | |
1749 | parse_displayid_type_1_7_timing(&x[offset + 3 + i * sz], true, block_rev); | |
1499 | 1750 | break; |
1751 | } | |
1500 | 1752 | case 0x23: |
1753 | if (block_rev) | |
1754 | check_displayid_datablock_revision(x[offset + 1], 0xe8, 1); | |
1755 | else | |
1756 | check_displayid_datablock_revision(x[offset + 1], 0xc8); | |
1501 | 1757 | if (x[offset + 1] & 0x08) { |
1502 | 1758 | for (i = 0; i < len / 2; i++) |
1503 | 1759 | parse_displayid_type_4_8_timing((x[offset + 1] & 0xc0) >> 6, |
1510 | 1766 | } |
1511 | 1767 | break; |
1512 | 1768 | case 0x24: |
1769 | check_displayid_datablock_revision(x[offset + 1]); | |
1513 | 1770 | for (i = 0; i < len / 6; i++) |
1514 | 1771 | parse_displayid_type_9_timing(&x[offset + 3 + i * 6]); |
1515 | 1772 | break; |
1518 | 1775 | case 0x27: parse_displayid_stereo_display_intf(x + offset); break; |
1519 | 1776 | case 0x28: parse_displayid_tiled_display_topology(x + offset, true); break; |
1520 | 1777 | case 0x29: parse_displayid_ContainerID(x + offset); break; |
1778 | case 0x32: { | |
1779 | unsigned sz = 6 + ((x[offset + 1] & 0x70) >> 4); | |
1780 | ||
1781 | check_displayid_datablock_revision(x[offset + 1], 0x10); | |
1782 | for (i = 0; i < len / sz; i++) | |
1783 | parse_displayid_type_10_timing(&x[offset + 3 + i * sz]); | |
1784 | break; | |
1785 | } | |
1786 | case 0x81: parse_displayid_cta_data_block(x + offset); break; | |
1787 | case 0x7e: | |
1788 | if (oui == 0x3a0292) { | |
1789 | parse_displayid_vesa(x + offset); | |
1790 | break; | |
1791 | } | |
1792 | // fall-through | |
1521 | 1793 | default: hex_block(" ", x + offset + 3, len); break; |
1522 | 1794 | } |
1795 | ||
1796 | if ((tag == 0x00 || tag == 0x20) && | |
1797 | (!dispid.is_base_block || !first_data_block)) | |
1798 | fail("%s is required to be the first DisplayID Data Block.\n", | |
1799 | data_block.c_str()); | |
1523 | 1800 | length -= len + 3; |
1524 | 1801 | offset += len + 3; |
1802 | first_data_block = false; | |
1525 | 1803 | } |
1526 | 1804 | |
1527 | 1805 | /* |
1534 | 1812 | |
1535 | 1813 | if (!memchk(x + 1 + x[2] + 5, 0x7f - (1 + x[2] + 5))) { |
1536 | 1814 | data_block = "Padding"; |
1537 | fail("DisplayID padding contains non-zero bytes\n"); | |
1538 | } | |
1539 | } | |
1815 | fail("DisplayID padding contains non-zero bytes.\n"); | |
1816 | } | |
1817 | dispid.is_base_block = false; | |
1818 | } | |
1819 | ||
1820 | void edid_state::check_displayid_blocks() | |
1821 | { | |
1822 | data_block = "DisplayID"; | |
1823 | if (!dispid.has_product_identification) | |
1824 | fail("Missing DisplayID Product Identification Data Block.\n"); | |
1825 | if (dispid.is_display && !dispid.has_display_parameters) | |
1826 | fail("Missing DisplayID Display Parameters Data Block.\n"); | |
1827 | if (dispid.is_display && !dispid.has_display_interface_features) | |
1828 | fail("Missing DisplayID Display Interface Features Data Block.\n"); | |
1829 | if (dispid.is_display && !dispid.has_type_1_7) | |
1830 | fail("Missing DisplayID Type %s Detailed Timing Data Block.\n", | |
1831 | dispid.version >= 0x20 ? "VII" : "I"); | |
1832 | if (dispid.preferred_timings.empty()) | |
1833 | fail("DisplayID expects at least one preferred timing.\n"); | |
1834 | } |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | * Copyright 2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
2 | * Copyright 2019-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | 3 | * |
4 | 4 | * Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
5 | 5 | */ |
14 | 14 | hex_block("", x + 1, *x, true, *x); |
15 | 15 | } |
16 | 16 | |
17 | static void parse_string_table(const unsigned char *x) | |
17 | void edid_state::parse_string_table(const unsigned char *x) | |
18 | 18 | { |
19 | 19 | printf(" UTF Type: "); |
20 | 20 | switch (x[0] & 7) { |
23 | 23 | case 2: printf("UTF 32BE\n"); break; |
24 | 24 | default: |
25 | 25 | printf("Unknown (0x%02x)\n", x[0] & 7); |
26 | fail("Unknown UTF Type (0x%02x)\n", x[0] & 7); | |
26 | fail("Unknown UTF Type (0x%02x).\n", x[0] & 7); | |
27 | 27 | break; |
28 | 28 | } |
29 | 29 | printf(" Country Code ID (ISO 3166-3): %u\n", ((x[1] & 0x3f) << 8) | x[2]); |
38 | 38 | if (name[0] == '@') name[0] = ' '; |
39 | 39 | if (name[1] == '@') name[1] = ' '; |
40 | 40 | if (name[2] == '@') name[2] = ' '; |
41 | printf(" Language ID: %s\n", name); | |
41 | printf(" Language ID: '%s'\n", name); | |
42 | 42 | } |
43 | 43 | x += 5; |
44 | 44 | parse_string("Manufacturer Name", x); |
45 | 45 | x += x[0] + 1; |
46 | 46 | parse_string("Model Name", x); |
47 | 47 | x += x[0] + 1; |
48 | parse_string("Serial Number", x); | |
48 | if (hide_serial_numbers) | |
49 | printf(" Serial Number: ...\n"); | |
50 | else | |
51 | parse_string("Serial Number", x); | |
49 | 52 | } |
50 | 53 | |
51 | 54 | void edid_state::parse_ls_ext_block(const unsigned char *x) |
52 | 55 | { |
53 | 56 | const unsigned char *orig = x; |
54 | 57 | |
55 | printf("%s Version %u.%u Unicode Version %u.%u.%u\n", | |
56 | block.c_str(), x[1], x[2], (x[3] >> 4), x[3] & 0x0f, x[4]); | |
58 | printf(" Version: %u.%u\n Unicode Version: %u.%u.%u\n", | |
59 | x[1], x[2], (x[3] >> 4), x[3] & 0x0f, x[4]); | |
57 | 60 | x += 5; |
58 | 61 | |
59 | 62 | while (x[0] && x + x[0] < orig + 127) { |
62 | 65 | } |
63 | 66 | if (!memchk(x, orig + 127 - x)) { |
64 | 67 | data_block.clear(); |
65 | fail("Non-zero values in unused space\n"); | |
68 | fail("Non-zero values in unused space.\n"); | |
66 | 69 | } |
67 | 70 | } |
0 | 0 | // SPDX-License-Identifier: MIT |
1 | 1 | /* |
2 | * Copyright 2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
2 | * Copyright 2019-2020 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | |
3 | 3 | * |
4 | 4 | * Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
5 | 5 | */ |
8 | 8 | |
9 | 9 | void edid_state::parse_vtb_ext_block(const unsigned char *x) |
10 | 10 | { |
11 | printf("%s Version %u\n", block.c_str(), x[1]); | |
11 | printf(" Version: %u\n", x[1]); | |
12 | 12 | if (x[1] != 1) |
13 | fail("Invalid version %u\n", x[1]); | |
13 | fail("Invalid version %u.\n", x[1]); | |
14 | 14 | |
15 | unsigned num_dtb = x[2]; | |
15 | unsigned num_dtd = x[2]; | |
16 | 16 | unsigned num_cvt = x[3]; |
17 | 17 | unsigned num_st = x[4]; |
18 | 18 | |
19 | 19 | x += 5; |
20 | for (unsigned i = 0; i < num_dtb; i++, x += 18) | |
21 | detailed_timings(" ", x); | |
22 | for (unsigned i = 0; i < num_cvt; i++, x += 3) | |
23 | detailed_cvt_descriptor(" ", x, false); | |
24 | for (unsigned i = 0; i < num_st; i++, x += 2) { | |
25 | if ((x[1] & 0x3f) >= 60) | |
26 | print_standard_timing(" ", x[0], x[1] - 60, true); | |
27 | else | |
28 | print_standard_timing(" ", x[0], x[1], true, 0); | |
20 | if (num_dtd) { | |
21 | printf(" Detailed Timing Descriptors:\n"); | |
22 | for (unsigned i = 0; i < num_dtd; i++, x += 18) | |
23 | detailed_timings(" ", x, false); | |
24 | } | |
25 | if (num_cvt) { | |
26 | printf(" Coordinated Video Timings:\n"); | |
27 | for (unsigned i = 0; i < num_cvt; i++, x += 3) | |
28 | detailed_cvt_descriptor(" ", x, false); | |
29 | } | |
30 | if (num_st) { | |
31 | printf(" Standard Timings:\n"); | |
32 | for (unsigned i = 0; i < num_st; i++, x += 2) { | |
33 | if ((x[1] & 0x3f) >= 60) | |
34 | print_standard_timing(" ", x[0], x[1] - 60, true); | |
35 | else | |
36 | print_standard_timing(" ", x[0], x[1], true, 0); | |
37 | } | |
29 | 38 | } |
30 | 39 | } |
0 | edid-decode (hex): | |
1 | ||
2 | 00 ff ff ff ff ff ff 00 31 d8 34 12 00 00 00 00 | |
3 | 22 1a 01 04 a2 60 36 78 1f ee 91 a3 54 4c 99 26 | |
4 | 0f 50 54 ff ff 80 31 59 45 59 81 80 81 40 90 40 | |
5 | 95 00 a9 40 b3 00 08 e8 00 30 f2 70 5a 80 b0 58 | |
6 | 8a 00 c0 1c 32 00 00 1e 00 00 00 fd 00 18 58 0f | |
7 | 87 3c 04 12 01 e0 f8 38 f0 3c 00 00 00 fc 00 30 | |
8 | 31 32 33 34 35 36 37 38 39 30 31 32 00 00 00 f7 | |
9 | 00 0a ff ff ff ff ff f0 00 00 00 00 00 00 ff d7 | |
10 | ||
11 | 02 03 24 f0 51 61 60 5f 5e 5d 10 1f 04 13 22 21 | |
12 | 20 05 14 02 11 01 23 09 07 07 e2 00 ea e6 0d 61 | |
13 | 81 82 6a 84 4d d0 00 a0 f0 70 3e 80 30 20 35 00 | |
14 | c0 1c 32 00 00 1e 1a 36 80 a0 70 38 1f 40 30 20 | |
15 | 35 00 c0 1c 32 00 00 1a 1a 1d 00 80 51 d0 1c 20 | |
16 | 40 80 35 00 c0 1c 32 00 00 1c 00 00 00 00 00 00 | |
17 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
18 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 | |
19 | ||
20 | 70 20 5f 02 fd 20 00 10 00 00 00 01 00 01 00 00 | |
21 | 00 00 00 04 54 65 73 74 21 00 1d 80 3e 28 23 00 | |
22 | 0f 70 08 00 3c 8a 54 cc 84 99 68 42 0f 00 45 54 | |
23 | 00 00 00 00 00 00 00 ff 22 00 14 4f 10 09 80 ff | |
24 | 0e 2f 02 27 81 57 00 6f 08 59 00 47 80 09 00 24 | |
25 | 00 06 12 7f 07 37 04 3b 26 00 09 02 02 01 01 00 | |
26 | e0 07 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 | |
27 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
28 | ||
29 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
30 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
31 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
32 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
33 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
34 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
35 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
36 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
37 | ||
38 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
39 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
41 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
42 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
43 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
44 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
45 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
46 | ||
47 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
48 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
49 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
51 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
52 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
53 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
54 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
55 | ||
56 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
57 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
58 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
59 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
61 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
62 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
63 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
64 | ||
65 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
66 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
67 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
68 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
69 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
71 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
72 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
73 | ||
74 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
75 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
76 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
77 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
78 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
79 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
81 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
82 | ||
83 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
84 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
85 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
86 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
87 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
88 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
89 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
90 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
91 | ||
92 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
93 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
94 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
95 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
96 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
97 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
98 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
99 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
100 | ||
101 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
108 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
109 | ||
110 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
117 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
118 | ||
119 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
126 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
127 | ||
128 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
135 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
136 | ||
137 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
144 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
145 | ||
146 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
153 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
154 | ||
155 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
161 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
162 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
163 | ||
164 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
171 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
172 | ||
173 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
179 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
181 | ||
182 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
188 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
189 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
190 | ||
191 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
197 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
198 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
199 | ||
200 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
206 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
207 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
208 | ||
209 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
215 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
216 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
217 | ||
218 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
224 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
225 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
226 | ||
227 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
233 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
234 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
235 | ||
236 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
242 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
243 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
244 | ||
245 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
251 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
252 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
253 | ||
254 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
261 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
262 | ||
263 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
269 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
270 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
271 | ||
272 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
278 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
279 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
280 | ||
281 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
287 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
288 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
289 | ||
290 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
296 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
297 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
298 | ||
299 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
305 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
306 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
307 | ||
308 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
309 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
310 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
311 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
312 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
313 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
314 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
315 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
316 | ||
317 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
318 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
319 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
321 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
322 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
323 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
324 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
325 | ||
326 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
327 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
328 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
329 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
330 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
331 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
332 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
333 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
334 | ||
335 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
336 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
337 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
338 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
339 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
341 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
342 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
343 | ||
344 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
345 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
346 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
347 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
348 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
349 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
350 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
351 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
352 | ||
353 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
354 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
355 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
356 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
357 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
358 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
359 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
361 | ||
362 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
363 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
364 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
365 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
366 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
367 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
368 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
369 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
370 | ||
371 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
372 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
373 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
374 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
375 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
376 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
377 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
378 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
379 | ||
380 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
381 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
382 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
383 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
384 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
385 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
386 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
387 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
388 | ||
389 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
390 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
391 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
392 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
393 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
394 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
395 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
396 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
397 | ||
398 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
399 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
401 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
402 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
403 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
404 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
405 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
406 | ||
407 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
408 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
409 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
410 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
411 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
412 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
413 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
414 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
415 | ||
416 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
417 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
418 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
419 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
421 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
422 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
423 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
424 | ||
425 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
426 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
427 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
428 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
429 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
430 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
431 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
432 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
433 | ||
434 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
435 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
436 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
437 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
438 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
439 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
441 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
442 | ||
443 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
444 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
445 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
446 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
447 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
448 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
449 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
450 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
451 | ||
452 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
453 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
454 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
455 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
456 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
457 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
458 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
459 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
460 | ||
461 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
462 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
463 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
464 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
465 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
466 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
467 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
468 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
469 | ||
470 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
471 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
472 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
473 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
474 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
475 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
476 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
477 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
478 | ||
479 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
481 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
482 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
483 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
484 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
485 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
486 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
487 | ||
488 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
489 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
490 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
491 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
492 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
493 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
494 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
495 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
496 | ||
497 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
498 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
499 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
501 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
502 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
503 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
504 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
505 | ||
506 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
507 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
508 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
509 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
510 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
511 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
512 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
513 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
514 | ||
515 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
516 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
517 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
518 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
519 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
521 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
522 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
523 | ||
524 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
525 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
526 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
527 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
528 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
529 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
530 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
531 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
532 | ||
533 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
534 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
535 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
536 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
537 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
538 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
539 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
541 | ||
542 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
543 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
544 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
545 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
546 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
547 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
548 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
549 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
550 | ||
551 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
552 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
553 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
554 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
555 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
556 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
557 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
558 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
559 | ||
560 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
561 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
562 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
563 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
564 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
565 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
566 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
567 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
568 | ||
569 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
570 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
571 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
572 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
573 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
574 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
575 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
576 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
577 | ||
578 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
579 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
581 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
582 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
583 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
584 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
585 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
586 | ||
587 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
588 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
589 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
590 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
591 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
592 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
593 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
594 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
595 | ||
596 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
597 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
598 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
599 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
601 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
602 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
603 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
604 | ||
605 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
606 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
607 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
608 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
609 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
610 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
611 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
612 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
613 | ||
614 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
615 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
616 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
617 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
618 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
619 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
621 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
622 | ||
623 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
624 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
625 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
626 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
627 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
628 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
629 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
630 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
631 | ||
632 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
633 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
634 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
635 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
636 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
637 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
638 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
639 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
640 | ||
641 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
642 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
643 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
644 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
645 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
646 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
647 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
648 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
649 | ||
650 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
651 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
652 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
653 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
654 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
655 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
656 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
657 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
658 | ||
659 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
661 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
662 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
663 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
664 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
665 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
666 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
667 | ||
668 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
669 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
670 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
671 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
672 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
673 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
674 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
675 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
676 | ||
677 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
678 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
679 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
681 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
682 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
683 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
684 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
685 | ||
686 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
687 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
688 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
689 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
690 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
691 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
692 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
693 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
694 | ||
695 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
696 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
697 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
698 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
699 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
701 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
702 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
703 | ||
704 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
705 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
706 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
707 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
708 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
709 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
710 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
711 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
712 | ||
713 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
714 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
715 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
716 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
717 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
718 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
719 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
721 | ||
722 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
723 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
724 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
725 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
726 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
727 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
728 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
729 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
730 | ||
731 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
732 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
733 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
734 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
735 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
736 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
737 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
738 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
739 | ||
740 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
741 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
742 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
743 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
744 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
745 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
746 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
747 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
748 | ||
749 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
750 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
752 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
753 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
754 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
755 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
756 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
757 | ||
758 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
759 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
761 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
762 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
763 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
764 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
765 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
766 | ||
767 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
768 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
769 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
770 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
771 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
772 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
773 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
774 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
775 | ||
776 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
777 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
778 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
779 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
781 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
782 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
783 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
784 | ||
785 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
786 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
787 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
788 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
789 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
790 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
791 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
792 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
793 | ||
794 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
795 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
796 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
797 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
798 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
799 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
801 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
802 | ||
803 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
804 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
805 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
806 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
807 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
808 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
809 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
810 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
811 | ||
812 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
813 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
814 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
815 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
816 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
817 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
818 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
819 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
820 | ||
821 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
822 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
823 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
824 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
825 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
826 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
827 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
828 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
829 | ||
830 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
831 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
832 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
833 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
834 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
835 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
836 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
837 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
838 | ||
839 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
841 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
842 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
843 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
844 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
845 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
846 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
847 | ||
848 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
849 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
850 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
851 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
852 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
853 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
854 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
855 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
856 | ||
857 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
858 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
861 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
862 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
863 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
864 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
865 | ||
866 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
867 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
868 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
869 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
870 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
871 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
872 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
873 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
874 | ||
875 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
876 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
877 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
878 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
879 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
881 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
882 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
883 | ||
884 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
885 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
886 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
887 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
888 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
889 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
890 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
891 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
892 | ||
893 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
894 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
895 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
896 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
897 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
898 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
899 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
901 | ||
902 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
903 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
904 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
905 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
906 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
907 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
908 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
909 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
910 | ||
911 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
912 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
913 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
914 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
915 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
916 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
917 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
918 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
919 | ||
920 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
921 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
922 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
923 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
924 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
925 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
926 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
927 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
928 | ||
929 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
930 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
931 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
932 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
933 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
934 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
935 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
936 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
937 | ||
938 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
939 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
941 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
942 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
943 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
944 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
945 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
946 | ||
947 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
948 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
949 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
950 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
951 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
952 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
953 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
954 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
955 | ||
956 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
957 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
958 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
959 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
961 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
962 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
963 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
964 | ||
965 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
966 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
967 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
968 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
969 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
970 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
971 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
972 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
973 | ||
974 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
975 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
976 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
977 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
978 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
979 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
981 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
982 | ||
983 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
984 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
985 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
986 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
987 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
988 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
989 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
990 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
991 | ||
992 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
993 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
994 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
995 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
996 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
997 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
998 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
999 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1000 | ||
1001 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1002 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1003 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1004 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1005 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1006 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1007 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1008 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1009 | ||
1010 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1011 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1012 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1013 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1014 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1015 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1016 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1017 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1018 | ||
1019 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1021 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1022 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1023 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1024 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1025 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1026 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1027 | ||
1028 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1029 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1031 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1032 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1033 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1034 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1035 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1036 | ||
1037 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1038 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1039 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1041 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1042 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1043 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1044 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1045 | ||
1046 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1047 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1048 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1049 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1051 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1052 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1053 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1054 | ||
1055 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1056 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1057 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1058 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1059 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1061 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1062 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1063 | ||
1064 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1065 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1066 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1067 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1068 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1069 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1071 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1072 | ||
1073 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1074 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1075 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1076 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1077 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1078 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1079 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1081 | ||
1082 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1083 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1084 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1085 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1086 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1087 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1088 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1089 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1090 | ||
1091 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1092 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1093 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1094 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1095 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1096 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1097 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1098 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1099 | ||
1100 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1101 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1108 | ||
1109 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1110 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1117 | ||
1118 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1119 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1126 | ||
1127 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1128 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1135 | ||
1136 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1137 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1144 | ||
1145 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1146 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1153 | ||
1154 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1155 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1161 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1162 | ||
1163 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1164 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1171 | ||
1172 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1173 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1179 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1180 | ||
1181 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1182 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1188 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1189 | ||
1190 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1191 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1197 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1198 | ||
1199 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1206 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1207 | ||
1208 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1209 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1215 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1216 | ||
1217 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1218 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1224 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1225 | ||
1226 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1227 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1233 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1234 | ||
1235 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1236 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1242 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1243 | ||
1244 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1245 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1251 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1252 | ||
1253 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1254 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1261 | ||
1262 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1263 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1269 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1270 | ||
1271 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1272 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1278 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1279 | ||
1280 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1281 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1287 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1288 | ||
1289 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1290 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1296 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1297 | ||
1298 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1299 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1305 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1306 | ||
1307 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1308 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1309 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1310 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1311 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1312 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1313 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1314 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1315 | ||
1316 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1317 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1318 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1319 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1321 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1322 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1323 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1324 | ||
1325 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1326 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1327 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1328 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1329 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1330 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1331 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1332 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1333 | ||
1334 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1335 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1336 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1337 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1338 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1339 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1341 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1342 | ||
1343 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1344 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1345 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1346 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1347 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1348 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1349 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1350 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1351 | ||
1352 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1353 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1354 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1355 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1356 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1357 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1358 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1359 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1360 | ||
1361 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1362 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1363 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1364 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1365 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1366 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1367 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1368 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1369 | ||
1370 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1371 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1372 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1373 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1374 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1375 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1376 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1377 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1378 | ||
1379 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1381 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1382 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1383 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1384 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1385 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1386 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1387 | ||
1388 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1389 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1390 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1391 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1392 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1393 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1394 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1395 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1396 | ||
1397 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1398 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1399 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1401 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1402 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1403 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1404 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1405 | ||
1406 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1407 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1408 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1409 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1410 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1411 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1412 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1413 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1414 | ||
1415 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1416 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1417 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1418 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1419 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1421 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1422 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1423 | ||
1424 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1425 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1426 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1427 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1428 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1429 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1430 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1431 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1432 | ||
1433 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1434 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1435 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1436 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1437 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1438 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1439 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1441 | ||
1442 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1443 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1444 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1445 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1446 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1447 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1448 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1449 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1450 | ||
1451 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1452 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1453 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1454 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1455 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1456 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1457 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1458 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1459 | ||
1460 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1461 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1462 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1463 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1464 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1465 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1466 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1467 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1468 | ||
1469 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1470 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1471 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1472 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1473 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1474 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1475 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1476 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1477 | ||
1478 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1479 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1481 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1482 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1483 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1484 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1485 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1486 | ||
1487 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1488 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1489 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1490 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1491 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1492 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1493 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1494 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1495 | ||
1496 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1497 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1498 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1499 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1501 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1502 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1503 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1504 | ||
1505 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1506 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1507 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1508 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1509 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1510 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1511 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1512 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1513 | ||
1514 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1515 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1516 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1517 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1518 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1519 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1521 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1522 | ||
1523 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1524 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1525 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1526 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1527 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1528 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1529 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1530 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1531 | ||
1532 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1533 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1534 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1535 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1536 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1537 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1538 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1539 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1540 | ||
1541 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1542 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1543 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1544 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1545 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1546 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1547 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1548 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1549 | ||
1550 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1551 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1552 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1553 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1554 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1555 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1556 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1557 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1558 | ||
1559 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1561 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1562 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1563 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1564 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1565 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1566 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1567 | ||
1568 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1569 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1570 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1571 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1572 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1573 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1574 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1575 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1576 | ||
1577 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1578 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1579 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1581 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1582 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1583 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1584 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1585 | ||
1586 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1587 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1588 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1589 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1590 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1591 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1592 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1593 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1594 | ||
1595 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1596 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1597 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1598 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1599 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1601 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1602 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1603 | ||
1604 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1605 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1606 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1607 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1608 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1609 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1610 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1611 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1612 | ||
1613 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1614 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1615 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1616 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1617 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1618 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1619 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1621 | ||
1622 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1623 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1624 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1625 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1626 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1627 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1628 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1629 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1630 | ||
1631 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1632 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1633 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1634 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1635 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1636 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1637 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1638 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1639 | ||
1640 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1641 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1642 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1643 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1644 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1645 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1646 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1647 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1648 | ||
1649 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1650 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1651 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1652 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1653 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1654 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1655 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1656 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1657 | ||
1658 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1659 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1661 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1662 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1663 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1664 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1665 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1666 | ||
1667 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1668 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1669 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1670 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1671 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1672 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1673 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1674 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1675 | ||
1676 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1677 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1678 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1679 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1681 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1682 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1683 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1684 | ||
1685 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1686 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1687 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1688 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1689 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1690 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1691 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1692 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1693 | ||
1694 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1695 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1696 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1697 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1698 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1699 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1701 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1702 | ||
1703 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1704 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1705 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1706 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1707 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1708 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1709 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1710 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1711 | ||
1712 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1713 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1714 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1715 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1716 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1717 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1718 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1719 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1720 | ||
1721 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1722 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1723 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1724 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1725 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1726 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1727 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1728 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1729 | ||
1730 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1731 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1732 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1733 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1734 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1735 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1736 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1737 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1738 | ||
1739 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1741 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1742 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1743 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1744 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1745 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1746 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1747 | ||
1748 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1749 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1750 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1752 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1753 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1754 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1755 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1756 | ||
1757 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1758 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1759 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1761 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1762 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1763 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1764 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1765 | ||
1766 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1767 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1768 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1769 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1770 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1771 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1772 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1773 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1774 | ||
1775 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1776 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1777 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1778 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1779 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1781 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1782 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1783 | ||
1784 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1785 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1786 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1787 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1788 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1789 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1790 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1791 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1792 | ||
1793 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1794 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1795 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1796 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1797 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1798 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1799 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1801 | ||
1802 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1803 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1804 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1805 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1806 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1807 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1808 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1809 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1810 | ||
1811 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1812 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1813 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1814 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1815 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1816 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1817 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1818 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1819 | ||
1820 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1821 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1822 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1823 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1824 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1825 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1826 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1827 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1828 | ||
1829 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1830 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1831 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1832 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1833 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1834 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1835 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1836 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1837 | ||
1838 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1839 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1841 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1842 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1843 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1844 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1845 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1846 | ||
1847 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1848 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1849 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1850 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1851 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1852 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1853 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1854 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1855 | ||
1856 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1857 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1858 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1861 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1862 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1863 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1864 | ||
1865 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1866 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1867 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1868 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1869 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1870 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1871 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1872 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1873 | ||
1874 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1875 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1876 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1877 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1878 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1879 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1881 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1882 | ||
1883 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1884 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1885 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1886 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1887 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1888 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1889 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1890 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1891 | ||
1892 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1893 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1894 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1895 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1896 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1897 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1898 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1899 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1900 | ||
1901 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1902 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1903 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1904 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1905 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1906 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1907 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1908 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1909 | ||
1910 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1911 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1912 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1913 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1914 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1915 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1916 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1917 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1918 | ||
1919 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1921 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1922 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1923 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1924 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1925 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1926 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1927 | ||
1928 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1929 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1930 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1931 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1932 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1933 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1934 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1935 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1936 | ||
1937 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1938 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1939 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1941 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1942 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1943 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1944 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1945 | ||
1946 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1947 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1948 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1949 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1950 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1951 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1952 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1953 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1954 | ||
1955 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1956 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1957 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1958 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1959 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1961 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1962 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1963 | ||
1964 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1965 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1966 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1967 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1968 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1969 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1970 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1971 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1972 | ||
1973 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1974 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1975 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1976 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1977 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1978 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1979 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1981 | ||
1982 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1983 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1984 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1985 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1986 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1987 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1988 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1989 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1990 | ||
1991 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1992 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1993 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1994 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1995 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1996 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1997 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1998 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1999 | ||
2000 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2001 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2002 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2003 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2004 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2005 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2006 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2007 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2008 | ||
2009 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2011 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2012 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2013 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2014 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2015 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2016 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2017 | ||
2018 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2019 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2021 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2022 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2023 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2024 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2025 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2026 | ||
2027 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2028 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2029 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2031 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2032 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2033 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2034 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2035 | ||
2036 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2037 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2038 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2039 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2041 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2042 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2043 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2044 | ||
2045 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2046 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2047 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2048 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2049 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2051 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2052 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2053 | ||
2054 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2055 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2056 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2057 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2058 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2059 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2061 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2062 | ||
2063 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2064 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2065 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2066 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2067 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2068 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2069 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2071 | ||
2072 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2073 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2074 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2075 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2076 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2077 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2078 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2079 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2080 | ||
2081 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2082 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2083 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2084 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2085 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2086 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2087 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2088 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2089 | ||
2090 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2091 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2092 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2093 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2094 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2095 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2096 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2097 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2098 | ||
2099 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2101 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2107 | ||
2108 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2109 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2110 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2116 | ||
2117 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2118 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2119 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2125 | ||
2126 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2127 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2128 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2134 | ||
2135 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2136 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2137 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2143 | ||
2144 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2145 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2146 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2152 | ||
2153 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2154 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2155 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2161 | ||
2162 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2163 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2164 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2170 | ||
2171 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2172 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2173 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2179 | ||
2180 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2181 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2182 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2188 | ||
2189 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2190 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2191 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2197 | ||
2198 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2199 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2206 | ||
2207 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2208 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2209 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2215 | ||
2216 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2217 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2218 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2224 | ||
2225 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2226 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2227 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2233 | ||
2234 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2235 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2236 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2242 | ||
2243 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2244 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2245 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2251 | ||
2252 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2253 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2254 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2260 | ||
2261 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2262 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2263 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2269 | ||
2270 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2271 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2272 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2278 | ||
2279 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2281 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2287 | ||
2288 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2289 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2290 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2296 | ||
2297 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2298 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2299 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 |
0 | This test directory contains some special test EDIDs: | |
1 | ||
2 | Three test files to check the edid-decode file parser: | |
3 | ||
4 | quantumdata.test: an EDID as generated by the QuantumData (nowadays | |
5 | Teledyne LeCroy) software. | |
6 | ||
7 | xorg.test: an EDID as logged by xorg in /var/log/Xorg.0.log. | |
8 | ||
9 | xrandr.test: an EDID as reported by 'xrandr --props'. | |
10 | ||
11 | ||
12 | Five hand-crafted EDIDs to test rarely seen EDID extensions or data blocks: | |
13 | ||
14 | cta-vesa.test: has VESA Display Transfer Characteristics Data Block and | |
15 | VESA Video Display Device Data Block in the CTA-861 block. | |
16 | ||
17 | ls-ext.test: has a Localized String Extension Block. | |
18 | ||
19 | blockmap-128.test: has a single Block Map extension and a total of | |
20 | 128 blocks. | |
21 | ||
22 | blockmap-255.test: has two Block Map extensions and a total of | |
23 | 255 blocks (the maximum possible EDID size when the second | |
24 | Block Map is used). | |
25 | ||
26 | 256-blocks.test: has the maximum number of 256 blocks. | |
27 | ||
28 | ||
29 | Examples of old EDID versions: | |
30 | ||
31 | edid-1.X.test: EDIDs with version 1.0, 1.1 and 1.2. | |
32 | ||
33 | ||
34 | Test EDIDs from several standards: | |
35 | ||
36 | cta-annex-a.test | |
37 | cta-annex-d.test | |
38 | vesa-edid-1.1.test | |
39 | vesa-edid-1.3.test | |
40 | vesa-edid-1.4-1.test | |
41 | vesa-edid-1.4-2.test | |
42 | vesa-edid-1.4-3.test |
0 | edid-decode (hex): | |
1 | ||
2 | 00 ff ff ff ff ff ff 00 31 d8 34 12 00 00 00 00 | |
3 | 22 1a 01 04 a2 60 36 78 1f ee 91 a3 54 4c 99 26 | |
4 | 0f 50 54 ff ff 80 31 59 45 59 81 80 81 40 90 40 | |
5 | 95 00 a9 40 b3 00 08 e8 00 30 f2 70 5a 80 b0 58 | |
6 | 8a 00 c0 1c 32 00 00 1e 00 00 00 fd 00 18 58 0f | |
7 | 87 3c 04 12 01 e0 f8 38 f0 3c 00 00 00 fc 00 30 | |
8 | 31 32 33 34 35 36 37 38 39 30 31 32 00 00 00 f7 | |
9 | 00 0a ff ff ff ff ff f0 00 00 00 00 00 00 7f 57 | |
10 | ||
11 | f0 02 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
12 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
13 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
14 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
15 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
16 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
17 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
18 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 5e | |
19 | ||
20 | 02 03 24 f0 51 61 60 5f 5e 5d 10 1f 04 13 22 21 | |
21 | 20 05 14 02 11 01 23 09 07 07 e2 00 ea e6 0d 61 | |
22 | 81 82 6a 84 4d d0 00 a0 f0 70 3e 80 30 20 35 00 | |
23 | c0 1c 32 00 00 1e 1a 36 80 a0 70 38 1f 40 30 20 | |
24 | 35 00 c0 1c 32 00 00 1a 1a 1d 00 80 51 d0 1c 20 | |
25 | 40 80 35 00 c0 1c 32 00 00 1c 00 00 00 00 00 00 | |
26 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
27 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 | |
28 | ||
29 | 70 20 5f 02 7c 20 00 10 00 00 00 01 00 01 00 00 | |
30 | 00 00 00 04 54 65 73 74 21 00 1d 80 3e 28 23 00 | |
31 | 0f 70 08 00 3c 8a 54 cc 84 99 68 42 0f 00 45 54 | |
32 | 00 00 00 00 00 00 00 ff 22 00 14 4f 10 09 80 ff | |
33 | 0e 2f 02 27 81 57 00 6f 08 59 00 47 80 09 00 24 | |
34 | 00 06 12 7f 07 37 04 3b 26 00 09 02 02 01 01 00 | |
35 | e0 07 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 | |
36 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
37 | ||
38 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
39 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
41 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
42 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
43 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
44 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
45 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
46 | ||
47 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
48 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
49 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
51 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
52 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
53 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
54 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
55 | ||
56 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
57 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
58 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
59 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
61 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
62 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
63 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
64 | ||
65 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
66 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
67 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
68 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
69 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
71 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
72 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
73 | ||
74 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
75 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
76 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
77 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
78 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
79 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
81 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
82 | ||
83 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
84 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
85 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
86 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
87 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
88 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
89 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
90 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
91 | ||
92 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
93 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
94 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
95 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
96 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
97 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
98 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
99 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
100 | ||
101 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
108 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
109 | ||
110 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
117 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
118 | ||
119 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
126 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
127 | ||
128 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
135 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
136 | ||
137 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
144 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
145 | ||
146 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
153 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
154 | ||
155 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
161 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
162 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
163 | ||
164 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
171 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
172 | ||
173 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
179 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
181 | ||
182 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
188 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
189 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
190 | ||
191 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
197 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
198 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
199 | ||
200 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
206 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
207 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
208 | ||
209 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
215 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
216 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
217 | ||
218 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
224 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
225 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
226 | ||
227 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
233 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
234 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
235 | ||
236 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
242 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
243 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
244 | ||
245 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
251 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
252 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
253 | ||
254 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
261 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
262 | ||
263 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
269 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
270 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
271 | ||
272 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
278 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
279 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
280 | ||
281 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
287 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
288 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
289 | ||
290 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
296 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
297 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
298 | ||
299 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
305 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
306 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
307 | ||
308 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
309 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
310 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
311 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
312 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
313 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
314 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
315 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
316 | ||
317 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
318 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
319 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
321 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
322 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
323 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
324 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
325 | ||
326 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
327 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
328 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
329 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
330 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
331 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
332 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
333 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
334 | ||
335 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
336 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
337 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
338 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
339 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
341 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
342 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
343 | ||
344 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
345 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
346 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
347 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
348 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
349 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
350 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
351 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
352 | ||
353 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
354 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
355 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
356 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
357 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
358 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
359 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
361 | ||
362 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
363 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
364 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
365 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
366 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
367 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
368 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
369 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
370 | ||
371 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
372 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
373 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
374 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
375 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
376 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
377 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
378 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
379 | ||
380 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
381 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
382 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
383 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
384 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
385 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
386 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
387 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
388 | ||
389 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
390 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
391 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
392 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
393 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
394 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
395 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
396 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
397 | ||
398 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
399 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
401 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
402 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
403 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
404 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
405 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
406 | ||
407 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
408 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
409 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
410 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
411 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
412 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
413 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
414 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
415 | ||
416 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
417 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
418 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
419 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
421 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
422 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
423 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
424 | ||
425 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
426 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
427 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
428 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
429 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
430 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
431 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
432 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
433 | ||
434 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
435 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
436 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
437 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
438 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
439 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
441 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
442 | ||
443 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
444 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
445 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
446 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
447 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
448 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
449 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
450 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
451 | ||
452 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
453 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
454 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
455 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
456 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
457 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
458 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
459 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
460 | ||
461 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
462 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
463 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
464 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
465 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
466 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
467 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
468 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
469 | ||
470 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
471 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
472 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
473 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
474 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
475 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
476 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
477 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
478 | ||
479 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
481 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
482 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
483 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
484 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
485 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
486 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
487 | ||
488 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
489 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
490 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
491 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
492 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
493 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
494 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
495 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
496 | ||
497 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
498 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
499 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
501 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
502 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
503 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
504 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
505 | ||
506 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
507 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
508 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
509 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
510 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
511 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
512 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
513 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
514 | ||
515 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
516 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
517 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
518 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
519 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
521 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
522 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
523 | ||
524 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
525 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
526 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
527 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
528 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
529 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
530 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
531 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
532 | ||
533 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
534 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
535 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
536 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
537 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
538 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
539 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
541 | ||
542 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
543 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
544 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
545 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
546 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
547 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
548 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
549 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
550 | ||
551 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
552 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
553 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
554 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
555 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
556 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
557 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
558 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
559 | ||
560 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
561 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
562 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
563 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
564 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
565 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
566 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
567 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
568 | ||
569 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
570 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
571 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
572 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
573 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
574 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
575 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
576 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
577 | ||
578 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
579 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
581 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
582 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
583 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
584 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
585 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
586 | ||
587 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
588 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
589 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
590 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
591 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
592 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
593 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
594 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
595 | ||
596 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
597 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
598 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
599 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
601 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
602 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
603 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
604 | ||
605 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
606 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
607 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
608 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
609 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
610 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
611 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
612 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
613 | ||
614 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
615 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
616 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
617 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
618 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
619 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
621 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
622 | ||
623 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
624 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
625 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
626 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
627 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
628 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
629 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
630 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
631 | ||
632 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
633 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
634 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
635 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
636 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
637 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
638 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
639 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
640 | ||
641 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
642 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
643 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
644 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
645 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
646 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
647 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
648 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
649 | ||
650 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
651 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
652 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
653 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
654 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
655 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
656 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
657 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
658 | ||
659 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
661 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
662 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
663 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
664 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
665 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
666 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
667 | ||
668 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
669 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
670 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
671 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
672 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
673 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
674 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
675 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
676 | ||
677 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
678 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
679 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
681 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
682 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
683 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
684 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
685 | ||
686 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
687 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
688 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
689 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
690 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
691 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
692 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
693 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
694 | ||
695 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
696 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
697 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
698 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
699 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
701 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
702 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
703 | ||
704 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
705 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
706 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
707 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
708 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
709 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
710 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
711 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
712 | ||
713 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
714 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
715 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
716 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
717 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
718 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
719 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
721 | ||
722 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
723 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
724 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
725 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
726 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
727 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
728 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
729 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
730 | ||
731 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
732 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
733 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
734 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
735 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
736 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
737 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
738 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
739 | ||
740 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
741 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
742 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
743 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
744 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
745 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
746 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
747 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
748 | ||
749 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
750 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
752 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
753 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
754 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
755 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
756 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
757 | ||
758 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
759 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
761 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
762 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
763 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
764 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
765 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
766 | ||
767 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
768 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
769 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
770 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
771 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
772 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
773 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
774 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
775 | ||
776 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
777 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
778 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
779 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
781 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
782 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
783 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
784 | ||
785 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
786 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
787 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
788 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
789 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
790 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
791 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
792 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
793 | ||
794 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
795 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
796 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
797 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
798 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
799 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
801 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
802 | ||
803 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
804 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
805 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
806 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
807 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
808 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
809 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
810 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
811 | ||
812 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
813 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
814 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
815 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
816 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
817 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
818 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
819 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
820 | ||
821 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
822 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
823 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
824 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
825 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
826 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
827 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
828 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
829 | ||
830 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
831 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
832 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
833 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
834 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
835 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
836 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
837 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
838 | ||
839 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
841 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
842 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
843 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
844 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
845 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
846 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
847 | ||
848 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
849 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
850 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
851 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
852 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
853 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
854 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
855 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
856 | ||
857 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
858 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
861 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
862 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
863 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
864 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
865 | ||
866 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
867 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
868 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
869 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
870 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
871 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
872 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
873 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
874 | ||
875 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
876 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
877 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
878 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
879 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
881 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
882 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
883 | ||
884 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
885 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
886 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
887 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
888 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
889 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
890 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
891 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
892 | ||
893 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
894 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
895 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
896 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
897 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
898 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
899 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
901 | ||
902 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
903 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
904 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
905 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
906 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
907 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
908 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
909 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
910 | ||
911 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
912 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
913 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
914 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
915 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
916 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
917 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
918 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
919 | ||
920 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
921 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
922 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
923 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
924 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
925 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
926 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
927 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
928 | ||
929 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
930 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
931 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
932 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
933 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
934 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
935 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
936 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
937 | ||
938 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
939 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
941 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
942 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
943 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
944 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
945 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
946 | ||
947 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
948 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
949 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
950 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
951 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
952 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
953 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
954 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
955 | ||
956 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
957 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
958 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
959 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
961 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
962 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
963 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
964 | ||
965 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
966 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
967 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
968 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
969 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
970 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
971 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
972 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
973 | ||
974 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
975 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
976 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
977 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
978 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
979 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
981 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
982 | ||
983 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
984 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
985 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
986 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
987 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
988 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
989 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
990 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
991 | ||
992 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
993 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
994 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
995 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
996 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
997 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
998 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
999 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1000 | ||
1001 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1002 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1003 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1004 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1005 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1006 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1007 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1008 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1009 | ||
1010 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1011 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1012 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1013 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1014 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1015 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1016 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1017 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1018 | ||
1019 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1021 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1022 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1023 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1024 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1025 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1026 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1027 | ||
1028 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1029 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1031 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1032 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1033 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1034 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1035 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1036 | ||
1037 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1038 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1039 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1041 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1042 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1043 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1044 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1045 | ||
1046 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1047 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1048 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1049 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1051 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1052 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1053 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1054 | ||
1055 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1056 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1057 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1058 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1059 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1061 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1062 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1063 | ||
1064 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1065 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1066 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1067 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1068 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1069 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1071 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1072 | ||
1073 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1074 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1075 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1076 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1077 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1078 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1079 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1081 | ||
1082 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1083 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1084 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1085 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1086 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1087 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1088 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1089 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1090 | ||
1091 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1092 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1093 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1094 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1095 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1096 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1097 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1098 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1099 | ||
1100 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1101 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1108 | ||
1109 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1110 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1117 | ||
1118 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1119 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1126 | ||
1127 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1128 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1135 | ||
1136 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1137 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1144 | ||
1145 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1146 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 |
0 | edid-decode (hex): | |
1 | ||
2 | 00 ff ff ff ff ff ff 00 31 d8 34 12 00 00 00 00 | |
3 | 22 1a 01 04 a2 60 36 78 1f ee 91 a3 54 4c 99 26 | |
4 | 0f 50 54 ff ff 80 31 59 45 59 81 80 81 40 90 40 | |
5 | 95 00 a9 40 b3 00 08 e8 00 30 f2 70 5a 80 b0 58 | |
6 | 8a 00 c0 1c 32 00 00 1e 00 00 00 fd 00 18 58 0f | |
7 | 87 3c 04 12 01 e0 f8 38 f0 3c 00 00 00 fc 00 30 | |
8 | 31 32 33 34 35 36 37 38 39 30 31 32 00 00 00 f7 | |
9 | 00 0a ff ff ff ff ff f0 00 00 00 00 00 00 fe d8 | |
10 | ||
11 | f0 02 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
12 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
13 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
14 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
15 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
16 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
17 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
18 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 5e | |
19 | ||
20 | 02 03 24 f0 51 61 60 5f 5e 5d 10 1f 04 13 22 21 | |
21 | 20 05 14 02 11 01 23 09 07 07 e2 00 ea e6 0d 61 | |
22 | 81 82 6a 84 4d d0 00 a0 f0 70 3e 80 30 20 35 00 | |
23 | c0 1c 32 00 00 1e 1a 36 80 a0 70 38 1f 40 30 20 | |
24 | 35 00 c0 1c 32 00 00 1a 1a 1d 00 80 51 d0 1c 20 | |
25 | 40 80 35 00 c0 1c 32 00 00 1c 00 00 00 00 00 00 | |
26 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
27 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 | |
28 | ||
29 | 70 20 5f 02 fa 20 00 10 00 00 00 01 00 01 00 00 | |
30 | 00 00 00 04 54 65 73 74 21 00 1d 80 3e 28 23 00 | |
31 | 0f 70 08 00 3c 8a 54 cc 84 99 68 42 0f 00 45 54 | |
32 | 00 00 00 00 00 00 00 ff 22 00 14 4f 10 09 80 ff | |
33 | 0e 2f 02 27 81 57 00 6f 08 59 00 47 80 09 00 24 | |
34 | 00 06 12 7f 07 37 04 3b 26 00 09 02 02 01 01 00 | |
35 | e0 07 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 | |
36 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
37 | ||
38 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
39 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
41 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
42 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
43 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
44 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
45 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
46 | ||
47 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
48 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
49 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
51 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
52 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
53 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
54 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
55 | ||
56 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
57 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
58 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
59 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
61 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
62 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
63 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
64 | ||
65 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
66 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
67 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
68 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
69 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
71 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
72 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
73 | ||
74 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
75 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
76 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
77 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
78 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
79 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
81 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
82 | ||
83 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
84 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
85 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
86 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
87 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
88 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
89 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
90 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
91 | ||
92 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
93 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
94 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
95 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
96 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
97 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
98 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
99 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
100 | ||
101 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
108 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
109 | ||
110 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
117 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
118 | ||
119 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
126 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
127 | ||
128 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
135 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
136 | ||
137 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
144 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
145 | ||
146 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
153 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
154 | ||
155 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
161 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
162 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
163 | ||
164 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
171 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
172 | ||
173 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
179 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
181 | ||
182 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
188 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
189 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
190 | ||
191 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
197 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
198 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
199 | ||
200 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
206 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
207 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
208 | ||
209 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
215 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
216 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
217 | ||
218 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
224 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
225 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
226 | ||
227 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
233 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
234 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
235 | ||
236 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
242 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
243 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
244 | ||
245 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
251 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
252 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
253 | ||
254 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
261 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
262 | ||
263 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
269 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
270 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
271 | ||
272 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
278 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
279 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
280 | ||
281 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
287 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
288 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
289 | ||
290 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
296 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
297 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
298 | ||
299 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
305 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
306 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
307 | ||
308 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
309 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
310 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
311 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
312 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
313 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
314 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
315 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
316 | ||
317 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
318 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
319 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
321 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
322 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
323 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
324 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
325 | ||
326 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
327 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
328 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
329 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
330 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
331 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
332 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
333 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
334 | ||
335 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
336 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
337 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
338 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
339 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
341 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
342 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
343 | ||
344 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
345 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
346 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
347 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
348 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
349 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
350 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
351 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
352 | ||
353 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
354 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
355 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
356 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
357 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
358 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
359 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
361 | ||
362 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
363 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
364 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
365 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
366 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
367 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
368 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
369 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
370 | ||
371 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
372 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
373 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
374 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
375 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
376 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
377 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
378 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
379 | ||
380 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
381 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
382 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
383 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
384 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
385 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
386 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
387 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
388 | ||
389 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
390 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
391 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
392 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
393 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
394 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
395 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
396 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
397 | ||
398 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
399 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
401 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
402 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
403 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
404 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
405 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
406 | ||
407 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
408 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
409 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
410 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
411 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
412 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
413 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
414 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
415 | ||
416 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
417 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
418 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
419 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
421 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
422 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
423 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
424 | ||
425 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
426 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
427 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
428 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
429 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
430 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
431 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
432 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
433 | ||
434 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
435 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
436 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
437 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
438 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
439 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
441 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
442 | ||
443 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
444 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
445 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
446 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
447 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
448 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
449 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
450 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
451 | ||
452 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
453 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
454 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
455 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
456 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
457 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
458 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
459 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
460 | ||
461 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
462 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
463 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
464 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
465 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
466 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
467 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
468 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
469 | ||
470 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
471 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
472 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
473 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
474 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
475 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
476 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
477 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
478 | ||
479 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
481 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
482 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
483 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
484 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
485 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
486 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
487 | ||
488 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
489 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
490 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
491 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
492 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
493 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
494 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
495 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
496 | ||
497 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
498 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
499 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
501 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
502 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
503 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
504 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
505 | ||
506 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
507 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
508 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
509 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
510 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
511 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
512 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
513 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
514 | ||
515 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
516 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
517 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
518 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
519 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
521 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
522 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
523 | ||
524 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
525 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
526 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
527 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
528 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
529 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
530 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
531 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
532 | ||
533 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
534 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
535 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
536 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
537 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
538 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
539 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
541 | ||
542 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
543 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
544 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
545 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
546 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
547 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
548 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
549 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
550 | ||
551 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
552 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
553 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
554 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
555 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
556 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
557 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
558 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
559 | ||
560 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
561 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
562 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
563 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
564 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
565 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
566 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
567 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
568 | ||
569 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
570 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
571 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
572 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
573 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
574 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
575 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
576 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
577 | ||
578 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
579 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
581 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
582 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
583 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
584 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
585 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
586 | ||
587 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
588 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
589 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
590 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
591 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
592 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
593 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
594 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
595 | ||
596 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
597 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
598 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
599 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
601 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
602 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
603 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
604 | ||
605 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
606 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
607 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
608 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
609 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
610 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
611 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
612 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
613 | ||
614 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
615 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
616 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
617 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
618 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
619 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
621 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
622 | ||
623 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
624 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
625 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
626 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
627 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
628 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
629 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
630 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
631 | ||
632 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
633 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
634 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
635 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
636 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
637 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
638 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
639 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
640 | ||
641 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
642 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
643 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
644 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
645 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
646 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
647 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
648 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
649 | ||
650 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
651 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
652 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
653 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
654 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
655 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
656 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
657 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
658 | ||
659 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
661 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
662 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
663 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
664 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
665 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
666 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
667 | ||
668 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
669 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
670 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
671 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
672 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
673 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
674 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
675 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
676 | ||
677 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
678 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
679 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
681 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
682 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
683 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
684 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
685 | ||
686 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
687 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
688 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
689 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
690 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
691 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
692 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
693 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
694 | ||
695 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
696 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
697 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
698 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
699 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
701 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
702 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
703 | ||
704 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
705 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
706 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
707 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
708 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
709 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
710 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
711 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
712 | ||
713 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
714 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
715 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
716 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
717 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
718 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
719 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
721 | ||
722 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
723 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
724 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
725 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
726 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
727 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
728 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
729 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
730 | ||
731 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
732 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
733 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
734 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
735 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
736 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
737 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
738 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
739 | ||
740 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
741 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
742 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
743 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
744 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
745 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
746 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
747 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
748 | ||
749 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
750 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
752 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
753 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
754 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
755 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
756 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
757 | ||
758 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
759 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
761 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
762 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
763 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
764 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
765 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
766 | ||
767 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
768 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
769 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
770 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
771 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
772 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
773 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
774 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
775 | ||
776 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
777 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
778 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
779 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
781 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
782 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
783 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
784 | ||
785 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
786 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
787 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
788 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
789 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
790 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
791 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
792 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
793 | ||
794 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
795 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
796 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
797 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
798 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
799 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
801 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
802 | ||
803 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
804 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
805 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
806 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
807 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
808 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
809 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
810 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
811 | ||
812 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
813 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
814 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
815 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
816 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
817 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
818 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
819 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
820 | ||
821 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
822 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
823 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
824 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
825 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
826 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
827 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
828 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
829 | ||
830 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
831 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
832 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
833 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
834 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
835 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
836 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
837 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
838 | ||
839 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
841 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
842 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
843 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
844 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
845 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
846 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
847 | ||
848 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
849 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
850 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
851 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
852 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
853 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
854 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
855 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
856 | ||
857 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
858 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
861 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
862 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
863 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
864 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
865 | ||
866 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
867 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
868 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
869 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
870 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
871 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
872 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
873 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
874 | ||
875 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
876 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
877 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
878 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
879 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
881 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
882 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
883 | ||
884 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
885 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
886 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
887 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
888 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
889 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
890 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
891 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
892 | ||
893 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
894 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
895 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
896 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
897 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
898 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
899 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
901 | ||
902 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
903 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
904 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
905 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
906 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
907 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
908 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
909 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
910 | ||
911 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
912 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
913 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
914 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
915 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
916 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
917 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
918 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
919 | ||
920 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
921 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
922 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
923 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
924 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
925 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
926 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
927 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
928 | ||
929 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
930 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
931 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
932 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
933 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
934 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
935 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
936 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
937 | ||
938 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
939 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
941 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
942 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
943 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
944 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
945 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
946 | ||
947 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
948 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
949 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
950 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
951 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
952 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
953 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
954 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
955 | ||
956 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
957 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
958 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
959 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
961 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
962 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
963 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
964 | ||
965 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
966 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
967 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
968 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
969 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
970 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
971 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
972 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
973 | ||
974 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
975 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
976 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
977 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
978 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
979 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
981 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
982 | ||
983 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
984 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
985 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
986 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
987 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
988 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
989 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
990 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
991 | ||
992 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
993 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
994 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
995 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
996 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
997 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
998 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
999 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1000 | ||
1001 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1002 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1003 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1004 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1005 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1006 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1007 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1008 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1009 | ||
1010 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1011 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1012 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1013 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1014 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1015 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1016 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1017 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1018 | ||
1019 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1021 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1022 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1023 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1024 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1025 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1026 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1027 | ||
1028 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1029 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1031 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1032 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1033 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1034 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1035 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1036 | ||
1037 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1038 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1039 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1041 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1042 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1043 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1044 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1045 | ||
1046 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1047 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1048 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1049 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1051 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1052 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1053 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1054 | ||
1055 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1056 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1057 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1058 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1059 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1061 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1062 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1063 | ||
1064 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1065 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1066 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1067 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1068 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1069 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1071 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1072 | ||
1073 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1074 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1075 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1076 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1077 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1078 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1079 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1081 | ||
1082 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1083 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1084 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1085 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1086 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1087 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1088 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1089 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1090 | ||
1091 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1092 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1093 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1094 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1095 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1096 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1097 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1098 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1099 | ||
1100 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1101 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1107 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1108 | ||
1109 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1110 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1116 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1117 | ||
1118 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1119 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1125 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1126 | ||
1127 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1128 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1134 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1135 | ||
1136 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1137 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1143 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1144 | ||
1145 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1146 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1152 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1153 | ||
1154 | f0 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1155 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1156 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1157 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1158 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1159 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1160 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 | |
1161 | 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 f0 | |
1162 | ||
1163 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1164 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1171 | ||
1172 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1173 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1179 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1180 | ||
1181 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1182 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1188 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1189 | ||
1190 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1191 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1197 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1198 | ||
1199 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1206 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1207 | ||
1208 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1209 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1215 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1216 | ||
1217 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1218 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1224 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1225 | ||
1226 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1227 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1233 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1234 | ||
1235 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1236 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1242 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1243 | ||
1244 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1245 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1251 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1252 | ||
1253 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1254 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1261 | ||
1262 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1263 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1269 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1270 | ||
1271 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1272 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1278 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1279 | ||
1280 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1281 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1287 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1288 | ||
1289 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1290 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1296 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1297 | ||
1298 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1299 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1301 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1302 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1303 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1304 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1305 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1306 | ||
1307 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1308 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1309 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1310 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1311 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1312 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1313 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1314 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1315 | ||
1316 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1317 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1318 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1319 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1321 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1322 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1323 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1324 | ||
1325 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1326 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1327 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1328 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1329 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1330 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1331 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1332 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1333 | ||
1334 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1335 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1336 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1337 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1338 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1339 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1341 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1342 | ||
1343 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1344 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1345 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1346 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1347 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1348 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1349 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1350 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1351 | ||
1352 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1353 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1354 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1355 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1356 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1357 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1358 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1359 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1360 | ||
1361 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1362 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1363 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1364 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1365 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1366 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1367 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1368 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1369 | ||
1370 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1371 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1372 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1373 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1374 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1375 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1376 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1377 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1378 | ||
1379 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1381 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1382 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1383 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1384 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1385 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1386 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1387 | ||
1388 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1389 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1390 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1391 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1392 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1393 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1394 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1395 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1396 | ||
1397 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1398 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1399 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1401 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1402 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1403 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1404 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1405 | ||
1406 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1407 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1408 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1409 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1410 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1411 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1412 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1413 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1414 | ||
1415 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1416 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1417 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1418 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1419 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1421 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1422 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1423 | ||
1424 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1425 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1426 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1427 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1428 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1429 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1430 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1431 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1432 | ||
1433 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1434 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1435 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1436 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1437 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1438 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1439 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1441 | ||
1442 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1443 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1444 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1445 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1446 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1447 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1448 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1449 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1450 | ||
1451 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1452 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1453 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1454 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1455 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1456 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1457 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1458 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1459 | ||
1460 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1461 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1462 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1463 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1464 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1465 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1466 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1467 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1468 | ||
1469 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1470 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1471 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1472 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1473 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1474 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1475 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1476 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1477 | ||
1478 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1479 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1481 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1482 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1483 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1484 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1485 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1486 | ||
1487 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1488 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1489 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1490 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1491 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1492 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1493 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1494 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1495 | ||
1496 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1497 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1498 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1499 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1501 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1502 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1503 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1504 | ||
1505 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1506 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1507 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1508 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1509 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1510 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1511 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1512 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1513 | ||
1514 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1515 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1516 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1517 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1518 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1519 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1521 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1522 | ||
1523 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1524 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1525 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1526 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1527 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1528 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1529 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1530 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1531 | ||
1532 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1533 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1534 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1535 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1536 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1537 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1538 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1539 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1540 | ||
1541 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1542 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1543 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1544 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1545 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1546 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1547 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1548 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1549 | ||
1550 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1551 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1552 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1553 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1554 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1555 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1556 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1557 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1558 | ||
1559 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1561 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1562 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1563 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1564 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1565 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1566 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1567 | ||
1568 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1569 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1570 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1571 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1572 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1573 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1574 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1575 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1576 | ||
1577 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1578 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1579 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1581 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1582 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1583 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1584 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1585 | ||
1586 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1587 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1588 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1589 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1590 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1591 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1592 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1593 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1594 | ||
1595 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1596 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1597 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1598 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1599 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1601 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1602 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1603 | ||
1604 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1605 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1606 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1607 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1608 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1609 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1610 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1611 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1612 | ||
1613 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1614 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1615 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1616 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1617 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1618 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1619 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1621 | ||
1622 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1623 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1624 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1625 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1626 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1627 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1628 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1629 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1630 | ||
1631 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1632 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1633 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1634 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1635 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1636 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1637 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1638 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1639 | ||
1640 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1641 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1642 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1643 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1644 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1645 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1646 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1647 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1648 | ||
1649 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1650 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1651 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1652 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1653 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1654 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1655 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1656 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1657 | ||
1658 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1659 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1661 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1662 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1663 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1664 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1665 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1666 | ||
1667 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1668 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1669 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1670 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1671 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1672 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1673 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1674 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1675 | ||
1676 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1677 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1678 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1679 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1681 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1682 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1683 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1684 | ||
1685 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1686 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1687 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1688 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1689 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1690 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1691 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1692 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1693 | ||
1694 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1695 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1696 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1697 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1698 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1699 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1701 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1702 | ||
1703 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1704 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1705 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1706 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1707 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1708 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1709 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1710 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1711 | ||
1712 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1713 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1714 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1715 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1716 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1717 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1718 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1719 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1720 | ||
1721 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1722 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1723 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1724 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1725 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1726 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1727 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1728 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1729 | ||
1730 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1731 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1732 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1733 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1734 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1735 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1736 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1737 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1738 | ||
1739 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1741 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1742 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1743 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1744 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1745 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1746 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1747 | ||
1748 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1749 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1750 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1752 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1753 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1754 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1755 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1756 | ||
1757 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1758 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1759 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1761 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1762 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1763 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1764 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1765 | ||
1766 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1767 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1768 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1769 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1770 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1771 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1772 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1773 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1774 | ||
1775 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1776 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1777 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1778 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1779 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1781 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1782 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1783 | ||
1784 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1785 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1786 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1787 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1788 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1789 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1790 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1791 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1792 | ||
1793 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1794 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1795 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1796 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1797 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1798 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1799 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1801 | ||
1802 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1803 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1804 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1805 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1806 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1807 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1808 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1809 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1810 | ||
1811 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1812 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1813 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1814 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1815 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1816 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1817 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1818 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1819 | ||
1820 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1821 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1822 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1823 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1824 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1825 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1826 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1827 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1828 | ||
1829 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1830 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1831 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1832 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1833 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1834 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1835 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1836 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1837 | ||
1838 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1839 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1841 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1842 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1843 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1844 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1845 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1846 | ||
1847 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1848 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1849 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1850 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1851 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1852 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1853 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1854 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1855 | ||
1856 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1857 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1858 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1861 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1862 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1863 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1864 | ||
1865 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1866 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1867 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1868 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1869 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1870 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1871 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1872 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1873 | ||
1874 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1875 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1876 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1877 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1878 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1879 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1881 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1882 | ||
1883 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1884 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1885 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1886 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1887 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1888 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1889 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1890 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1891 | ||
1892 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1893 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1894 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1895 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1896 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1897 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1898 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1899 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1900 | ||
1901 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1902 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1903 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1904 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1905 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1906 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1907 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1908 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1909 | ||
1910 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1911 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1912 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1913 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1914 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1915 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1916 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1917 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1918 | ||
1919 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1921 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1922 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1923 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1924 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1925 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1926 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1927 | ||
1928 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1929 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1930 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1931 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1932 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1933 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1934 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1935 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1936 | ||
1937 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1938 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1939 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1941 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1942 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1943 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1944 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1945 | ||
1946 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1947 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1948 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1949 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1950 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1951 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1952 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1953 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1954 | ||
1955 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1956 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1957 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1958 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1959 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1961 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1962 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1963 | ||
1964 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1965 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1966 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1967 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1968 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1969 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1970 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1971 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1972 | ||
1973 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1974 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1975 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1976 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1977 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1978 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1979 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1981 | ||
1982 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1983 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1984 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1985 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1986 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1987 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1988 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1989 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1990 | ||
1991 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
1992 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1993 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1994 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1995 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1996 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1997 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
1998 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
1999 | ||
2000 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2001 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2002 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2003 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2004 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2005 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2006 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2007 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2008 | ||
2009 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2011 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2012 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2013 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2014 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2015 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2016 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2017 | ||
2018 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2019 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2021 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2022 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2023 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2024 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2025 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2026 | ||
2027 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2028 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2029 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2031 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2032 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2033 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2034 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2035 | ||
2036 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2037 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2038 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2039 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2041 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2042 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2043 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2044 | ||
2045 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2046 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2047 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2048 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2049 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2051 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2052 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2053 | ||
2054 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2055 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2056 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2057 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2058 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2059 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2061 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2062 | ||
2063 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2064 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2065 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2066 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2067 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2068 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2069 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2071 | ||
2072 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2073 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2074 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2075 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2076 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2077 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2078 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2079 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2080 | ||
2081 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2082 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2083 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2084 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2085 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2086 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2087 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2088 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2089 | ||
2090 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2091 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2092 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2093 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2094 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2095 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2096 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2097 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2098 | ||
2099 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2101 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2102 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2103 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2104 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2105 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2106 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2107 | ||
2108 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2109 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2110 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2111 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2112 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2113 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2114 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2115 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2116 | ||
2117 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2118 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2119 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2121 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2122 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2123 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2124 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2125 | ||
2126 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2127 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2128 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2129 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2131 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2132 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2133 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2134 | ||
2135 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2136 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2137 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2138 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2139 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2141 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2142 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2143 | ||
2144 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2145 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2146 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2147 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2148 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2149 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2151 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2152 | ||
2153 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2154 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2155 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2156 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2157 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2158 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2159 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2161 | ||
2162 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2163 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2164 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2165 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2166 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2167 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2168 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2169 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2170 | ||
2171 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2172 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2173 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2174 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2175 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2176 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2177 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2178 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2179 | ||
2180 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2181 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2182 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2183 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2184 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2185 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2186 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2187 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2188 | ||
2189 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2190 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2191 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2192 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2193 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2194 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2195 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2196 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2197 | ||
2198 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2199 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2201 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2202 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2203 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2204 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2205 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2206 | ||
2207 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2208 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2209 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2210 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2211 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2212 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2213 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2214 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2215 | ||
2216 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2217 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2218 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2219 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2221 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2222 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2223 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2224 | ||
2225 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2226 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2227 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2228 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2229 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2230 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2231 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2232 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2233 | ||
2234 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2235 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2236 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2237 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2238 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2239 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2241 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2242 | ||
2243 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2244 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2245 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2246 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2247 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2248 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2249 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2250 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2251 | ||
2252 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2253 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2254 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2255 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2256 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2257 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2258 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2259 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2260 | ||
2261 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2262 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2263 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2264 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2265 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2266 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2267 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2268 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2269 | ||
2270 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2271 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2272 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2273 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2274 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2275 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2276 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2277 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2278 | ||
2279 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2281 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2282 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2283 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2284 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2285 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2286 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 | |
2287 | ||
2288 | 70 20 04 00 00 23 00 01 02 b6 00 00 00 00 00 00 | |
2289 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2290 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2291 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2292 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2293 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2294 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
2295 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 |
0 | 00 ff ff ff ff ff ff 00 0c a1 00 00 00 00 00 00 | |
1 | 00 0c 01 03 80 50 2d 78 0a 0d c9 a0 57 47 98 27 | |
2 | 12 48 4c 20 00 00 01 01 01 01 01 01 01 01 01 01 | |
3 | 01 01 01 01 01 01 01 1d 80 18 71 1c 16 20 58 2c | |
4 | 25 00 20 c2 31 00 00 9e 8c 0a d0 8a 20 e0 2d 10 | |
5 | 10 3e 96 00 58 c2 21 00 00 18 00 00 00 fc 00 4d | |
6 | 59 20 48 44 54 56 0a 20 20 20 20 20 00 00 00 fd | |
7 | 00 3b 3d 0f 2e 08 00 0a 20 20 20 20 20 20 01 c3 | |
8 | ||
9 | 02 01 04 00 01 1d 00 72 51 d0 1e 20 6e 28 55 00 | |
10 | 20 c2 31 00 00 1e 8c 0a a0 14 51 f0 16 00 26 7c | |
11 | 43 00 58 c2 21 00 00 98 00 00 00 01 00 52 45 56 | |
12 | 31 2e 30 30 0a 00 00 00 00 00 00 00 00 ff 00 39 | |
13 | 39 46 43 35 30 30 30 31 0a 20 20 20 00 00 00 00 | |
14 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
15 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
16 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 84 |
0 | 00 ff ff ff ff ff ff 00 0c a1 00 00 00 00 00 00 | |
1 | 00 0f 01 03 80 50 2d 78 0a 0d c9 a0 57 47 98 27 | |
2 | 12 48 4c 20 00 00 01 01 01 01 01 01 01 01 01 01 | |
3 | 01 01 01 01 01 01 01 1d 80 18 71 1c 16 20 58 2c | |
4 | 25 00 20 c2 31 00 00 9e 8c 0a d0 8a 20 e0 2d 10 | |
5 | 10 3e 96 00 58 c2 21 00 00 18 00 00 00 fc 00 4d | |
6 | 59 20 48 44 54 56 0a 20 20 20 20 20 00 00 00 fd | |
7 | 00 3b 3d 0f 2e 08 00 0a 20 20 20 20 20 20 01 c0 | |
8 | ||
9 | 02 03 1a 71 47 85 02 03 04 06 07 01 23 09 07 07 | |
10 | 83 01 00 00 65 03 0c 00 10 00 01 1d 00 72 51 d0 | |
11 | 1e 20 6e 28 55 00 20 c2 31 00 00 1e 8c 0a a0 14 | |
12 | 51 f0 16 00 26 7c 43 00 58 c2 21 00 00 98 8c 0a | |
13 | d0 8a 20 e0 2d 10 10 3e 96 00 20 c2 31 00 00 18 | |
14 | 8c 0a a0 14 51 f0 16 00 26 7c 43 00 20 c2 31 00 | |
15 | 00 98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
16 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7a |
0 | 00 ff ff ff ff ff ff 00 31 d8 34 12 00 00 00 00 | |
1 | 22 1a 01 03 80 60 36 78 1e ee 91 a3 54 4c 99 26 | |
2 | 0f 50 54 2f cf 00 31 59 45 59 81 80 81 40 90 40 | |
3 | 95 00 a9 40 b3 00 08 e8 00 30 f2 70 5a 80 b0 58 | |
4 | 8a 00 c0 1c 32 00 00 1e 00 00 00 fd 00 18 55 18 | |
5 | 87 3c 00 0a 20 20 20 20 20 20 00 00 00 fc 00 68 | |
6 | 64 6d 69 2d 34 6b 2d 36 30 30 0a 20 00 00 00 10 | |
7 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 1d | |
8 | ||
9 | 02 03 3d f0 41 61 23 09 07 07 e2 00 ea af 06 1b | |
10 | 2c 34 3f 3c 60 43 4b 6c 44 82 4d 3b 42 ff 02 92 | |
11 | 11 03 00 00 00 0a 40 06 3c 11 0a 18 18 d0 80 83 | |
12 | 8f 3c 77 41 02 25 4a 7e 77 00 00 8c 57 4d d0 00 | |
13 | a0 f0 70 3e 80 30 20 35 00 c0 8c 32 00 00 1e 00 | |
14 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
15 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
16 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 |
0 | 00 ff ff ff ff ff ff 00 34 38 c2 0b f1 01 00 00 | |
1 | 0f 0a 01 00 28 20 18 32 e8 7e 4e 9e 57 45 98 24 | |
2 | 10 47 4f a4 42 01 31 59 45 59 61 59 71 4f 81 80 | |
3 | 01 01 01 01 01 01 f9 15 20 f8 30 58 1f 20 20 40 | |
4 | 13 00 40 f0 10 00 00 1e a4 1a 20 10 31 58 24 20 | |
5 | 2f 55 33 00 40 f0 10 00 00 1e 30 2a 00 98 51 00 | |
6 | 2a 40 30 70 13 00 40 f0 10 00 00 1e ea 24 00 60 | |
7 | 41 00 28 30 30 60 13 00 40 f0 10 00 00 1e 00 fb |
0 | 00 ff ff ff ff ff ff 00 34 ac 81 43 f9 14 00 00 | |
1 | 16 0a 01 01 0c 1f 17 a3 e8 67 a8 a0 56 47 99 26 | |
2 | 11 48 4c ff ef 80 31 59 45 59 61 59 71 4f 81 59 | |
3 | 81 99 a9 45 a9 4a 1a 4f 40 30 62 b0 32 40 40 c0 | |
4 | 13 00 38 ea 10 00 00 1e 00 00 00 fd 00 32 82 1e | |
5 | 60 16 00 0a 20 20 20 20 20 20 00 00 00 fc 00 4e | |
6 | 46 4e 39 37 30 35 0a 20 20 20 20 20 00 00 00 ff | |
7 | 00 30 30 35 31 30 35 33 36 39 0a 20 20 20 00 6f |
0 | 00 ff ff ff ff ff ff 00 4c a3 46 36 00 00 00 00 | |
1 | 00 12 01 02 80 21 15 78 0a 87 f5 94 57 4f 8c 27 | |
2 | 27 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 | |
3 | 01 01 01 01 01 01 e0 2e 90 c4 60 1a 0f 40 18 58 | |
4 | 13 00 4b cf 10 00 00 19 00 00 00 0f 00 00 00 00 | |
5 | 00 00 00 00 00 3c d2 02 64 00 00 00 00 fe 00 53 | |
6 | 41 4d 53 55 4e 47 0a 20 20 20 20 20 00 00 00 fe | |
7 | 00 4c 54 4e 31 35 34 50 33 2d 4c 30 34 0a 00 e0 |
0 | 00 ff ff ff ff ff ff 00 31 d8 34 12 00 00 00 00 | |
1 | 22 1a 01 03 80 60 36 78 0f ee 91 a3 54 4c 99 26 | |
2 | 0f 50 54 2f cf 00 31 59 45 59 81 80 81 40 90 40 | |
3 | 95 00 a9 40 b3 00 08 e8 00 30 f2 70 5a 80 b0 58 | |
4 | 8a 00 c0 1c 32 00 00 1e 00 00 00 fd 00 18 55 18 | |
5 | 87 3c 00 0a 20 20 20 20 20 20 00 00 00 fc 00 68 | |
6 | 64 6d 69 2d 34 6b 2d 36 30 30 0a 20 00 00 00 10 | |
7 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 2b | |
8 | ||
9 | 02 03 3f f0 51 61 60 5f 5e 5d 10 1f 04 13 22 21 | |
10 | 20 05 14 02 11 01 23 09 07 07 83 01 00 00 6d 03 | |
11 | 0c 00 10 00 00 3c 21 00 60 01 02 03 67 d8 5d c4 | |
12 | 01 78 00 00 e2 00 ea e3 05 00 00 e3 06 01 00 4d | |
13 | d0 00 a0 f0 70 3e 80 30 20 35 00 c0 1c 32 00 00 | |
14 | 1e 1a 36 80 a0 70 38 1f 40 30 20 35 00 c0 1c 32 | |
15 | 00 00 1a 1a 1d 00 80 51 d0 1c 20 40 80 35 00 c0 | |
16 | 1c 32 00 00 1c 00 00 00 00 00 00 00 00 00 00 63 | |
17 | ||
18 | 50 01 00 30 00 22 00 02 10 39 84 09 46 61 62 72 | |
19 | 69 6b 61 6e 74 05 4d 6f 64 65 6c 0b 53 65 72 69 | |
20 | 65 6e 75 6d 6d 65 72 00 00 00 00 00 00 00 00 00 | |
21 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
22 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
23 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
24 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
25 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 66 |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <DATAOBJ> | |
2 | <HEADER TYPE="DID" VERSION="1.0"/> | |
3 | <DATA> | |
4 | <BLOCK0>00FFFFFFFFFFFF0031D8341200000000221A0103806036780FEE91A3544C99260F50542FCF00315945598180814090409500A940B30008E80030F2705A80B0588A00C01C3200001E000000FD00185518873C000A202020202020000000FC0068646D692D346B2D3630300A20000000100000000000000000000000000000012C</BLOCK0> | |
5 | <BLOCK1>02033FF05161605F5E5D101F0413222120051402110123090707830100006D030C001000003C21006001020367D85DC401780000E200EAE3050000E30601004DD000A0F0703E8030203500C01C3200001E1A3680A070381F4030203500C01C3200001A1A1D008051D01C2040803500C01C3200001C0000000000000000000063</BLOCK1> | |
6 | </DATA> | |
7 | </DATAOBJ> |
0 | 00 ff ff ff ff ff ff 00 24 4d 8e 19 00 00 00 00 | |
1 | 0a 05 01 01 08 28 1e b4 c8 00 b2 a0 57 49 9b 26 | |
2 | 10 48 4f a4 cf 7c 31 4a a9 40 a9 4a a9 4f 81 80 | |
3 | 01 01 01 01 01 01 10 0b d0 b4 20 5e 63 10 12 6c | |
4 | 62 08 fa b8 00 00 00 1a 00 00 00 ff 00 33 30 39 | |
5 | 41 42 43 30 30 30 32 35 0a 20 00 00 00 fe 00 54 | |
6 | 48 49 53 20 49 53 20 41 0a 20 20 20 00 00 00 fe | |
7 | 00 54 45 53 54 2c 20 54 48 45 20 45 4e 44 00 8f |
0 | 00 ff ff ff ff ff ff 00 10 ac ab 50 00 00 00 00 | |
1 | 2a 09 01 03 0e 26 1d 96 ef ee 91 a3 54 4c 99 26 | |
2 | 0f 50 54 a5 43 00 a9 4f a9 59 71 59 61 59 45 59 | |
3 | 31 59 c2 8f 01 01 86 3d 00 c0 51 00 30 40 40 a0 | |
4 | 13 00 7c 22 11 00 00 1e 00 00 00 ff 00 35 35 33 | |
5 | 34 37 42 4f 4e 5a 48 34 37 0a 00 00 00 fc 00 44 | |
6 | 45 4c 4c 20 55 52 31 31 31 0a 20 20 00 00 00 fd | |
7 | 00 30 a0 1e 79 1c 02 00 28 50 10 0e 80 46 00 8d | |
8 |
0 | 00 ff ff ff ff ff ff 00 04 43 06 f2 01 00 00 00 | |
1 | 01 11 01 04 0f 2b 20 78 2b 9c 68 a0 57 4a 9b 26 | |
2 | 12 48 4c ff ff 80 a9 59 a9 4f a9 4a a9 45 81 99 | |
3 | 81 80 61 59 45 59 48 3f 40 30 62 b0 32 40 40 c0 | |
4 | 13 00 ab 40 11 00 00 1e 00 00 00 fd 00 32 5a 1e | |
5 | 6e 17 04 11 00 c8 90 00 50 3c 00 00 00 f7 00 0a | |
6 | f7 0f 03 87 c0 00 00 00 00 00 00 00 00 00 00 fc | |
7 | 00 41 42 43 20 4c 43 44 32 31 0a 20 20 20 00 9a |
0 | 00 ff ff ff ff ff ff 00 04 43 07 f2 01 00 00 00 | |
1 | ff 11 01 04 a2 4f 00 78 1e ee 91 a3 54 4c 99 26 | |
2 | 0f 50 54 20 00 00 01 01 01 01 01 01 01 01 01 01 | |
3 | 01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c | |
4 | 04 05 0f 48 42 00 00 1e 01 1d 80 18 71 1c 16 20 | |
5 | 58 2c 25 00 0f 48 42 00 00 9e 01 1d 00 72 51 d0 | |
6 | 1e 20 6e 28 55 00 0f 48 42 00 00 1e 00 00 00 fc | |
7 | 00 41 42 43 20 4c 43 44 34 37 77 0a 20 20 01 cb | |
8 | ||
9 | 02 03 1a 72 47 90 85 04 03 02 07 06 23 09 07 07 | |
10 | 83 01 00 00 65 03 0c 00 10 00 8e 0a d0 8a 20 e0 | |
11 | 2d 10 10 3e 96 00 1f 09 00 00 00 18 8e 0a d0 8a | |
12 | 20 e0 2d 10 10 3e 96 00 04 03 00 00 00 18 8e 0a | |
13 | a0 14 51 f0 16 00 26 7c 43 00 1f 09 00 00 00 98 | |
14 | 8e 0a a0 14 51 f0 16 00 26 7c 43 00 04 03 00 00 | |
15 | 00 98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
16 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c7 |
0 | 00 ff ff ff ff ff ff 00 04 43 08 f2 01 00 00 00 | |
1 | 10 11 01 04 a2 79 44 78 1e ee 91 a3 54 4c 99 26 | |
2 | 0f 50 54 ff ef 80 81 99 81 80 81 59 81 40 61 59 | |
3 | 4b c0 45 59 31 59 66 21 50 b0 51 00 1b 30 40 70 | |
4 | 36 00 be ab 42 00 00 1e 01 1d 00 72 51 d0 1e 20 | |
5 | 6e 28 55 00 be ab 42 00 00 1e 00 00 00 f7 00 0a | |
6 | f7 0f 03 87 c0 00 00 00 00 00 00 00 00 00 00 fc | |
7 | 00 41 42 43 20 50 4c 41 35 35 0a 20 20 20 01 0a | |
8 | ||
9 | 02 03 19 f0 46 05 04 03 02 07 06 23 09 07 07 83 | |
10 | 01 00 00 65 03 0c 00 10 00 01 1d 80 18 71 1c 16 | |
11 | 20 58 2c 25 00 0f 48 42 00 00 9e 01 1d 00 72 51 | |
12 | d0 1e 20 6e 28 55 00 0f 48 42 00 00 1e 8c 0a d0 | |
13 | 8a 20 e0 2d 10 10 3e 96 00 b9 88 21 00 00 18 8e | |
14 | 0a a0 14 51 f0 16 00 26 7c 43 00 b9 88 21 00 00 | |
15 | 98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
16 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 58 |
0 | [ 4.295] (--) Log file renamed from "/var/log/Xorg.pid-762.log" to "/var/log/Xorg.0.log" | |
1 | [ 4.296] | |
2 | X.Org X Server 1.20.4 | |
3 | X Protocol Version 11, Revision 0 | |
4 | [ 4.296] Build Operating System: Linux 4.9.0-8-amd64 x86_64 Debian | |
5 | [ 4.296] Current Operating System: Linux octomore 5.4.0-rc8-octomore #23 SMP PREEMPT Sat Nov 23 16:00:49 CET 2019 x86_64 | |
6 | [ 4.296] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-rc8-octomore root=UUID=e227131b-ee41-479a-a25e-bce91b18a6ed ro | |
7 | [ 4.296] Build Date: 05 March 2019 08:11:12PM | |
8 | [ 4.296] xorg-server 2:1.20.4-1 (https://www.debian.org/support) | |
9 | [ 4.296] Current version of pixman: 0.36.0 | |
10 | [ 4.296] Before reporting problems, check http://wiki.x.org | |
11 | to make sure that you have the latest version. | |
12 | [ 4.296] Markers: (--) probed, (**) from config file, (==) default setting, | |
13 | (++) from command line, (!!) notice, (II) informational, | |
14 | (WW) warning, (EE) error, (NI) not implemented, (??) unknown. | |
15 | [ 4.296] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Nov 26 16:25:38 2019 | |
16 | [ 4.297] (==) Using system config directory "/usr/share/X11/xorg.conf.d" | |
17 | [ 4.298] (==) No Layout section. Using the first Screen section. | |
18 | [ 4.298] (==) No screen section available. Using defaults. | |
19 | [ 4.298] (**) |-->Screen "Default Screen Section" (0) | |
20 | [ 4.298] (**) | |-->Monitor "<default monitor>" | |
21 | [ 4.298] (==) No monitor specified for screen "Default Screen Section". | |
22 | Using a default monitor configuration. | |
23 | [ 4.298] (==) Automatically adding devices | |
24 | [ 4.298] (==) Automatically enabling devices | |
25 | [ 4.298] (==) Automatically adding GPU devices | |
26 | [ 4.298] (==) Max clients allowed: 256, resource mask: 0x1fffff | |
27 | [ 4.299] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist. | |
28 | [ 4.299] Entry deleted from font path. | |
29 | [ 4.301] (==) FontPath set to: | |
30 | /usr/share/fonts/X11/misc, | |
31 | /usr/share/fonts/X11/100dpi/:unscaled, | |
32 | /usr/share/fonts/X11/75dpi/:unscaled, | |
33 | /usr/share/fonts/X11/Type1, | |
34 | /usr/share/fonts/X11/100dpi, | |
35 | /usr/share/fonts/X11/75dpi, | |
36 | built-ins | |
37 | [ 4.301] (==) ModulePath set to "/usr/lib/xorg/modules" | |
38 | [ 4.301] (II) The server relies on udev to provide the list of input devices. | |
39 | If no devices become available, reconfigure udev or disable AutoAddDevices. | |
40 | [ 4.301] (II) Loader magic: 0x55a9db113e20 | |
41 | [ 4.301] (II) Module ABI versions: | |
42 | [ 4.301] X.Org ANSI C Emulation: 0.4 | |
43 | [ 4.301] X.Org Video Driver: 24.0 | |
44 | [ 4.301] X.Org XInput driver : 24.1 | |
45 | [ 4.301] X.Org Server Extension : 10.0 | |
46 | [ 4.301] (++) using VT number 7 | |
47 | ||
48 | [ 4.301] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration | |
49 | [ 4.302] (II) xfree86: Adding drm device (/dev/dri/card1) | |
50 | [ 4.316] (II) xfree86: Adding drm device (/dev/dri/card0) | |
51 | [ 4.318] (--) PCI:*(0@0:2:0) 8086:5917:17aa:225c rev 7, Mem @ 0x2ffa000000/16777216, 0x2fa0000000/268435456, I/O @ 0x0000e000/64, BIOS @ 0x????????/131072 | |
52 | [ 4.318] (II) LoadModule: "glx" | |
53 | [ 4.319] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so | |
54 | [ 4.325] (II) Module glx: vendor="X.Org Foundation" | |
55 | [ 4.325] compiled for 1.20.4, module version = 1.0.0 | |
56 | [ 4.325] ABI class: X.Org Server Extension, version 10.0 | |
57 | [ 4.325] (==) Matched modesetting as autoconfigured driver 0 | |
58 | [ 4.325] (==) Matched fbdev as autoconfigured driver 1 | |
59 | [ 4.325] (==) Matched vesa as autoconfigured driver 2 | |
60 | [ 4.325] (==) Assigned the driver to the xf86ConfigLayout | |
61 | [ 4.325] (II) LoadModule: "modesetting" | |
62 | [ 4.325] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so | |
63 | [ 4.326] (II) Module modesetting: vendor="X.Org Foundation" | |
64 | [ 4.326] compiled for 1.20.4, module version = 1.20.4 | |
65 | [ 4.326] Module class: X.Org Video Driver | |
66 | [ 4.326] ABI class: X.Org Video Driver, version 24.0 | |
67 | [ 4.326] (II) LoadModule: "fbdev" | |
68 | [ 4.326] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so | |
69 | [ 4.327] (II) Module fbdev: vendor="X.Org Foundation" | |
70 | [ 4.327] compiled for 1.20.0, module version = 0.5.0 | |
71 | [ 4.327] Module class: X.Org Video Driver | |
72 | [ 4.327] ABI class: X.Org Video Driver, version 24.0 | |
73 | [ 4.327] (II) LoadModule: "vesa" | |
74 | [ 4.327] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so | |
75 | [ 4.327] (II) Module vesa: vendor="X.Org Foundation" | |
76 | [ 4.327] compiled for 1.20.4, module version = 2.4.0 | |
77 | [ 4.327] Module class: X.Org Video Driver | |
78 | [ 4.327] ABI class: X.Org Video Driver, version 24.0 | |
79 | [ 4.327] (II) modesetting: Driver for Modesetting Kernel Drivers: kms | |
80 | [ 4.327] (II) FBDEV: driver for framebuffer: fbdev | |
81 | [ 4.327] (II) VESA: driver for VESA chipsets: vesa | |
82 | [ 4.350] (II) modeset(0): using drv /dev/dri/card1 | |
83 | [ 4.350] (WW) Falling back to old probe method for fbdev | |
84 | [ 4.350] (II) Loading sub module "fbdevhw" | |
85 | [ 4.350] (II) LoadModule: "fbdevhw" | |
86 | [ 4.350] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so | |
87 | [ 4.350] (II) Module fbdevhw: vendor="X.Org Foundation" | |
88 | [ 4.350] compiled for 1.20.4, module version = 0.0.2 | |
89 | [ 4.350] ABI class: X.Org Video Driver, version 24.0 | |
90 | [ 4.350] (II) modeset(0): Creating default Display subsection in Screen section | |
91 | "Default Screen Section" for depth/fbbpp 24/32 | |
92 | [ 4.350] (==) modeset(0): Depth 24, (==) framebuffer bpp 32 | |
93 | [ 4.350] (==) modeset(0): RGB weight 888 | |
94 | [ 4.350] (==) modeset(0): Default visual is TrueColor | |
95 | [ 4.350] (II) Loading sub module "glamoregl" | |
96 | [ 4.350] (II) LoadModule: "glamoregl" | |
97 | [ 4.350] (II) Loading /usr/lib/xorg/modules/libglamoregl.so | |
98 | [ 4.356] (II) Module glamoregl: vendor="X.Org Foundation" | |
99 | [ 4.356] compiled for 1.20.4, module version = 1.0.1 | |
100 | [ 4.356] ABI class: X.Org ANSI C Emulation, version 0.4 | |
101 | [ 4.395] (II) modeset(0): glamor X acceleration enabled on Mesa DRI Intel(R) UHD Graphics 620 (Kabylake GT2) | |
102 | [ 4.395] (II) modeset(0): glamor initialized | |
103 | [ 4.396] (II) modeset(0): Output eDP-1 has no monitor section | |
104 | [ 4.396] (II) modeset(0): Output DP-1 has no monitor section | |
105 | [ 4.404] (II) modeset(0): Output HDMI-1 has no monitor section | |
106 | [ 4.404] (II) modeset(0): Output DP-2 has no monitor section | |
107 | [ 4.513] (II) modeset(0): Output HDMI-2 has no monitor section | |
108 | [ 4.514] (II) modeset(0): EDID for output eDP-1 | |
109 | [ 4.514] (II) modeset(0): Manufacturer: AUO Model: 313d Serial#: 0 | |
110 | [ 4.514] (II) modeset(0): Year: 2016 Week: 0 | |
111 | [ 4.514] (II) modeset(0): EDID Version: 1.4 | |
112 | [ 4.514] (II) modeset(0): Digital Display Input | |
113 | [ 4.514] (II) modeset(0): 8 bits per channel | |
114 | [ 4.514] (II) modeset(0): Digital interface is DisplayPort | |
115 | [ 4.514] (II) modeset(0): Max Image Size [cm]: horiz.: 31 vert.: 17 | |
116 | [ 4.514] (II) modeset(0): Gamma: 2.20 | |
117 | [ 4.514] (II) modeset(0): No DPMS capabilities specified | |
118 | [ 4.514] (II) modeset(0): Supported color encodings: RGB 4:4:4 | |
119 | [ 4.514] (II) modeset(0): First detailed timing is preferred mode | |
120 | [ 4.514] (II) modeset(0): Preferred mode is native pixel format and refresh rate | |
121 | [ 4.514] (II) modeset(0): redX: 0.631 redY: 0.336 greenX: 0.323 greenY: 0.614 | |
122 | [ 4.514] (II) modeset(0): blueX: 0.156 blueY: 0.040 whiteX: 0.313 whiteY: 0.329 | |
123 | [ 4.514] (II) modeset(0): Manufacturer's mask: 0 | |
124 | [ 4.514] (II) modeset(0): Supported detailed timing: | |
125 | [ 4.514] (II) modeset(0): clock: 141.0 MHz Image Size: 309 x 174 mm | |
126 | [ 4.514] (II) modeset(0): h_active: 1920 h_sync: 1936 h_sync_end 1952 h_blank_end 2104 h_border: 0 | |
127 | [ 4.514] (II) modeset(0): v_active: 1080 v_sync: 1083 v_sync_end 1097 v_blanking: 1116 v_border: 0 | |
128 | [ 4.514] (II) modeset(0): Unknown vendor-specific block f | |
129 | [ 4.514] (II) modeset(0): AUO | |
130 | [ 4.514] (II) modeset(0): B140HAN03.1 | |
131 | [ 4.514] (II) modeset(0): EDID (in hex): | |
132 | [ 4.514] (II) modeset(0): 00ffffffffffff0006af3d3100000000 | |
133 | [ 4.514] (II) modeset(0): 001a0104a51f1178028d15a156529d28 | |
134 | [ 4.514] (II) modeset(0): 0a505400000001010101010101010101 | |
135 | [ 4.514] (II) modeset(0): 010101010101143780b8703824401010 | |
136 | [ 4.514] (II) modeset(0): 3e0035ae100000180000000f00000000 | |
137 | [ 4.514] (II) modeset(0): 00000000000000000020000000fe0041 | |
138 | [ 4.514] (II) modeset(0): 554f0a202020202020202020000000fe | |
139 | [ 4.514] (II) modeset(0): 004231343048414e30332e31200a003b | |
140 | [ 4.514] (II) modeset(0): Printing probed modes for output eDP-1 | |
141 | [ 4.514] (II) modeset(0): Modeline "1920x1080"x60.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
142 | [ 4.514] (II) modeset(0): Modeline "1920x1080"x120.0 356.38 1920 2080 2288 2656 1080 1081 1084 1118 doublescan -hsync +vsync (134.2 kHz d) | |
143 | [ 4.514] (II) modeset(0): Modeline "1920x1080"x119.9 266.50 1920 1944 1960 2000 1080 1081 1084 1111 doublescan +hsync -vsync (133.2 kHz d) | |
144 | [ 4.514] (II) modeset(0): Modeline "1920x1080"x60.0 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync (67.2 kHz d) | |
145 | [ 4.514] (II) modeset(0): Modeline "1920x1080"x59.9 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync (66.6 kHz d) | |
146 | [ 4.514] (II) modeset(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz d) | |
147 | [ 4.514] (II) modeset(0): Modeline "1680x1050"x59.9 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz d) | |
148 | [ 4.514] (II) modeset(0): Modeline "1600x1024"x60.2 103.12 1600 1600 1656 1664 1024 1024 1029 1030 +hsync +vsync (62.0 kHz d) | |
149 | [ 4.514] (II) modeset(0): Modeline "1400x1050"x60.0 122.00 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync (64.9 kHz d) | |
150 | [ 4.514] (II) modeset(0): Modeline "1600x900"x120.0 246.00 1600 1728 1900 2200 900 901 904 932 doublescan -hsync +vsync (111.8 kHz d) | |
151 | [ 4.514] (II) modeset(0): Modeline "1600x900"x119.9 186.50 1600 1624 1640 1680 900 901 904 926 doublescan +hsync -vsync (111.0 kHz d) | |
152 | [ 4.514] (II) modeset(0): Modeline "1600x900"x59.9 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync (56.0 kHz d) | |
153 | [ 4.514] (II) modeset(0): Modeline "1600x900"x59.8 97.50 1600 1648 1680 1760 900 903 908 926 +hsync -vsync (55.4 kHz d) | |
154 | [ 4.514] (II) modeset(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz d) | |
155 | [ 4.514] (II) modeset(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz d) | |
156 | [ 4.514] (II) modeset(0): Modeline "1400x900"x60.0 103.50 1400 1480 1624 1848 900 903 913 934 -hsync +vsync (56.0 kHz d) | |
157 | [ 4.514] (II) modeset(0): Modeline "1400x900"x59.9 86.50 1400 1448 1480 1560 900 903 913 926 +hsync -vsync (55.4 kHz d) | |
158 | [ 4.514] (II) modeset(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz d) | |
159 | [ 4.514] (II) modeset(0): Modeline "1440x810"x120.0 198.12 1440 1548 1704 1968 810 811 814 839 doublescan -hsync +vsync (100.7 kHz d) | |
160 | [ 4.514] (II) modeset(0): Modeline "1440x810"x119.9 151.88 1440 1464 1480 1520 810 811 814 833 doublescan +hsync -vsync (99.9 kHz d) | |
161 | [ 4.514] (II) modeset(0): Modeline "1368x768"x59.9 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync (47.8 kHz d) | |
162 | [ 4.514] (II) modeset(0): Modeline "1368x768"x59.9 72.25 1368 1416 1448 1528 768 771 781 790 +hsync -vsync (47.3 kHz d) | |
163 | [ 4.514] (II) modeset(0): Modeline "1360x768"x59.8 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync (47.7 kHz d) | |
164 | [ 4.514] (II) modeset(0): Modeline "1360x768"x60.0 72.00 1360 1408 1440 1520 768 771 781 790 +hsync -vsync (47.4 kHz d) | |
165 | [ 4.514] (II) modeset(0): Modeline "1280x800"x120.0 174.25 1280 1380 1516 1752 800 801 804 829 doublescan -hsync +vsync (99.5 kHz d) | |
166 | [ 4.514] (II) modeset(0): Modeline "1280x800"x119.9 134.25 1280 1304 1320 1360 800 801 804 823 doublescan +hsync -vsync (98.7 kHz d) | |
167 | [ 4.514] (II) modeset(0): Modeline "1280x800"x59.8 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync (49.7 kHz d) | |
168 | [ 4.514] (II) modeset(0): Modeline "1280x800"x59.9 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync (49.3 kHz d) | |
169 | [ 4.514] (II) modeset(0): Modeline "1152x864"x60.0 81.62 1152 1216 1336 1520 864 865 868 895 -hsync +vsync (53.7 kHz d) | |
170 | [ 4.514] (II) modeset(0): Modeline "1280x720"x120.0 156.12 1280 1376 1512 1744 720 721 724 746 doublescan -hsync +vsync (89.5 kHz d) | |
171 | [ 4.514] (II) modeset(0): Modeline "1280x720"x120.0 120.75 1280 1304 1320 1360 720 721 724 740 doublescan +hsync -vsync (88.8 kHz d) | |
172 | [ 4.514] (II) modeset(0): Modeline "1280x720"x59.9 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync (44.8 kHz d) | |
173 | [ 4.514] (II) modeset(0): Modeline "1280x720"x59.7 63.75 1280 1328 1360 1440 720 723 728 741 +hsync -vsync (44.3 kHz d) | |
174 | [ 4.514] (II) modeset(0): Modeline "1024x768"x120.1 133.47 1024 1100 1212 1400 768 768 770 794 doublescan -hsync +vsync (95.3 kHz d) | |
175 | [ 4.514] (II) modeset(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz d) | |
176 | [ 4.514] (II) modeset(0): Modeline "960x720"x120.0 117.00 960 1024 1128 1300 720 720 722 750 doublescan -hsync +vsync (90.0 kHz d) | |
177 | [ 4.514] (II) modeset(0): Modeline "928x696"x120.1 109.15 928 976 1088 1264 696 696 698 719 doublescan -hsync +vsync (86.4 kHz d) | |
178 | [ 4.514] (II) modeset(0): Modeline "896x672"x120.0 102.40 896 960 1060 1224 672 672 674 697 doublescan -hsync +vsync (83.7 kHz d) | |
179 | [ 4.514] (II) modeset(0): Modeline "1024x576"x119.9 98.50 1024 1092 1200 1376 576 577 580 597 doublescan -hsync +vsync (71.6 kHz d) | |
180 | [ 4.514] (II) modeset(0): Modeline "1024x576"x119.9 78.38 1024 1048 1064 1104 576 577 580 592 doublescan +hsync -vsync (71.0 kHz d) | |
181 | [ 4.514] (II) modeset(0): Modeline "1024x576"x59.9 46.50 1024 1064 1160 1296 576 579 584 599 -hsync +vsync (35.9 kHz d) | |
182 | [ 4.514] (II) modeset(0): Modeline "1024x576"x59.8 42.00 1024 1072 1104 1184 576 579 584 593 +hsync -vsync (35.5 kHz d) | |
183 | [ 4.514] (II) modeset(0): Modeline "960x600"x119.9 96.62 960 1028 1128 1296 600 601 604 622 doublescan -hsync +vsync (74.6 kHz d) | |
184 | [ 4.514] (II) modeset(0): Modeline "960x600"x120.0 77.00 960 984 1000 1040 600 601 604 617 doublescan +hsync -vsync (74.0 kHz d) | |
185 | [ 4.514] (II) modeset(0): Modeline "960x540"x119.9 86.50 960 1024 1124 1288 540 541 544 560 doublescan -hsync +vsync (67.2 kHz d) | |
186 | [ 4.514] (II) modeset(0): Modeline "960x540"x120.0 69.25 960 984 1000 1040 540 541 544 555 doublescan +hsync -vsync (66.6 kHz d) | |
187 | [ 4.514] (II) modeset(0): Modeline "960x540"x59.6 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync (33.5 kHz d) | |
188 | [ 4.514] (II) modeset(0): Modeline "960x540"x59.8 37.25 960 1008 1040 1120 540 543 548 556 +hsync -vsync (33.3 kHz d) | |
189 | [ 4.514] (II) modeset(0): Modeline "800x600"x120.0 81.00 800 832 928 1080 600 600 602 625 doublescan +hsync +vsync (75.0 kHz d) | |
190 | [ 4.514] (II) modeset(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz d) | |
191 | [ 4.514] (II) modeset(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz d) | |
192 | [ 4.514] (II) modeset(0): Modeline "840x525"x120.0 73.12 840 892 980 1120 525 526 529 544 doublescan -hsync +vsync (65.3 kHz d) | |
193 | [ 4.514] (II) modeset(0): Modeline "840x525"x119.8 59.50 840 864 880 920 525 526 529 540 doublescan +hsync -vsync (64.7 kHz d) | |
194 | [ 4.514] (II) modeset(0): Modeline "864x486"x59.9 32.50 864 888 968 1072 486 489 494 506 -hsync +vsync (30.3 kHz d) | |
195 | [ 4.514] (II) modeset(0): Modeline "864x486"x59.6 30.50 864 912 944 1024 486 489 494 500 +hsync -vsync (29.8 kHz d) | |
196 | [ 4.514] (II) modeset(0): Modeline "800x512"x120.3 51.56 800 800 828 832 512 512 514 515 doublescan +hsync +vsync (62.0 kHz d) | |
197 | [ 4.514] (II) modeset(0): Modeline "700x525"x120.0 61.00 700 744 820 940 525 526 532 541 doublescan +hsync +vsync (64.9 kHz d) | |
198 | [ 4.514] (II) modeset(0): Modeline "800x450"x119.9 59.12 800 848 928 1056 450 451 454 467 doublescan -hsync +vsync (56.0 kHz d) | |
199 | [ 4.514] (II) modeset(0): Modeline "800x450"x119.6 48.75 800 824 840 880 450 451 454 463 doublescan +hsync -vsync (55.4 kHz d) | |
200 | [ 4.514] (II) modeset(0): Modeline "640x512"x120.0 54.00 640 664 720 844 512 512 514 533 doublescan +hsync +vsync (64.0 kHz d) | |
201 | [ 4.514] (II) modeset(0): Modeline "720x450"x119.8 53.25 720 760 836 952 450 451 454 467 doublescan -hsync +vsync (55.9 kHz d) | |
202 | [ 4.514] (II) modeset(0): Modeline "700x450"x119.9 51.75 700 740 812 924 450 451 456 467 doublescan -hsync +vsync (56.0 kHz d) | |
203 | [ 4.514] (II) modeset(0): Modeline "700x450"x119.8 43.25 700 724 740 780 450 451 456 463 doublescan +hsync -vsync (55.4 kHz d) | |
204 | [ 4.514] (II) modeset(0): Modeline "640x480"x120.0 54.00 640 688 744 900 480 480 482 500 doublescan +hsync +vsync (60.0 kHz d) | |
205 | [ 4.514] (II) modeset(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz d) | |
206 | [ 4.514] (II) modeset(0): Modeline "720x405"x59.5 22.50 720 744 808 896 405 408 413 422 -hsync +vsync (25.1 kHz d) | |
207 | [ 4.514] (II) modeset(0): Modeline "720x405"x59.0 21.75 720 768 800 880 405 408 413 419 +hsync -vsync (24.7 kHz d) | |
208 | [ 4.514] (II) modeset(0): Modeline "684x384"x119.8 42.62 684 720 788 892 384 385 390 399 doublescan -hsync +vsync (47.8 kHz d) | |
209 | [ 4.514] (II) modeset(0): Modeline "684x384"x119.7 36.12 684 708 724 764 384 385 390 395 doublescan +hsync -vsync (47.3 kHz d) | |
210 | [ 4.514] (II) modeset(0): Modeline "680x384"x119.6 42.38 680 716 784 888 384 385 390 399 doublescan -hsync +vsync (47.7 kHz d) | |
211 | [ 4.514] (II) modeset(0): Modeline "680x384"x119.9 36.00 680 704 720 760 384 385 390 395 doublescan +hsync -vsync (47.4 kHz d) | |
212 | [ 4.514] (II) modeset(0): Modeline "640x400"x119.8 41.75 640 676 740 840 400 401 404 415 doublescan -hsync +vsync (49.7 kHz d) | |
213 | [ 4.514] (II) modeset(0): Modeline "640x400"x120.0 35.50 640 664 680 720 400 401 404 411 doublescan +hsync -vsync (49.3 kHz d) | |
214 | [ 4.514] (II) modeset(0): Modeline "576x432"x120.1 40.81 576 608 668 760 432 432 434 447 doublescan -hsync +vsync (53.7 kHz d) | |
215 | [ 4.514] (II) modeset(0): Modeline "640x360"x119.7 37.25 640 672 736 832 360 361 364 374 doublescan -hsync +vsync (44.8 kHz d) | |
216 | [ 4.514] (II) modeset(0): Modeline "640x360"x119.7 31.88 640 664 680 720 360 361 364 370 doublescan +hsync -vsync (44.3 kHz d) | |
217 | [ 4.514] (II) modeset(0): Modeline "640x360"x59.8 18.00 640 664 720 800 360 363 368 376 -hsync +vsync (22.5 kHz d) | |
218 | [ 4.514] (II) modeset(0): Modeline "640x360"x59.3 17.75 640 688 720 800 360 363 368 374 +hsync -vsync (22.2 kHz d) | |
219 | [ 4.514] (II) modeset(0): Modeline "512x384"x120.0 32.50 512 524 592 672 384 385 388 403 doublescan -hsync -vsync (48.4 kHz d) | |
220 | [ 4.514] (II) modeset(0): Modeline "512x288"x120.0 23.25 512 532 580 648 288 289 292 299 doublescan -hsync +vsync (35.9 kHz d) | |
221 | [ 4.514] (II) modeset(0): Modeline "512x288"x119.8 21.00 512 536 552 592 288 289 292 296 doublescan +hsync -vsync (35.5 kHz d) | |
222 | [ 4.514] (II) modeset(0): Modeline "480x270"x119.3 20.38 480 496 544 608 270 271 274 281 doublescan -hsync +vsync (33.5 kHz d) | |
223 | [ 4.514] (II) modeset(0): Modeline "480x270"x119.6 18.62 480 504 520 560 270 271 274 278 doublescan +hsync -vsync (33.3 kHz d) | |
224 | [ 4.514] (II) modeset(0): Modeline "400x300"x120.6 20.00 400 420 484 528 300 300 302 314 doublescan +hsync +vsync (37.9 kHz d) | |
225 | [ 4.515] (II) modeset(0): Modeline "400x300"x112.7 18.00 400 412 448 512 300 300 301 312 doublescan +hsync +vsync (35.2 kHz d) | |
226 | [ 4.515] (II) modeset(0): Modeline "432x243"x119.8 16.25 432 444 484 536 243 244 247 253 doublescan -hsync +vsync (30.3 kHz d) | |
227 | [ 4.515] (II) modeset(0): Modeline "432x243"x119.1 15.25 432 456 472 512 243 244 247 250 doublescan +hsync -vsync (29.8 kHz d) | |
228 | [ 4.515] (II) modeset(0): Modeline "320x240"x120.1 12.59 320 328 376 400 240 245 246 262 doublescan -hsync -vsync (31.5 kHz d) | |
229 | [ 4.515] (II) modeset(0): Modeline "360x202"x119.0 11.25 360 372 404 448 202 204 206 211 doublescan -hsync +vsync (25.1 kHz d) | |
230 | [ 4.515] (II) modeset(0): Modeline "360x202"x118.3 10.88 360 384 400 440 202 204 206 209 doublescan +hsync -vsync (24.7 kHz d) | |
231 | [ 4.515] (II) modeset(0): Modeline "320x180"x119.7 9.00 320 332 360 400 180 181 184 188 doublescan -hsync +vsync (22.5 kHz d) | |
232 | [ 4.515] (II) modeset(0): Modeline "320x180"x118.6 8.88 320 344 360 400 180 181 184 187 doublescan +hsync -vsync (22.2 kHz d) | |
233 | [ 4.515] (II) modeset(0): EDID for output DP-1 | |
234 | [ 4.531] (II) modeset(0): EDID for output HDMI-1 | |
235 | [ 4.531] (II) modeset(0): EDID for output DP-2 | |
236 | [ 4.640] (II) modeset(0): EDID for output HDMI-2 | |
237 | [ 4.640] (II) modeset(0): Output eDP-1 connected | |
238 | [ 4.640] (II) modeset(0): Output DP-1 disconnected | |
239 | [ 4.640] (II) modeset(0): Output HDMI-1 disconnected | |
240 | [ 4.640] (II) modeset(0): Output DP-2 disconnected | |
241 | [ 4.640] (II) modeset(0): Output HDMI-2 disconnected | |
242 | [ 4.640] (II) modeset(0): Using exact sizes for initial modes | |
243 | [ 4.640] (II) modeset(0): Output eDP-1 using initial mode 1920x1080 +0+0 | |
244 | [ 4.641] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0) | |
245 | [ 4.641] (==) modeset(0): DPI set to (96, 96) | |
246 | [ 4.641] (II) Loading sub module "fb" | |
247 | [ 4.641] (II) LoadModule: "fb" | |
248 | [ 4.641] (II) Loading /usr/lib/xorg/modules/libfb.so | |
249 | [ 4.642] (II) Module fb: vendor="X.Org Foundation" | |
250 | [ 4.642] compiled for 1.20.4, module version = 1.0.0 | |
251 | [ 4.642] ABI class: X.Org ANSI C Emulation, version 0.4 | |
252 | [ 4.642] (II) UnloadModule: "fbdev" | |
253 | [ 4.642] (II) Unloading fbdev | |
254 | [ 4.642] (II) UnloadSubModule: "fbdevhw" | |
255 | [ 4.642] (II) Unloading fbdevhw | |
256 | [ 4.642] (II) UnloadModule: "vesa" | |
257 | [ 4.642] (II) Unloading vesa | |
258 | [ 4.651] (==) modeset(0): Backing store enabled | |
259 | [ 4.651] (==) modeset(0): Silken mouse enabled | |
260 | [ 4.716] (II) modeset(0): Initializing kms color map for depth 24, 8 bpc. | |
261 | [ 4.716] (==) modeset(0): DPMS enabled | |
262 | [ 4.717] (II) modeset(0): [DRI2] Setup complete | |
263 | [ 4.717] (II) modeset(0): [DRI2] DRI driver: i965 | |
264 | [ 4.717] (II) modeset(0): [DRI2] VDPAU driver: i965 | |
265 | [ 4.717] (II) Initializing extension Generic Event Extension | |
266 | [ 4.717] (II) Initializing extension SHAPE | |
267 | [ 4.717] (II) Initializing extension MIT-SHM | |
268 | [ 4.717] (II) Initializing extension XInputExtension | |
269 | [ 4.718] (II) Initializing extension XTEST | |
270 | [ 4.718] (II) Initializing extension BIG-REQUESTS | |
271 | [ 4.718] (II) Initializing extension SYNC | |
272 | [ 4.718] (II) Initializing extension XKEYBOARD | |
273 | [ 4.718] (II) Initializing extension XC-MISC | |
274 | [ 4.718] (II) Initializing extension SECURITY | |
275 | [ 4.718] (II) Initializing extension XFIXES | |
276 | [ 4.718] (II) Initializing extension RENDER | |
277 | [ 4.718] (II) Initializing extension RANDR | |
278 | [ 4.719] (II) Initializing extension COMPOSITE | |
279 | [ 4.719] (II) Initializing extension DAMAGE | |
280 | [ 4.719] (II) Initializing extension MIT-SCREEN-SAVER | |
281 | [ 4.719] (II) Initializing extension DOUBLE-BUFFER | |
282 | [ 4.719] (II) Initializing extension RECORD | |
283 | [ 4.719] (II) Initializing extension DPMS | |
284 | [ 4.719] (II) Initializing extension Present | |
285 | [ 4.719] (II) Initializing extension DRI3 | |
286 | [ 4.719] (II) Initializing extension X-Resource | |
287 | [ 4.719] (II) Initializing extension XVideo | |
288 | [ 4.720] (II) Initializing extension XVideo-MotionCompensation | |
289 | [ 4.720] (II) Initializing extension SELinux | |
290 | [ 4.720] (II) SELinux: Disabled on system | |
291 | [ 4.720] (II) Initializing extension GLX | |
292 | [ 4.724] (II) AIGLX: Loaded and initialized i965 | |
293 | [ 4.724] (II) GLX: Initialized DRI2 GL provider for screen 0 | |
294 | [ 4.724] (II) Initializing extension XFree86-VidModeExtension | |
295 | [ 4.724] (II) Initializing extension XFree86-DGA | |
296 | [ 4.724] (II) Initializing extension XFree86-DRI | |
297 | [ 4.724] (II) Initializing extension DRI2 | |
298 | [ 4.733] (II) modeset(0): Damage tracking initialized | |
299 | [ 4.733] (II) modeset(0): Setting screen physical size to 508 x 285 | |
300 | [ 4.771] (II) config/udev: Adding input device Power Button (/dev/input/event2) | |
301 | [ 4.771] (**) Power Button: Applying InputClass "libinput keyboard catchall" | |
302 | [ 4.771] (II) LoadModule: "libinput" | |
303 | [ 4.771] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so | |
304 | [ 4.774] (II) Module libinput: vendor="X.Org Foundation" | |
305 | [ 4.774] compiled for 1.20.4, module version = 0.29.0 | |
306 | [ 4.774] Module class: X.Org XInput Driver | |
307 | [ 4.774] ABI class: X.Org XInput driver, version 24.1 | |
308 | [ 4.774] (II) Using input driver 'libinput' for 'Power Button' | |
309 | [ 4.774] (**) Power Button: always reports core events | |
310 | [ 4.774] (**) Option "Device" "/dev/input/event2" | |
311 | [ 4.774] (**) Option "_source" "server/udev" | |
312 | [ 4.776] (II) event2 - Power Button: is tagged by udev as: Keyboard | |
313 | [ 4.776] (II) event2 - Power Button: device is a keyboard | |
314 | [ 4.776] (II) event2 - Power Button: device removed | |
315 | [ 4.796] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2" | |
316 | [ 4.796] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) | |
317 | [ 4.796] (**) Option "xkb_model" "pc105" | |
318 | [ 4.796] (**) Option "xkb_layout" "us" | |
319 | [ 4.796] (II) event2 - Power Button: is tagged by udev as: Keyboard | |
320 | [ 4.796] (II) event2 - Power Button: device is a keyboard | |
321 | [ 4.797] (II) config/udev: Adding input device Video Bus (/dev/input/event5) | |
322 | [ 4.797] (**) Video Bus: Applying InputClass "libinput keyboard catchall" | |
323 | [ 4.797] (II) Using input driver 'libinput' for 'Video Bus' | |
324 | [ 4.797] (**) Video Bus: always reports core events | |
325 | [ 4.797] (**) Option "Device" "/dev/input/event5" | |
326 | [ 4.797] (**) Option "_source" "server/udev" | |
327 | [ 4.797] (II) event5 - Video Bus: is tagged by udev as: Keyboard | |
328 | [ 4.797] (II) event5 - Video Bus: device is a keyboard | |
329 | [ 4.797] (II) event5 - Video Bus: device removed | |
330 | [ 4.819] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7/event5" | |
331 | [ 4.819] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7) | |
332 | [ 4.819] (**) Option "xkb_model" "pc105" | |
333 | [ 4.819] (**) Option "xkb_layout" "us" | |
334 | [ 4.819] (II) event5 - Video Bus: is tagged by udev as: Keyboard | |
335 | [ 4.819] (II) event5 - Video Bus: device is a keyboard | |
336 | [ 4.819] (II) config/udev: Adding input device Lid Switch (/dev/input/event1) | |
337 | [ 4.819] (II) No input driver specified, ignoring this device. | |
338 | [ 4.819] (II) This device may have been added with another device file. | |
339 | [ 4.820] (II) config/udev: Adding input device Sleep Button (/dev/input/event0) | |
340 | [ 4.820] (**) Sleep Button: Applying InputClass "libinput keyboard catchall" | |
341 | [ 4.820] (II) Using input driver 'libinput' for 'Sleep Button' | |
342 | [ 4.820] (**) Sleep Button: always reports core events | |
343 | [ 4.820] (**) Option "Device" "/dev/input/event0" | |
344 | [ 4.820] (**) Option "_source" "server/udev" | |
345 | [ 4.820] (II) event0 - Sleep Button: is tagged by udev as: Keyboard | |
346 | [ 4.820] (II) event0 - Sleep Button: device is a keyboard | |
347 | [ 4.820] (II) event0 - Sleep Button: device removed | |
348 | [ 4.834] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0/event0" | |
349 | [ 4.834] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 8) | |
350 | [ 4.834] (**) Option "xkb_model" "pc105" | |
351 | [ 4.834] (**) Option "xkb_layout" "us" | |
352 | [ 4.834] (II) event0 - Sleep Button: is tagged by udev as: Keyboard | |
353 | [ 4.834] (II) event0 - Sleep Button: device is a keyboard | |
354 | [ 4.835] (II) config/udev: Adding input device serio3 (/dev/input/event19) | |
355 | [ 4.835] (**) serio3: Applying InputClass "libinput keyboard catchall" | |
356 | [ 4.835] (II) Using input driver 'libinput' for 'serio3' | |
357 | [ 4.835] (**) serio3: always reports core events | |
358 | [ 4.835] (**) Option "Device" "/dev/input/event19" | |
359 | [ 4.835] (**) Option "_source" "server/udev" | |
360 | [ 4.836] (II) event19 - serio3: is tagged by udev as: Keyboard | |
361 | [ 4.836] (II) event19 - serio3: device is a keyboard | |
362 | [ 4.836] (II) event19 - serio3: device removed | |
363 | [ 4.847] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio3/rc/rc0/input21/event19" | |
364 | [ 4.847] (II) XINPUT: Adding extended input device "serio3" (type: KEYBOARD, id 9) | |
365 | [ 4.847] (**) Option "xkb_model" "pc105" | |
366 | [ 4.847] (**) Option "xkb_layout" "us" | |
367 | [ 4.848] (II) event19 - serio3: is tagged by udev as: Keyboard | |
368 | [ 4.848] (II) event19 - serio3: device is a keyboard | |
369 | [ 4.848] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
370 | [ 4.848] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
371 | [ 4.848] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
372 | [ 4.848] (**) Pulse-Eight CEC Adapter: always reports core events | |
373 | [ 4.848] (**) Option "Device" "/dev/input/event6" | |
374 | [ 4.848] (**) Option "_source" "server/udev" | |
375 | [ 4.900] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
376 | [ 4.900] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
377 | [ 4.900] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
378 | [ 4.915] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0001/input/input8/event6" | |
379 | [ 4.915] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 10) | |
380 | [ 4.915] (**) Option "AccelerationScheme" "none" | |
381 | [ 4.915] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
382 | [ 4.915] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
383 | [ 4.915] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
384 | [ 4.967] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
385 | [ 4.967] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
386 | [ 4.968] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
387 | [ 4.968] (II) No input driver specified, ignoring this device. | |
388 | [ 4.968] (II) This device may have been added with another device file. | |
389 | [ 4.968] (II) config/udev: Adding input device Integrated IR Camera: Integrate (/dev/input/event17) | |
390 | [ 4.968] (**) Integrated IR Camera: Integrate: Applying InputClass "libinput keyboard catchall" | |
391 | [ 4.968] (II) Using input driver 'libinput' for 'Integrated IR Camera: Integrate' | |
392 | [ 4.968] (**) Integrated IR Camera: Integrate: always reports core events | |
393 | [ 4.968] (**) Option "Device" "/dev/input/event17" | |
394 | [ 4.968] (**) Option "_source" "server/udev" | |
395 | [ 4.969] (II) event17 - Integrated IR Camera: Integrate: is tagged by udev as: Keyboard | |
396 | [ 4.969] (II) event17 - Integrated IR Camera: Integrate: device is a keyboard | |
397 | [ 4.969] (II) event17 - Integrated IR Camera: Integrate: device removed | |
398 | [ 4.985] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input19/event17" | |
399 | [ 4.985] (II) XINPUT: Adding extended input device "Integrated IR Camera: Integrate" (type: KEYBOARD, id 11) | |
400 | [ 4.985] (**) Option "xkb_model" "pc105" | |
401 | [ 4.985] (**) Option "xkb_layout" "us" | |
402 | [ 4.985] (II) event17 - Integrated IR Camera: Integrate: is tagged by udev as: Keyboard | |
403 | [ 4.985] (II) event17 - Integrated IR Camera: Integrate: device is a keyboard | |
404 | [ 4.986] (II) config/udev: Adding input device Integrated Camera: Integrated C (/dev/input/event18) | |
405 | [ 4.986] (**) Integrated Camera: Integrated C: Applying InputClass "libinput keyboard catchall" | |
406 | [ 4.986] (II) Using input driver 'libinput' for 'Integrated Camera: Integrated C' | |
407 | [ 4.986] (**) Integrated Camera: Integrated C: always reports core events | |
408 | [ 4.986] (**) Option "Device" "/dev/input/event18" | |
409 | [ 4.986] (**) Option "_source" "server/udev" | |
410 | [ 4.986] (II) event18 - Integrated Camera: Integrated C: is tagged by udev as: Keyboard | |
411 | [ 4.987] (II) event18 - Integrated Camera: Integrated C: device is a keyboard | |
412 | [ 4.987] (II) event18 - Integrated Camera: Integrated C: device removed | |
413 | [ 5.005] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input20/event18" | |
414 | [ 5.005] (II) XINPUT: Adding extended input device "Integrated Camera: Integrated C" (type: KEYBOARD, id 12) | |
415 | [ 5.005] (**) Option "xkb_model" "pc105" | |
416 | [ 5.005] (**) Option "xkb_layout" "us" | |
417 | [ 5.005] (II) event18 - Integrated Camera: Integrated C: is tagged by udev as: Keyboard | |
418 | [ 5.005] (II) event18 - Integrated Camera: Integrated C: device is a keyboard | |
419 | [ 5.006] (II) config/udev: Adding input device HDA Intel PCH Mic (/dev/input/event8) | |
420 | [ 5.006] (II) No input driver specified, ignoring this device. | |
421 | [ 5.006] (II) This device may have been added with another device file. | |
422 | [ 5.006] (II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event9) | |
423 | [ 5.006] (II) No input driver specified, ignoring this device. | |
424 | [ 5.006] (II) This device may have been added with another device file. | |
425 | [ 5.006] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=3 (/dev/input/event10) | |
426 | [ 5.006] (II) No input driver specified, ignoring this device. | |
427 | [ 5.006] (II) This device may have been added with another device file. | |
428 | [ 5.006] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=7 (/dev/input/event11) | |
429 | [ 5.006] (II) No input driver specified, ignoring this device. | |
430 | [ 5.006] (II) This device may have been added with another device file. | |
431 | [ 5.006] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=8 (/dev/input/event12) | |
432 | [ 5.006] (II) No input driver specified, ignoring this device. | |
433 | [ 5.006] (II) This device may have been added with another device file. | |
434 | [ 5.007] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=9 (/dev/input/event13) | |
435 | [ 5.007] (II) No input driver specified, ignoring this device. | |
436 | [ 5.007] (II) This device may have been added with another device file. | |
437 | [ 5.007] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=10 (/dev/input/event14) | |
438 | [ 5.007] (II) No input driver specified, ignoring this device. | |
439 | [ 5.007] (II) This device may have been added with another device file. | |
440 | [ 5.007] (II) config/udev: Adding input device HDA Digital PCBeep (/dev/input/event7) | |
441 | [ 5.007] (II) No input driver specified, ignoring this device. | |
442 | [ 5.007] (II) This device may have been added with another device file. | |
443 | [ 5.007] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4) | |
444 | [ 5.007] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall" | |
445 | [ 5.007] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard' | |
446 | [ 5.007] (**) AT Translated Set 2 keyboard: always reports core events | |
447 | [ 5.007] (**) Option "Device" "/dev/input/event4" | |
448 | [ 5.007] (**) Option "_source" "server/udev" | |
449 | [ 5.008] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard | |
450 | [ 5.008] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard | |
451 | [ 5.008] (II) event4 - AT Translated Set 2 keyboard: device removed | |
452 | [ 5.017] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input3/event4" | |
453 | [ 5.017] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 13) | |
454 | [ 5.017] (**) Option "xkb_model" "pc105" | |
455 | [ 5.017] (**) Option "xkb_layout" "us" | |
456 | [ 5.017] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard | |
457 | [ 5.017] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard | |
458 | [ 5.018] (II) config/udev: Adding input device PC Speaker (/dev/input/event3) | |
459 | [ 5.018] (II) No input driver specified, ignoring this device. | |
460 | [ 5.018] (II) This device may have been added with another device file. | |
461 | [ 5.018] (II) config/udev: Adding input device Synaptics TM3289-021 (/dev/input/event15) | |
462 | [ 5.018] (**) Synaptics TM3289-021: Applying InputClass "libinput touchpad catchall" | |
463 | [ 5.018] (II) Using input driver 'libinput' for 'Synaptics TM3289-021' | |
464 | [ 5.018] (**) Synaptics TM3289-021: always reports core events | |
465 | [ 5.018] (**) Option "Device" "/dev/input/event15" | |
466 | [ 5.018] (**) Option "_source" "server/udev" | |
467 | [ 5.019] (II) event15 - Synaptics TM3289-021: is tagged by udev as: Touchpad | |
468 | [ 5.019] (II) event15 - Synaptics TM3289-021: device is a touchpad | |
469 | [ 5.019] (II) event15 - Synaptics TM3289-021: device removed | |
470 | [ 5.037] (**) Option "config_info" "udev:/sys/devices/rmi4-00/input/input12/event15" | |
471 | [ 5.037] (II) XINPUT: Adding extended input device "Synaptics TM3289-021" (type: TOUCHPAD, id 14) | |
472 | [ 5.037] (**) Option "AccelerationScheme" "none" | |
473 | [ 5.037] (**) Synaptics TM3289-021: (accel) selected scheme none/0 | |
474 | [ 5.037] (**) Synaptics TM3289-021: (accel) acceleration factor: 2.000 | |
475 | [ 5.037] (**) Synaptics TM3289-021: (accel) acceleration threshold: 4 | |
476 | [ 5.038] (II) event15 - Synaptics TM3289-021: is tagged by udev as: Touchpad | |
477 | [ 5.038] (II) event15 - Synaptics TM3289-021: device is a touchpad | |
478 | [ 5.039] (II) config/udev: Adding input device Synaptics TM3289-021 (/dev/input/mouse1) | |
479 | [ 5.039] (II) No input driver specified, ignoring this device. | |
480 | [ 5.039] (II) This device may have been added with another device file. | |
481 | [ 5.039] (II) config/udev: Adding input device TPPS/2 Elan TrackPoint (/dev/input/event16) | |
482 | [ 5.039] (**) TPPS/2 Elan TrackPoint: Applying InputClass "libinput pointer catchall" | |
483 | [ 5.039] (II) Using input driver 'libinput' for 'TPPS/2 Elan TrackPoint' | |
484 | [ 5.039] (**) TPPS/2 Elan TrackPoint: always reports core events | |
485 | [ 5.039] (**) Option "Device" "/dev/input/event16" | |
486 | [ 5.039] (**) Option "_source" "server/udev" | |
487 | [ 5.040] (II) event16 - TPPS/2 Elan TrackPoint: is tagged by udev as: Mouse Pointingstick | |
488 | [ 5.040] (II) event16 - TPPS/2 Elan TrackPoint: trackpoint multiplier is 0.40 | |
489 | [ 5.040] (II) event16 - TPPS/2 Elan TrackPoint: device is a pointer | |
490 | [ 5.040] (II) event16 - TPPS/2 Elan TrackPoint: device removed | |
491 | [ 5.062] (**) Option "config_info" "udev:/sys/devices/rmi4-00/rmi4-00.fn03/serio2/input/input18/event16" | |
492 | [ 5.062] (II) XINPUT: Adding extended input device "TPPS/2 Elan TrackPoint" (type: MOUSE, id 15) | |
493 | [ 5.062] (**) Option "AccelerationScheme" "none" | |
494 | [ 5.062] (**) TPPS/2 Elan TrackPoint: (accel) selected scheme none/0 | |
495 | [ 5.062] (**) TPPS/2 Elan TrackPoint: (accel) acceleration factor: 2.000 | |
496 | [ 5.062] (**) TPPS/2 Elan TrackPoint: (accel) acceleration threshold: 4 | |
497 | [ 5.062] (II) event16 - TPPS/2 Elan TrackPoint: is tagged by udev as: Mouse Pointingstick | |
498 | [ 5.062] (II) event16 - TPPS/2 Elan TrackPoint: trackpoint multiplier is 0.40 | |
499 | [ 5.063] (II) event16 - TPPS/2 Elan TrackPoint: device is a pointer | |
500 | [ 5.063] (II) config/udev: Adding input device TPPS/2 Elan TrackPoint (/dev/input/mouse2) | |
501 | [ 5.063] (II) No input driver specified, ignoring this device. | |
502 | [ 5.063] (II) This device may have been added with another device file. | |
503 | [ 5.132] (EE) Failed to open authorization file "/var/run/sddm/{f25a154d-0c5d-47a7-b540-6fc92b41d2f3}": No such file or directory | |
504 | [ 12.176] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
505 | [ 12.176] (II) modeset(0): Printing DDC gathered Modelines: | |
506 | [ 12.176] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
507 | [ 12.669] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
508 | [ 12.670] (II) modeset(0): Printing DDC gathered Modelines: | |
509 | [ 12.670] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
510 | [ 148.238] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
511 | [ 148.238] (II) modeset(0): Printing DDC gathered Modelines: | |
512 | [ 148.238] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
513 | [ 148.829] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
514 | [ 149.714] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
515 | [ 219.576] (II) config/udev: removing device serio3 | |
516 | [ 219.577] (II) event19 - serio3: device removed | |
517 | [ 219.591] (II) UnloadModule: "libinput" | |
518 | [ 219.591] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
519 | [ 219.591] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
520 | [ 219.605] (II) UnloadModule: "libinput" | |
521 | [ 222.688] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
522 | [ 222.688] (II) No input driver specified, ignoring this device. | |
523 | [ 222.688] (II) This device may have been added with another device file. | |
524 | [ 222.770] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
525 | [ 222.771] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
526 | [ 222.771] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
527 | [ 222.771] (**) Pulse-Eight CEC Adapter: always reports core events | |
528 | [ 222.771] (**) Option "Device" "/dev/input/event6" | |
529 | [ 222.771] (**) Option "_source" "server/udev" | |
530 | [ 222.824] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
531 | [ 222.824] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
532 | [ 222.824] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
533 | [ 222.854] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0002/input/input22/event6" | |
534 | [ 222.854] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
535 | [ 222.854] (**) Option "AccelerationScheme" "none" | |
536 | [ 222.854] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
537 | [ 222.854] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
538 | [ 222.854] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
539 | [ 222.910] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
540 | [ 222.910] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
541 | [ 222.913] (II) config/udev: Adding input device serio4 (/dev/input/event19) | |
542 | [ 222.913] (**) serio4: Applying InputClass "libinput keyboard catchall" | |
543 | [ 222.913] (II) Using input driver 'libinput' for 'serio4' | |
544 | [ 222.913] (**) serio4: always reports core events | |
545 | [ 222.913] (**) Option "Device" "/dev/input/event19" | |
546 | [ 222.913] (**) Option "_source" "server/udev" | |
547 | [ 222.917] (II) event19 - serio4: is tagged by udev as: Keyboard | |
548 | [ 222.918] (II) event19 - serio4: device is a keyboard | |
549 | [ 222.918] (II) event19 - serio4: device removed | |
550 | [ 222.933] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio4/rc/rc0/input23/event19" | |
551 | [ 222.933] (II) XINPUT: Adding extended input device "serio4" (type: KEYBOARD, id 10) | |
552 | [ 222.933] (**) Option "xkb_model" "pc105" | |
553 | [ 222.933] (**) Option "xkb_layout" "us" | |
554 | [ 222.933] (WW) Option "xkb_variant" requires a string value | |
555 | [ 222.933] (WW) Option "xkb_options" requires a string value | |
556 | [ 222.938] (II) event19 - serio4: is tagged by udev as: Keyboard | |
557 | [ 222.938] (II) event19 - serio4: device is a keyboard | |
558 | [ 268.794] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
559 | [ 268.794] (II) modeset(0): Printing DDC gathered Modelines: | |
560 | [ 268.794] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
561 | [ 269.884] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
562 | [ 272.592] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
563 | [ 272.592] (II) modeset(0): Printing DDC gathered Modelines: | |
564 | [ 272.592] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
565 | [ 272.927] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
566 | [ 273.756] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
567 | [ 282.930] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
568 | [ 282.930] (II) modeset(0): Printing DDC gathered Modelines: | |
569 | [ 282.930] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
570 | [ 283.262] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
571 | [ 307.150] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
572 | [ 309.524] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
573 | [ 309.524] (II) modeset(0): Printing DDC gathered Modelines: | |
574 | [ 309.524] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
575 | [ 309.860] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
576 | [ 310.742] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
577 | [ 325.273] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
578 | [ 325.273] (II) modeset(0): Printing DDC gathered Modelines: | |
579 | [ 325.273] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
580 | [ 325.607] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
581 | [ 361.491] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
582 | [ 364.630] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
583 | [ 364.630] (II) modeset(0): Printing DDC gathered Modelines: | |
584 | [ 364.630] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
585 | [ 364.965] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
586 | [ 365.793] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
587 | [ 740.130] (II) config/udev: removing device serio4 | |
588 | [ 740.130] (II) event19 - serio4: device removed | |
589 | [ 740.144] (II) UnloadModule: "libinput" | |
590 | [ 740.149] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
591 | [ 740.149] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
592 | [ 740.160] (II) UnloadModule: "libinput" | |
593 | [ 767.809] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
594 | [ 767.809] (II) No input driver specified, ignoring this device. | |
595 | [ 767.809] (II) This device may have been added with another device file. | |
596 | [ 767.889] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
597 | [ 767.889] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
598 | [ 767.889] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
599 | [ 767.889] (**) Pulse-Eight CEC Adapter: always reports core events | |
600 | [ 767.889] (**) Option "Device" "/dev/input/event6" | |
601 | [ 767.889] (**) Option "_source" "server/udev" | |
602 | [ 767.945] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
603 | [ 767.945] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
604 | [ 767.946] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
605 | [ 767.973] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0003/input/input24/event6" | |
606 | [ 767.973] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
607 | [ 767.974] (**) Option "AccelerationScheme" "none" | |
608 | [ 767.975] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
609 | [ 767.975] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
610 | [ 767.975] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
611 | [ 768.030] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
612 | [ 768.030] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
613 | [ 768.033] (II) config/udev: Adding input device serio5 (/dev/input/event19) | |
614 | [ 768.033] (**) serio5: Applying InputClass "libinput keyboard catchall" | |
615 | [ 768.033] (II) Using input driver 'libinput' for 'serio5' | |
616 | [ 768.033] (**) serio5: always reports core events | |
617 | [ 768.033] (**) Option "Device" "/dev/input/event19" | |
618 | [ 768.033] (**) Option "_source" "server/udev" | |
619 | [ 768.037] (II) event19 - serio5: is tagged by udev as: Keyboard | |
620 | [ 768.038] (II) event19 - serio5: device is a keyboard | |
621 | [ 768.039] (II) event19 - serio5: device removed | |
622 | [ 768.049] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio5/rc/rc0/input25/event19" | |
623 | [ 768.049] (II) XINPUT: Adding extended input device "serio5" (type: KEYBOARD, id 10) | |
624 | [ 768.049] (**) Option "xkb_model" "pc105" | |
625 | [ 768.049] (**) Option "xkb_layout" "us" | |
626 | [ 768.049] (WW) Option "xkb_variant" requires a string value | |
627 | [ 768.049] (WW) Option "xkb_options" requires a string value | |
628 | [ 768.054] (II) event19 - serio5: is tagged by udev as: Keyboard | |
629 | [ 768.054] (II) event19 - serio5: device is a keyboard | |
630 | [ 854.957] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
631 | [ 854.957] (II) modeset(0): Printing DDC gathered Modelines: | |
632 | [ 854.957] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
633 | [ 856.045] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
634 | [ 1518.312] (II) config/udev: removing device serio5 | |
635 | [ 1518.312] (II) event19 - serio5: device removed | |
636 | [ 1518.328] (II) UnloadModule: "libinput" | |
637 | [ 1518.331] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
638 | [ 1518.331] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
639 | [ 1518.343] (II) UnloadModule: "libinput" | |
640 | [ 1524.043] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
641 | [ 1524.043] (II) No input driver specified, ignoring this device. | |
642 | [ 1524.043] (II) This device may have been added with another device file. | |
643 | [ 1524.122] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
644 | [ 1524.122] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
645 | [ 1524.122] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
646 | [ 1524.122] (**) Pulse-Eight CEC Adapter: always reports core events | |
647 | [ 1524.122] (**) Option "Device" "/dev/input/event6" | |
648 | [ 1524.122] (**) Option "_source" "server/udev" | |
649 | [ 1524.175] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
650 | [ 1524.175] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
651 | [ 1524.176] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
652 | [ 1524.208] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0004/input/input26/event6" | |
653 | [ 1524.208] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
654 | [ 1524.209] (**) Option "AccelerationScheme" "none" | |
655 | [ 1524.210] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
656 | [ 1524.210] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
657 | [ 1524.210] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
658 | [ 1524.265] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
659 | [ 1524.265] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
660 | [ 1524.268] (II) config/udev: Adding input device serio6 (/dev/input/event19) | |
661 | [ 1524.268] (**) serio6: Applying InputClass "libinput keyboard catchall" | |
662 | [ 1524.268] (II) Using input driver 'libinput' for 'serio6' | |
663 | [ 1524.268] (**) serio6: always reports core events | |
664 | [ 1524.268] (**) Option "Device" "/dev/input/event19" | |
665 | [ 1524.268] (**) Option "_source" "server/udev" | |
666 | [ 1524.273] (II) event19 - serio6: is tagged by udev as: Keyboard | |
667 | [ 1524.273] (II) event19 - serio6: device is a keyboard | |
668 | [ 1524.274] (II) event19 - serio6: device removed | |
669 | [ 1524.292] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio6/rc/rc0/input27/event19" | |
670 | [ 1524.292] (II) XINPUT: Adding extended input device "serio6" (type: KEYBOARD, id 10) | |
671 | [ 1524.292] (**) Option "xkb_model" "pc105" | |
672 | [ 1524.292] (**) Option "xkb_layout" "us" | |
673 | [ 1524.292] (WW) Option "xkb_variant" requires a string value | |
674 | [ 1524.292] (WW) Option "xkb_options" requires a string value | |
675 | [ 1524.297] (II) event19 - serio6: is tagged by udev as: Keyboard | |
676 | [ 1524.297] (II) event19 - serio6: device is a keyboard | |
677 | [ 1536.974] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
678 | [ 1536.974] (II) modeset(0): Printing DDC gathered Modelines: | |
679 | [ 1536.974] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
680 | [ 1537.311] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
681 | [ 1538.189] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
682 | [ 15936.823] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
683 | [ 15936.823] (II) modeset(0): Printing DDC gathered Modelines: | |
684 | [ 15936.823] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
685 | [ 15937.913] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
686 | [ 67070.083] (II) config/udev: removing device serio6 | |
687 | [ 67070.083] (II) event19 - serio6: device removed | |
688 | [ 67070.090] (II) UnloadModule: "libinput" | |
689 | [ 67070.100] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
690 | [ 67070.100] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
691 | [ 67070.116] (II) UnloadModule: "libinput" | |
692 | [ 67074.730] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
693 | [ 67074.730] (II) No input driver specified, ignoring this device. | |
694 | [ 67074.730] (II) This device may have been added with another device file. | |
695 | [ 67074.811] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
696 | [ 67074.811] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
697 | [ 67074.811] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
698 | [ 67074.811] (**) Pulse-Eight CEC Adapter: always reports core events | |
699 | [ 67074.811] (**) Option "Device" "/dev/input/event6" | |
700 | [ 67074.811] (**) Option "_source" "server/udev" | |
701 | [ 67074.867] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
702 | [ 67074.867] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
703 | [ 67074.868] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
704 | [ 67074.890] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0005/input/input28/event6" | |
705 | [ 67074.890] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
706 | [ 67074.891] (**) Option "AccelerationScheme" "none" | |
707 | [ 67074.892] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
708 | [ 67074.892] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
709 | [ 67074.892] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
710 | [ 67074.947] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
711 | [ 67074.948] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
712 | [ 67095.126] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
713 | [ 67095.126] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
714 | [ 67095.138] (II) UnloadModule: "libinput" | |
715 | [ 67100.773] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
716 | [ 67100.773] (II) No input driver specified, ignoring this device. | |
717 | [ 67100.773] (II) This device may have been added with another device file. | |
718 | [ 67100.854] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
719 | [ 67100.854] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
720 | [ 67100.854] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
721 | [ 67100.854] (**) Pulse-Eight CEC Adapter: always reports core events | |
722 | [ 67100.854] (**) Option "Device" "/dev/input/event6" | |
723 | [ 67100.854] (**) Option "_source" "server/udev" | |
724 | [ 67100.907] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
725 | [ 67100.907] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
726 | [ 67100.907] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
727 | [ 67100.926] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0006/input/input30/event6" | |
728 | [ 67100.926] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
729 | [ 67100.926] (**) Option "AccelerationScheme" "none" | |
730 | [ 67100.927] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
731 | [ 67100.927] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
732 | [ 67100.927] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
733 | [ 67100.982] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
734 | [ 67100.982] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
735 | [ 67100.985] (II) config/udev: Adding input device serio8 (/dev/input/event19) | |
736 | [ 67100.985] (**) serio8: Applying InputClass "libinput keyboard catchall" | |
737 | [ 67100.985] (II) Using input driver 'libinput' for 'serio8' | |
738 | [ 67100.985] (**) serio8: always reports core events | |
739 | [ 67100.985] (**) Option "Device" "/dev/input/event19" | |
740 | [ 67100.985] (**) Option "_source" "server/udev" | |
741 | [ 67100.990] (II) event19 - serio8: is tagged by udev as: Keyboard | |
742 | [ 67100.990] (II) event19 - serio8: device is a keyboard | |
743 | [ 67100.991] (II) event19 - serio8: device removed | |
744 | [ 67101.001] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio8/rc/rc0/input31/event19" | |
745 | [ 67101.001] (II) XINPUT: Adding extended input device "serio8" (type: KEYBOARD, id 10) | |
746 | [ 67101.001] (**) Option "xkb_model" "pc105" | |
747 | [ 67101.001] (**) Option "xkb_layout" "us" | |
748 | [ 67101.001] (WW) Option "xkb_variant" requires a string value | |
749 | [ 67101.001] (WW) Option "xkb_options" requires a string value | |
750 | [ 67101.006] (II) event19 - serio8: is tagged by udev as: Keyboard | |
751 | [ 67101.006] (II) event19 - serio8: device is a keyboard | |
752 | [ 67127.966] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
753 | [ 67127.966] (II) modeset(0): Printing DDC gathered Modelines: | |
754 | [ 67127.966] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
755 | [ 67128.302] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
756 | [ 67129.177] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
757 | [ 67359.952] (II) config/udev: removing device Integrated Camera: Integrated C | |
758 | [ 67359.952] (II) event18 - Integrated Camera: Integrated C: device removed | |
759 | [ 67359.965] (II) UnloadModule: "libinput" | |
760 | [ 67360.066] (II) config/udev: removing device Integrated IR Camera: Integrate | |
761 | [ 67360.066] (II) event17 - Integrated IR Camera: Integrate: device removed | |
762 | [ 67360.078] (II) UnloadModule: "libinput" | |
763 | [ 67360.125] (II) config/udev: removing device serio8 | |
764 | [ 67360.125] (II) event19 - serio8: device removed | |
765 | [ 67360.140] (II) UnloadModule: "libinput" | |
766 | [ 67374.717] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
767 | [ 67374.717] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
768 | [ 67374.729] (II) UnloadModule: "libinput" | |
769 | [ 67379.434] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
770 | [ 67379.434] (II) No input driver specified, ignoring this device. | |
771 | [ 67379.434] (II) This device may have been added with another device file. | |
772 | [ 67379.514] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
773 | [ 67379.514] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
774 | [ 67379.515] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
775 | [ 67379.515] (**) Pulse-Eight CEC Adapter: always reports core events | |
776 | [ 67379.515] (**) Option "Device" "/dev/input/event6" | |
777 | [ 67379.515] (**) Option "_source" "server/udev" | |
778 | [ 67379.568] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
779 | [ 67379.569] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
780 | [ 67379.569] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
781 | [ 67379.590] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0007/input/input32/event6" | |
782 | [ 67379.590] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
783 | [ 67379.590] (**) Option "AccelerationScheme" "none" | |
784 | [ 67379.591] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
785 | [ 67379.591] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
786 | [ 67379.591] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
787 | [ 67379.646] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
788 | [ 67379.646] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
789 | [ 67379.649] (II) config/udev: Adding input device serio9 (/dev/input/event17) | |
790 | [ 67379.649] (**) serio9: Applying InputClass "libinput keyboard catchall" | |
791 | [ 67379.649] (II) Using input driver 'libinput' for 'serio9' | |
792 | [ 67379.649] (**) serio9: always reports core events | |
793 | [ 67379.649] (**) Option "Device" "/dev/input/event17" | |
794 | [ 67379.649] (**) Option "_source" "server/udev" | |
795 | [ 67379.654] (II) event17 - serio9: is tagged by udev as: Keyboard | |
796 | [ 67379.654] (II) event17 - serio9: device is a keyboard | |
797 | [ 67379.655] (II) event17 - serio9: device removed | |
798 | [ 67379.672] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio9/rc/rc0/input33/event17" | |
799 | [ 67379.672] (II) XINPUT: Adding extended input device "serio9" (type: KEYBOARD, id 10) | |
800 | [ 67379.672] (**) Option "xkb_model" "pc105" | |
801 | [ 67379.672] (**) Option "xkb_layout" "us" | |
802 | [ 67379.672] (WW) Option "xkb_variant" requires a string value | |
803 | [ 67379.672] (WW) Option "xkb_options" requires a string value | |
804 | [ 67379.677] (II) event17 - serio9: is tagged by udev as: Keyboard | |
805 | [ 67379.677] (II) event17 - serio9: device is a keyboard | |
806 | [ 67466.307] (II) config/udev: removing device serio9 | |
807 | [ 67466.307] (II) event17 - serio9: device removed | |
808 | [ 67466.313] (II) UnloadModule: "libinput" | |
809 | [ 67466.323] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
810 | [ 67466.323] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
811 | [ 67466.335] (II) UnloadModule: "libinput" | |
812 | [ 67489.814] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
813 | [ 67489.814] (II) No input driver specified, ignoring this device. | |
814 | [ 67489.814] (II) This device may have been added with another device file. | |
815 | [ 67489.894] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
816 | [ 67489.895] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
817 | [ 67489.895] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
818 | [ 67489.895] (**) Pulse-Eight CEC Adapter: always reports core events | |
819 | [ 67489.895] (**) Option "Device" "/dev/input/event6" | |
820 | [ 67489.895] (**) Option "_source" "server/udev" | |
821 | [ 67489.950] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
822 | [ 67489.950] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
823 | [ 67489.951] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
824 | [ 67489.974] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0008/input/input34/event6" | |
825 | [ 67489.974] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
826 | [ 67489.975] (**) Option "AccelerationScheme" "none" | |
827 | [ 67489.976] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
828 | [ 67489.976] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
829 | [ 67489.976] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
830 | [ 67490.031] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
831 | [ 67490.031] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
832 | [ 67490.034] (II) config/udev: Adding input device serio10 (/dev/input/event17) | |
833 | [ 67490.034] (**) serio10: Applying InputClass "libinput keyboard catchall" | |
834 | [ 67490.034] (II) Using input driver 'libinput' for 'serio10' | |
835 | [ 67490.034] (**) serio10: always reports core events | |
836 | [ 67490.034] (**) Option "Device" "/dev/input/event17" | |
837 | [ 67490.034] (**) Option "_source" "server/udev" | |
838 | [ 67490.039] (II) event17 - serio10: is tagged by udev as: Keyboard | |
839 | [ 67490.039] (II) event17 - serio10: device is a keyboard | |
840 | [ 67490.040] (II) event17 - serio10: device removed | |
841 | [ 67490.051] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio10/rc/rc0/input35/event17" | |
842 | [ 67490.051] (II) XINPUT: Adding extended input device "serio10" (type: KEYBOARD, id 10) | |
843 | [ 67490.051] (**) Option "xkb_model" "pc105" | |
844 | [ 67490.051] (**) Option "xkb_layout" "us" | |
845 | [ 67490.051] (WW) Option "xkb_variant" requires a string value | |
846 | [ 67490.051] (WW) Option "xkb_options" requires a string value | |
847 | [ 67490.056] (II) event17 - serio10: is tagged by udev as: Keyboard | |
848 | [ 67490.056] (II) event17 - serio10: device is a keyboard | |
849 | [ 67517.542] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
850 | [ 67517.542] (II) modeset(0): Printing DDC gathered Modelines: | |
851 | [ 67517.542] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
852 | [ 67518.681] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
853 | [ 74816.397] (II) config/udev: removing device serio10 | |
854 | [ 74816.398] (II) event17 - serio10: device removed | |
855 | [ 74816.415] (II) UnloadModule: "libinput" | |
856 | [ 74816.420] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
857 | [ 74816.420] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
858 | [ 74816.432] (II) UnloadModule: "libinput" | |
859 | [ 74820.247] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
860 | [ 74820.247] (II) No input driver specified, ignoring this device. | |
861 | [ 74820.247] (II) This device may have been added with another device file. | |
862 | [ 74820.328] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
863 | [ 74820.328] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
864 | [ 74820.328] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
865 | [ 74820.328] (**) Pulse-Eight CEC Adapter: always reports core events | |
866 | [ 74820.328] (**) Option "Device" "/dev/input/event6" | |
867 | [ 74820.328] (**) Option "_source" "server/udev" | |
868 | [ 74820.384] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
869 | [ 74820.385] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
870 | [ 74820.386] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
871 | [ 74820.408] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.0009/input/input36/event6" | |
872 | [ 74820.408] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
873 | [ 74820.408] (**) Option "AccelerationScheme" "none" | |
874 | [ 74820.409] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
875 | [ 74820.409] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
876 | [ 74820.409] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
877 | [ 74820.462] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
878 | [ 74820.463] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
879 | [ 74820.465] (II) config/udev: Adding input device serio11 (/dev/input/event17) | |
880 | [ 74820.465] (**) serio11: Applying InputClass "libinput keyboard catchall" | |
881 | [ 74820.465] (II) Using input driver 'libinput' for 'serio11' | |
882 | [ 74820.465] (**) serio11: always reports core events | |
883 | [ 74820.465] (**) Option "Device" "/dev/input/event17" | |
884 | [ 74820.465] (**) Option "_source" "server/udev" | |
885 | [ 74820.468] (II) event17 - serio11: is tagged by udev as: Keyboard | |
886 | [ 74820.468] (II) event17 - serio11: device is a keyboard | |
887 | [ 74820.469] (II) event17 - serio11: device removed | |
888 | [ 74820.484] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio11/rc/rc0/input37/event17" | |
889 | [ 74820.484] (II) XINPUT: Adding extended input device "serio11" (type: KEYBOARD, id 10) | |
890 | [ 74820.484] (**) Option "xkb_model" "pc105" | |
891 | [ 74820.484] (**) Option "xkb_layout" "us" | |
892 | [ 74820.484] (WW) Option "xkb_variant" requires a string value | |
893 | [ 74820.484] (WW) Option "xkb_options" requires a string value | |
894 | [ 74820.489] (II) event17 - serio11: is tagged by udev as: Keyboard | |
895 | [ 74820.489] (II) event17 - serio11: device is a keyboard | |
896 | [ 74844.099] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
897 | [ 74844.099] (II) modeset(0): Printing DDC gathered Modelines: | |
898 | [ 74844.099] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
899 | [ 74844.434] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
900 | [ 74845.241] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
901 | [ 75427.645] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
902 | [ 75427.645] (II) modeset(0): Printing DDC gathered Modelines: | |
903 | [ 75427.645] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
904 | [ 75428.764] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
905 | [ 75434.846] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
906 | [ 75434.846] (II) modeset(0): Printing DDC gathered Modelines: | |
907 | [ 75434.846] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
908 | [ 75435.181] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
909 | [ 75436.047] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
910 | [ 75439.476] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
911 | [ 75439.476] (II) modeset(0): Printing DDC gathered Modelines: | |
912 | [ 75439.476] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
913 | [ 75439.809] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
914 | [ 75480.334] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
915 | [ 75486.077] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
916 | [ 75486.077] (II) modeset(0): Printing DDC gathered Modelines: | |
917 | [ 75486.077] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
918 | [ 75486.414] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
919 | [ 75487.224] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
920 | [ 76141.668] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
921 | [ 76141.668] (II) modeset(0): Printing DDC gathered Modelines: | |
922 | [ 76141.668] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
923 | [ 76142.772] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
924 | [ 76145.989] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
925 | [ 76145.989] (II) modeset(0): Printing DDC gathered Modelines: | |
926 | [ 76145.989] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
927 | [ 76146.324] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
928 | [ 76147.204] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
929 | [ 76181.810] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
930 | [ 76181.811] (II) modeset(0): Printing DDC gathered Modelines: | |
931 | [ 76181.811] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
932 | [ 76182.899] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
933 | [ 76195.390] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
934 | [ 76195.390] (II) modeset(0): Printing DDC gathered Modelines: | |
935 | [ 76195.390] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
936 | [ 76195.726] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
937 | [ 76196.600] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
938 | [ 76204.061] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
939 | [ 76204.061] (II) modeset(0): Printing DDC gathered Modelines: | |
940 | [ 76204.061] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
941 | [ 76205.167] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
942 | [ 76213.216] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
943 | [ 76213.216] (II) modeset(0): Printing DDC gathered Modelines: | |
944 | [ 76213.216] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
945 | [ 76213.552] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
946 | [ 76214.382] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
947 | [ 76221.922] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
948 | [ 76221.922] (II) modeset(0): Printing DDC gathered Modelines: | |
949 | [ 76221.922] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
950 | [ 76222.989] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
951 | [ 76231.080] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
952 | [ 76231.080] (II) modeset(0): Printing DDC gathered Modelines: | |
953 | [ 76231.080] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
954 | [ 76231.415] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
955 | [ 76232.234] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
956 | [ 76242.944] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
957 | [ 76242.944] (II) modeset(0): Printing DDC gathered Modelines: | |
958 | [ 76242.944] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
959 | [ 76244.041] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
960 | [ 76252.117] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
961 | [ 76252.117] (II) modeset(0): Printing DDC gathered Modelines: | |
962 | [ 76252.117] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
963 | [ 76252.453] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
964 | [ 76253.267] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
965 | [ 76259.170] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
966 | [ 76259.170] (II) modeset(0): Printing DDC gathered Modelines: | |
967 | [ 76259.170] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
968 | [ 76260.333] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
969 | [ 76268.331] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
970 | [ 76268.331] (II) modeset(0): Printing DDC gathered Modelines: | |
971 | [ 76268.331] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
972 | [ 76268.666] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
973 | [ 76269.545] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
974 | [ 76275.429] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
975 | [ 76275.429] (II) modeset(0): Printing DDC gathered Modelines: | |
976 | [ 76275.429] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
977 | [ 76276.517] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
978 | [ 76284.585] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
979 | [ 76284.585] (II) modeset(0): Printing DDC gathered Modelines: | |
980 | [ 76284.585] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
981 | [ 76284.921] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
982 | [ 76285.767] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
983 | [ 76362.635] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
984 | [ 76362.635] (II) modeset(0): Printing DDC gathered Modelines: | |
985 | [ 76362.635] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
986 | [ 76363.754] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
987 | [ 76777.916] (II) config/udev: removing device serio11 | |
988 | [ 76777.916] (II) event17 - serio11: device removed | |
989 | [ 76777.926] (II) UnloadModule: "libinput" | |
990 | [ 76777.928] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
991 | [ 76777.929] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
992 | [ 76777.944] (II) UnloadModule: "libinput" | |
993 | [ 76791.743] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
994 | [ 76791.743] (II) No input driver specified, ignoring this device. | |
995 | [ 76791.743] (II) This device may have been added with another device file. | |
996 | [ 76791.824] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
997 | [ 76791.824] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
998 | [ 76791.824] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
999 | [ 76791.824] (**) Pulse-Eight CEC Adapter: always reports core events | |
1000 | [ 76791.824] (**) Option "Device" "/dev/input/event6" | |
1001 | [ 76791.824] (**) Option "_source" "server/udev" | |
1002 | [ 76791.880] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1003 | [ 76791.880] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1004 | [ 76791.881] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1005 | [ 76791.904] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.000A/input/input38/event6" | |
1006 | [ 76791.904] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
1007 | [ 76791.905] (**) Option "AccelerationScheme" "none" | |
1008 | [ 76791.906] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
1009 | [ 76791.906] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
1010 | [ 76791.906] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
1011 | [ 76791.961] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1012 | [ 76791.961] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1013 | [ 76791.964] (II) config/udev: Adding input device serio12 (/dev/input/event17) | |
1014 | [ 76791.964] (**) serio12: Applying InputClass "libinput keyboard catchall" | |
1015 | [ 76791.964] (II) Using input driver 'libinput' for 'serio12' | |
1016 | [ 76791.964] (**) serio12: always reports core events | |
1017 | [ 76791.964] (**) Option "Device" "/dev/input/event17" | |
1018 | [ 76791.964] (**) Option "_source" "server/udev" | |
1019 | [ 76791.969] (II) event17 - serio12: is tagged by udev as: Keyboard | |
1020 | [ 76791.969] (II) event17 - serio12: device is a keyboard | |
1021 | [ 76791.970] (II) event17 - serio12: device removed | |
1022 | [ 76791.988] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio12/rc/rc0/input39/event17" | |
1023 | [ 76791.988] (II) XINPUT: Adding extended input device "serio12" (type: KEYBOARD, id 10) | |
1024 | [ 76791.988] (**) Option "xkb_model" "pc105" | |
1025 | [ 76791.988] (**) Option "xkb_layout" "us" | |
1026 | [ 76791.988] (WW) Option "xkb_variant" requires a string value | |
1027 | [ 76791.988] (WW) Option "xkb_options" requires a string value | |
1028 | [ 76791.993] (II) event17 - serio12: is tagged by udev as: Keyboard | |
1029 | [ 76791.993] (II) event17 - serio12: device is a keyboard | |
1030 | [ 76823.321] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1031 | [ 76823.321] (II) modeset(0): Printing DDC gathered Modelines: | |
1032 | [ 76823.321] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1033 | [ 76823.656] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1034 | [ 76824.514] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1035 | [ 76830.683] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1036 | [ 76830.683] (II) modeset(0): Printing DDC gathered Modelines: | |
1037 | [ 76830.683] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1038 | [ 76831.804] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1039 | [ 77846.982] (II) config/udev: removing device serio12 | |
1040 | [ 77846.982] (II) event17 - serio12: device removed | |
1041 | [ 77846.997] (II) UnloadModule: "libinput" | |
1042 | [ 77849.045] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
1043 | [ 77849.045] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1044 | [ 77849.066] (II) UnloadModule: "libinput" | |
1045 | [ 77854.150] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
1046 | [ 77854.150] (II) No input driver specified, ignoring this device. | |
1047 | [ 77854.150] (II) This device may have been added with another device file. | |
1048 | [ 77854.231] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
1049 | [ 77854.231] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
1050 | [ 77854.231] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
1051 | [ 77854.231] (**) Pulse-Eight CEC Adapter: always reports core events | |
1052 | [ 77854.231] (**) Option "Device" "/dev/input/event6" | |
1053 | [ 77854.231] (**) Option "_source" "server/udev" | |
1054 | [ 77854.286] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1055 | [ 77854.286] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1056 | [ 77854.287] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1057 | [ 77854.308] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.000B/input/input40/event6" | |
1058 | [ 77854.308] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
1059 | [ 77854.309] (**) Option "AccelerationScheme" "none" | |
1060 | [ 77854.309] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
1061 | [ 77854.309] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
1062 | [ 77854.309] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
1063 | [ 77854.362] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1064 | [ 77854.362] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1065 | [ 77854.364] (II) config/udev: Adding input device serio13 (/dev/input/event17) | |
1066 | [ 77854.364] (**) serio13: Applying InputClass "libinput keyboard catchall" | |
1067 | [ 77854.364] (II) Using input driver 'libinput' for 'serio13' | |
1068 | [ 77854.364] (**) serio13: always reports core events | |
1069 | [ 77854.364] (**) Option "Device" "/dev/input/event17" | |
1070 | [ 77854.364] (**) Option "_source" "server/udev" | |
1071 | [ 77854.366] (II) event17 - serio13: is tagged by udev as: Keyboard | |
1072 | [ 77854.366] (II) event17 - serio13: device is a keyboard | |
1073 | [ 77854.366] (II) event17 - serio13: device removed | |
1074 | [ 77854.375] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio13/rc/rc0/input41/event17" | |
1075 | [ 77854.375] (II) XINPUT: Adding extended input device "serio13" (type: KEYBOARD, id 10) | |
1076 | [ 77854.375] (**) Option "xkb_model" "pc105" | |
1077 | [ 77854.375] (**) Option "xkb_layout" "us" | |
1078 | [ 77854.375] (WW) Option "xkb_variant" requires a string value | |
1079 | [ 77854.375] (WW) Option "xkb_options" requires a string value | |
1080 | [ 77854.377] (II) event17 - serio13: is tagged by udev as: Keyboard | |
1081 | [ 77854.378] (II) event17 - serio13: device is a keyboard | |
1082 | [ 77875.697] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1083 | [ 77875.697] (II) modeset(0): Printing DDC gathered Modelines: | |
1084 | [ 77875.697] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1085 | [ 77876.295] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1086 | [ 77877.173] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1087 | [ 77883.094] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1088 | [ 77883.094] (II) modeset(0): Printing DDC gathered Modelines: | |
1089 | [ 77883.094] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1090 | [ 77884.250] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1091 | [ 77892.255] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1092 | [ 77892.255] (II) modeset(0): Printing DDC gathered Modelines: | |
1093 | [ 77892.255] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1094 | [ 77892.589] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1095 | [ 77893.419] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1096 | [ 77899.589] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1097 | [ 77899.589] (II) modeset(0): Printing DDC gathered Modelines: | |
1098 | [ 77899.589] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1099 | [ 77900.717] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1100 | [ 77963.554] (II) config/udev: removing device serio13 | |
1101 | [ 77963.554] (II) event17 - serio13: device removed | |
1102 | [ 77963.565] (II) UnloadModule: "libinput" | |
1103 | [ 77970.162] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
1104 | [ 77970.162] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1105 | [ 77970.174] (II) UnloadModule: "libinput" | |
1106 | [ 77973.982] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
1107 | [ 77973.982] (II) No input driver specified, ignoring this device. | |
1108 | [ 77973.982] (II) This device may have been added with another device file. | |
1109 | [ 77974.061] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
1110 | [ 77974.061] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
1111 | [ 77974.061] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
1112 | [ 77974.061] (**) Pulse-Eight CEC Adapter: always reports core events | |
1113 | [ 77974.061] (**) Option "Device" "/dev/input/event6" | |
1114 | [ 77974.061] (**) Option "_source" "server/udev" | |
1115 | [ 77974.116] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1116 | [ 77974.116] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1117 | [ 77974.117] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1118 | [ 77974.134] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.000C/input/input42/event6" | |
1119 | [ 77974.134] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
1120 | [ 77974.135] (**) Option "AccelerationScheme" "none" | |
1121 | [ 77974.136] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
1122 | [ 77974.136] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
1123 | [ 77974.136] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
1124 | [ 77974.191] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1125 | [ 77974.191] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1126 | [ 77974.194] (II) config/udev: Adding input device serio14 (/dev/input/event17) | |
1127 | [ 77974.194] (**) serio14: Applying InputClass "libinput keyboard catchall" | |
1128 | [ 77974.194] (II) Using input driver 'libinput' for 'serio14' | |
1129 | [ 77974.194] (**) serio14: always reports core events | |
1130 | [ 77974.194] (**) Option "Device" "/dev/input/event17" | |
1131 | [ 77974.194] (**) Option "_source" "server/udev" | |
1132 | [ 77974.199] (II) event17 - serio14: is tagged by udev as: Keyboard | |
1133 | [ 77974.199] (II) event17 - serio14: device is a keyboard | |
1134 | [ 77974.200] (II) event17 - serio14: device removed | |
1135 | [ 77974.211] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio14/rc/rc0/input43/event17" | |
1136 | [ 77974.211] (II) XINPUT: Adding extended input device "serio14" (type: KEYBOARD, id 10) | |
1137 | [ 77974.211] (**) Option "xkb_model" "pc105" | |
1138 | [ 77974.211] (**) Option "xkb_layout" "us" | |
1139 | [ 77974.211] (WW) Option "xkb_variant" requires a string value | |
1140 | [ 77974.211] (WW) Option "xkb_options" requires a string value | |
1141 | [ 77974.216] (II) event17 - serio14: is tagged by udev as: Keyboard | |
1142 | [ 77974.216] (II) event17 - serio14: device is a keyboard | |
1143 | [ 77993.113] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1144 | [ 77993.113] (II) modeset(0): Printing DDC gathered Modelines: | |
1145 | [ 77993.113] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1146 | [ 77993.450] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1147 | [ 77994.265] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1148 | [ 78084.447] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1149 | [ 78084.447] (II) modeset(0): Printing DDC gathered Modelines: | |
1150 | [ 78084.447] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1151 | [ 78085.516] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1152 | [ 78098.033] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1153 | [ 78098.033] (II) modeset(0): Printing DDC gathered Modelines: | |
1154 | [ 78098.033] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1155 | [ 78098.368] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1156 | [ 78099.229] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1157 | [ 78192.777] (II) config/udev: removing device serio14 | |
1158 | [ 78192.777] (II) event17 - serio14: device removed | |
1159 | [ 78192.794] (II) UnloadModule: "libinput" | |
1160 | [ 78197.693] (II) config/udev: removing device Pulse-Eight CEC Adapter | |
1161 | [ 78197.718] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1162 | [ 78197.739] (II) UnloadModule: "libinput" | |
1163 | [ 78201.274] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/mouse0) | |
1164 | [ 78201.274] (II) No input driver specified, ignoring this device. | |
1165 | [ 78201.274] (II) This device may have been added with another device file. | |
1166 | [ 78201.354] (II) config/udev: Adding input device Pulse-Eight CEC Adapter (/dev/input/event6) | |
1167 | [ 78201.354] (**) Pulse-Eight CEC Adapter: Applying InputClass "libinput pointer catchall" | |
1168 | [ 78201.354] (II) Using input driver 'libinput' for 'Pulse-Eight CEC Adapter' | |
1169 | [ 78201.354] (**) Pulse-Eight CEC Adapter: always reports core events | |
1170 | [ 78201.354] (**) Option "Device" "/dev/input/event6" | |
1171 | [ 78201.354] (**) Option "_source" "server/udev" | |
1172 | [ 78201.410] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1173 | [ 78201.410] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1174 | [ 78201.411] (II) event6 - Pulse-Eight CEC Adapter: device removed | |
1175 | [ 78201.437] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:2548:1002.000D/input/input44/event6" | |
1176 | [ 78201.437] (II) XINPUT: Adding extended input device "Pulse-Eight CEC Adapter" (type: MOUSE, id 9) | |
1177 | [ 78201.438] (**) Option "AccelerationScheme" "none" | |
1178 | [ 78201.439] (**) Pulse-Eight CEC Adapter: (accel) selected scheme none/0 | |
1179 | [ 78201.439] (**) Pulse-Eight CEC Adapter: (accel) acceleration factor: 2.000 | |
1180 | [ 78201.439] (**) Pulse-Eight CEC Adapter: (accel) acceleration threshold: 4 | |
1181 | [ 78201.494] (II) event6 - Pulse-Eight CEC Adapter: is tagged by udev as: Mouse | |
1182 | [ 78201.494] (II) event6 - Pulse-Eight CEC Adapter: device is a pointer | |
1183 | [ 78201.497] (II) config/udev: Adding input device serio15 (/dev/input/event17) | |
1184 | [ 78201.497] (**) serio15: Applying InputClass "libinput keyboard catchall" | |
1185 | [ 78201.497] (II) Using input driver 'libinput' for 'serio15' | |
1186 | [ 78201.497] (**) serio15: always reports core events | |
1187 | [ 78201.497] (**) Option "Device" "/dev/input/event17" | |
1188 | [ 78201.497] (**) Option "_source" "server/udev" | |
1189 | [ 78201.502] (II) event17 - serio15: is tagged by udev as: Keyboard | |
1190 | [ 78201.502] (II) event17 - serio15: device is a keyboard | |
1191 | [ 78201.503] (II) event17 - serio15: device removed | |
1192 | [ 78201.517] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/tty/ttyACM0/serio15/rc/rc0/input45/event17" | |
1193 | [ 78201.517] (II) XINPUT: Adding extended input device "serio15" (type: KEYBOARD, id 10) | |
1194 | [ 78201.517] (**) Option "xkb_model" "pc105" | |
1195 | [ 78201.517] (**) Option "xkb_layout" "us" | |
1196 | [ 78201.517] (WW) Option "xkb_variant" requires a string value | |
1197 | [ 78201.517] (WW) Option "xkb_options" requires a string value | |
1198 | [ 78201.522] (II) event17 - serio15: is tagged by udev as: Keyboard | |
1199 | [ 78201.522] (II) event17 - serio15: device is a keyboard | |
1200 | [ 78213.346] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1201 | [ 78213.346] (II) modeset(0): Printing DDC gathered Modelines: | |
1202 | [ 78213.346] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1203 | [ 78214.434] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1204 | [ 78226.951] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1205 | [ 78226.951] (II) modeset(0): Printing DDC gathered Modelines: | |
1206 | [ 78226.951] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1207 | [ 78227.287] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1208 | [ 78228.166] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1209 | [ 78277.188] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1210 | [ 78277.188] (II) modeset(0): Printing DDC gathered Modelines: | |
1211 | [ 78277.188] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1212 | [ 78278.321] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1213 | [ 78286.362] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1214 | [ 78286.362] (II) modeset(0): Printing DDC gathered Modelines: | |
1215 | [ 78286.362] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1216 | [ 78286.697] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1217 | [ 78287.575] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1218 | [ 78295.348] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1219 | [ 78295.348] (II) modeset(0): Printing DDC gathered Modelines: | |
1220 | [ 78295.348] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1221 | [ 78296.435] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1222 | [ 78304.505] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1223 | [ 78304.505] (II) modeset(0): Printing DDC gathered Modelines: | |
1224 | [ 78304.505] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1225 | [ 78304.840] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1226 | [ 78305.700] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1227 | [ 78352.203] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1228 | [ 78352.203] (II) modeset(0): Printing DDC gathered Modelines: | |
1229 | [ 78352.203] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1230 | [ 78353.314] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1231 | [ 78361.371] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1232 | [ 78361.371] (II) modeset(0): Printing DDC gathered Modelines: | |
1233 | [ 78361.371] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1234 | [ 78361.706] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1235 | [ 78362.580] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1236 | [ 78368.424] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1237 | [ 78368.424] (II) modeset(0): Printing DDC gathered Modelines: | |
1238 | [ 78368.424] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1239 | [ 78369.512] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1240 | [ 78377.605] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1241 | [ 78377.605] (II) modeset(0): Printing DDC gathered Modelines: | |
1242 | [ 78377.605] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1243 | [ 78377.941] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1244 | [ 78378.771] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1245 | [ 78384.669] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1246 | [ 78384.669] (II) modeset(0): Printing DDC gathered Modelines: | |
1247 | [ 78384.669] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1248 | [ 78385.788] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1249 | [ 78394.096] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1250 | [ 78394.096] (II) modeset(0): Printing DDC gathered Modelines: | |
1251 | [ 78394.096] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1252 | [ 78394.690] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1253 | [ 78395.570] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1254 | [ 78444.790] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1255 | [ 78444.790] (II) modeset(0): Printing DDC gathered Modelines: | |
1256 | [ 78444.790] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1257 | [ 78445.880] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1258 | [ 78453.945] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1259 | [ 78453.945] (II) modeset(0): Printing DDC gathered Modelines: | |
1260 | [ 78453.945] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1261 | [ 78454.281] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1262 | [ 78455.157] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1263 | [ 78464.542] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1264 | [ 78464.542] (II) modeset(0): Printing DDC gathered Modelines: | |
1265 | [ 78464.542] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1266 | [ 78465.678] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1267 | [ 78473.963] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1268 | [ 78473.963] (II) modeset(0): Printing DDC gathered Modelines: | |
1269 | [ 78473.963] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1270 | [ 78474.299] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1271 | [ 78475.176] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1272 | [ 78525.923] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1273 | [ 78525.923] (II) modeset(0): Printing DDC gathered Modelines: | |
1274 | [ 78525.923] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1275 | [ 78527.030] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1276 | [ 78535.100] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1277 | [ 78535.100] (II) modeset(0): Printing DDC gathered Modelines: | |
1278 | [ 78535.100] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1279 | [ 78535.436] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1280 | [ 78536.241] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1281 | [ 78548.356] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1282 | [ 78548.356] (II) modeset(0): Printing DDC gathered Modelines: | |
1283 | [ 78548.356] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1284 | [ 78549.443] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1285 | [ 78561.941] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1286 | [ 78561.941] (II) modeset(0): Printing DDC gathered Modelines: | |
1287 | [ 78561.941] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1288 | [ 78562.276] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1289 | [ 78563.155] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1290 | [ 78574.565] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1291 | [ 78574.565] (II) modeset(0): Printing DDC gathered Modelines: | |
1292 | [ 78574.565] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1293 | [ 78575.706] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1294 | [ 78588.167] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1295 | [ 78588.167] (II) modeset(0): Printing DDC gathered Modelines: | |
1296 | [ 78588.167] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1297 | [ 78588.503] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1298 | [ 78589.308] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1299 | [ 78641.884] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1300 | [ 78641.884] (II) modeset(0): Printing DDC gathered Modelines: | |
1301 | [ 78641.884] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1302 | [ 78642.953] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1303 | [ 78655.433] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1304 | [ 78655.433] (II) modeset(0): Printing DDC gathered Modelines: | |
1305 | [ 78655.433] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1306 | [ 78655.768] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1307 | [ 78656.628] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1308 | [ 78706.340] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1309 | [ 78706.340] (II) modeset(0): Printing DDC gathered Modelines: | |
1310 | [ 78706.340] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1311 | [ 78707.427] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1312 | [ 78720.183] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1313 | [ 78720.183] (II) modeset(0): Printing DDC gathered Modelines: | |
1314 | [ 78720.183] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1315 | [ 78720.776] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1316 | [ 78721.633] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1317 | [ 78733.986] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1318 | [ 78733.986] (II) modeset(0): Printing DDC gathered Modelines: | |
1319 | [ 78733.986] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1320 | [ 78735.098] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1321 | [ 78747.830] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1322 | [ 78747.830] (II) modeset(0): Printing DDC gathered Modelines: | |
1323 | [ 78747.830] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1324 | [ 78748.166] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1325 | [ 78749.028] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1326 | [ 78765.426] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1327 | [ 78765.426] (II) modeset(0): Printing DDC gathered Modelines: | |
1328 | [ 78765.426] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1329 | [ 78766.517] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1330 | [ 78779.033] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1331 | [ 78779.033] (II) modeset(0): Printing DDC gathered Modelines: | |
1332 | [ 78779.033] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1333 | [ 78779.370] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1334 | [ 78780.241] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1335 | [ 78833.447] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1336 | [ 78833.447] (II) modeset(0): Printing DDC gathered Modelines: | |
1337 | [ 78833.447] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1338 | [ 78834.517] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1339 | [ 78851.444] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1340 | [ 78851.444] (II) modeset(0): Printing DDC gathered Modelines: | |
1341 | [ 78851.444] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1342 | [ 78851.780] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1343 | [ 78852.640] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1344 | [ 78869.513] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1345 | [ 78869.513] (II) modeset(0): Printing DDC gathered Modelines: | |
1346 | [ 78869.513] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1347 | [ 78870.652] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1348 | [ 78887.543] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1349 | [ 78887.543] (II) modeset(0): Printing DDC gathered Modelines: | |
1350 | [ 78887.543] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1351 | [ 78887.879] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1352 | [ 78888.739] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1353 | [ 78936.478] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1354 | [ 78936.478] (II) modeset(0): Printing DDC gathered Modelines: | |
1355 | [ 78936.478] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1356 | [ 78937.596] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1357 | [ 78954.489] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1358 | [ 78954.489] (II) modeset(0): Printing DDC gathered Modelines: | |
1359 | [ 78954.489] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1360 | [ 78954.825] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1361 | [ 78955.684] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1362 | [ 79147.422] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1363 | [ 79147.422] (II) modeset(0): Printing DDC gathered Modelines: | |
1364 | [ 79147.422] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1365 | [ 79148.512] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1366 | [ 79161.002] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1367 | [ 79161.002] (II) modeset(0): Printing DDC gathered Modelines: | |
1368 | [ 79161.002] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1369 | [ 79161.337] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1370 | [ 79162.216] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1371 | [ 79168.120] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1372 | [ 79168.120] (II) modeset(0): Printing DDC gathered Modelines: | |
1373 | [ 79168.120] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1374 | [ 79169.249] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1375 | [ 79177.275] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1376 | [ 79177.275] (II) modeset(0): Printing DDC gathered Modelines: | |
1377 | [ 79177.275] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1378 | [ 79177.610] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1379 | [ 79178.427] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1380 | [ 79184.695] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1381 | [ 79184.695] (II) modeset(0): Printing DDC gathered Modelines: | |
1382 | [ 79184.695] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1383 | [ 79185.827] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1384 | [ 79193.869] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1385 | [ 79193.869] (II) modeset(0): Printing DDC gathered Modelines: | |
1386 | [ 79193.869] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1387 | [ 79194.207] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1388 | [ 79195.068] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1389 | [ 79205.712] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1390 | [ 79205.712] (II) modeset(0): Printing DDC gathered Modelines: | |
1391 | [ 79205.712] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1392 | [ 79206.827] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1393 | [ 79214.870] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1394 | [ 79214.870] (II) modeset(0): Printing DDC gathered Modelines: | |
1395 | [ 79214.870] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1396 | [ 79215.205] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1397 | [ 79216.064] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1398 | [ 79227.200] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1399 | [ 79227.200] (II) modeset(0): Printing DDC gathered Modelines: | |
1400 | [ 79227.200] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1401 | [ 79228.316] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1402 | [ 79236.354] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1403 | [ 79236.354] (II) modeset(0): Printing DDC gathered Modelines: | |
1404 | [ 79236.354] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1405 | [ 79236.689] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1406 | [ 79237.562] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1407 | [ 79248.981] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1408 | [ 79248.981] (II) modeset(0): Printing DDC gathered Modelines: | |
1409 | [ 79248.981] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1410 | [ 79250.115] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1411 | [ 79258.142] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1412 | [ 79258.142] (II) modeset(0): Printing DDC gathered Modelines: | |
1413 | [ 79258.142] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1414 | [ 79258.476] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1415 | [ 79259.281] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1416 | [ 79308.283] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1417 | [ 79308.283] (II) modeset(0): Printing DDC gathered Modelines: | |
1418 | [ 79308.283] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1419 | [ 79309.351] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1420 | [ 79317.457] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1421 | [ 79317.457] (II) modeset(0): Printing DDC gathered Modelines: | |
1422 | [ 79317.457] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1423 | [ 79317.793] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1424 | [ 79318.659] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1425 | [ 79326.944] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1426 | [ 79326.944] (II) modeset(0): Printing DDC gathered Modelines: | |
1427 | [ 79326.944] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1428 | [ 79328.034] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1429 | [ 79336.108] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1430 | [ 79336.108] (II) modeset(0): Printing DDC gathered Modelines: | |
1431 | [ 79336.108] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1432 | [ 79336.444] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1433 | [ 79337.271] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1434 | [ 79386.976] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1435 | [ 79386.976] (II) modeset(0): Printing DDC gathered Modelines: | |
1436 | [ 79386.976] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1437 | [ 79388.115] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1438 | [ 79396.138] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1439 | [ 79396.138] (II) modeset(0): Printing DDC gathered Modelines: | |
1440 | [ 79396.138] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1441 | [ 79396.473] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1442 | [ 79397.282] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1443 | [ 79449.733] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1444 | [ 79449.733] (II) modeset(0): Printing DDC gathered Modelines: | |
1445 | [ 79449.733] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1446 | [ 79450.827] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1447 | [ 79459.162] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1448 | [ 79459.162] (II) modeset(0): Printing DDC gathered Modelines: | |
1449 | [ 79459.162] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1450 | [ 79459.497] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1451 | [ 79460.316] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1452 | [ 79510.506] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1453 | [ 79510.506] (II) modeset(0): Printing DDC gathered Modelines: | |
1454 | [ 79510.506] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1455 | [ 79511.646] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1456 | [ 79524.086] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1457 | [ 79524.086] (II) modeset(0): Printing DDC gathered Modelines: | |
1458 | [ 79524.086] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1459 | [ 79524.421] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1460 | [ 79525.239] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1461 | [ 79573.820] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1462 | [ 79573.820] (II) modeset(0): Printing DDC gathered Modelines: | |
1463 | [ 79573.821] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1464 | [ 79574.909] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1465 | [ 79587.400] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1466 | [ 79587.400] (II) modeset(0): Printing DDC gathered Modelines: | |
1467 | [ 79587.400] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1468 | [ 79587.736] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1469 | [ 79588.617] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1470 | [ 79637.896] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1471 | [ 79637.896] (II) modeset(0): Printing DDC gathered Modelines: | |
1472 | [ 79637.896] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1473 | [ 79638.965] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1474 | [ 79651.477] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1475 | [ 79651.477] (II) modeset(0): Printing DDC gathered Modelines: | |
1476 | [ 79651.477] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1477 | [ 79651.812] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1478 | [ 79652.666] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1479 | [ 79703.092] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1480 | [ 79703.092] (II) modeset(0): Printing DDC gathered Modelines: | |
1481 | [ 79703.092] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1482 | [ 79704.249] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1483 | [ 79716.657] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1484 | [ 79716.657] (II) modeset(0): Printing DDC gathered Modelines: | |
1485 | [ 79716.657] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1486 | [ 79717.250] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1487 | [ 79718.115] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1488 | [ 79766.974] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1489 | [ 79766.974] (II) modeset(0): Printing DDC gathered Modelines: | |
1490 | [ 79766.974] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1491 | [ 79768.115] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1492 | [ 79780.576] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1493 | [ 79780.576] (II) modeset(0): Printing DDC gathered Modelines: | |
1494 | [ 79780.576] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1495 | [ 79780.912] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1496 | [ 79781.743] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1497 | [ 79796.010] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1498 | [ 79796.010] (II) modeset(0): Printing DDC gathered Modelines: | |
1499 | [ 79796.010] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1500 | [ 79797.131] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1501 | [ 79814.279] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1502 | [ 79814.279] (II) modeset(0): Printing DDC gathered Modelines: | |
1503 | [ 79814.279] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1504 | [ 79814.614] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1505 | [ 79815.428] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1506 | [ 79834.672] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1507 | [ 79834.672] (II) modeset(0): Printing DDC gathered Modelines: | |
1508 | [ 79834.672] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1509 | [ 79835.791] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1510 | [ 79852.685] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1511 | [ 79852.685] (II) modeset(0): Printing DDC gathered Modelines: | |
1512 | [ 79852.685] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1513 | [ 79853.021] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1514 | [ 79853.830] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1515 | [ 79901.975] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1516 | [ 79901.975] (II) modeset(0): Printing DDC gathered Modelines: | |
1517 | [ 79901.975] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1518 | [ 79903.099] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1519 | [ 79920.246] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1520 | [ 79920.246] (II) modeset(0): Printing DDC gathered Modelines: | |
1521 | [ 79920.246] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1522 | [ 79920.581] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1523 | [ 79921.409] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1524 | [ 79928.145] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1525 | [ 79928.145] (II) modeset(0): Printing DDC gathered Modelines: | |
1526 | [ 79928.145] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1527 | [ 79929.287] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1528 | [ 79955.264] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1529 | [ 79955.264] (II) modeset(0): Printing DDC gathered Modelines: | |
1530 | [ 79955.264] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1531 | [ 79955.599] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1532 | [ 79956.425] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1533 | [ 79964.166] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1534 | [ 79964.166] (II) modeset(0): Printing DDC gathered Modelines: | |
1535 | [ 79964.166] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1536 | [ 79965.303] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1537 | [244829.768] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1538 | [244829.768] (II) modeset(0): Printing DDC gathered Modelines: | |
1539 | [244829.768] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1540 | [244854.926] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1541 | [244854.926] (II) modeset(0): Printing DDC gathered Modelines: | |
1542 | [244854.926] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1543 | [244862.679] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1544 | [244862.679] (II) modeset(0): Printing DDC gathered Modelines: | |
1545 | [244862.679] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1546 | [251356.090] (EE) event15 - Synaptics TM3289-021: kernel bug: Touch jump detected and discarded. | |
1547 | See https://wayland.freedesktop.org/libinput/doc/1.14.3/touchpad-jumping-cursors.html for details | |
1548 | [251356.764] (EE) event15 - Synaptics TM3289-021: kernel bug: Touch jump detected and discarded. | |
1549 | See https://wayland.freedesktop.org/libinput/doc/1.14.3/touchpad-jumping-cursors.html for details | |
1550 | [251381.276] (EE) event15 - Synaptics TM3289-021: kernel bug: Touch jump detected and discarded. | |
1551 | See https://wayland.freedesktop.org/libinput/doc/1.14.3/touchpad-jumping-cursors.html for details | |
1552 | [251381.334] (EE) event15 - Synaptics TM3289-021: kernel bug: Touch jump detected and discarded. | |
1553 | See https://wayland.freedesktop.org/libinput/doc/1.14.3/touchpad-jumping-cursors.html for details | |
1554 | [256669.045] (EE) event15 - Synaptics TM3289-021: kernel bug: Touch jump detected and discarded. | |
1555 | See https://wayland.freedesktop.org/libinput/doc/1.14.3/touchpad-jumping-cursors.html for details | |
1556 | [259363.543] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1557 | [259363.543] (II) modeset(0): Printing DDC gathered Modelines: | |
1558 | [259363.543] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1559 | [259363.878] (--) modeset(0): HDMI max TMDS frequency 300000KHz | |
1560 | [259368.816] (II) modeset(0): Allocate new frame buffer 5760x2160 stride | |
1561 | [259466.484] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1562 | [259466.484] (II) modeset(0): Printing DDC gathered Modelines: | |
1563 | [259466.484] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1564 | [259467.567] (II) modeset(0): Allocate new frame buffer 1920x1080 stride | |
1565 | [259508.601] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1566 | [259508.601] (II) modeset(0): Printing DDC gathered Modelines: | |
1567 | [259508.601] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1568 | [259508.936] (--) modeset(0): HDMI max TMDS frequency 150000KHz | |
1569 | [259509.763] (II) modeset(0): Allocate new frame buffer 3840x1080 stride | |
1570 | [273910.770] (II) modeset(0): EDID vendor "AUO", prod id 12605 | |
1571 | [273910.770] (II) modeset(0): Printing DDC gathered Modelines: | |
1572 | [273910.770] (II) modeset(0): Modeline "1920x1080"x0.0 141.00 1920 1936 1952 2104 1080 1083 1097 1116 -hsync -vsync (67.0 kHz eP) | |
1573 | [273911.866] (II) modeset(0): Allocate new frame buffer 1920x1080 stride |
0 | Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 16384 x 16384 | |
1 | DVI-I-0 disconnected (normal left inverted right x axis y axis) | |
2 | Identifier: 0x1be | |
3 | Timestamp: 99649 | |
4 | Subpixel: unknown | |
5 | Clones: | |
6 | CRTCs: 0 1 2 3 | |
7 | Transform: 1.000000 0.000000 0.000000 | |
8 | 0.000000 1.000000 0.000000 | |
9 | 0.000000 0.000000 1.000000 | |
10 | filter: | |
11 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
12 | BorderDimensions: 4 | |
13 | supported: 4 | |
14 | Border: 0 0 0 0 | |
15 | range: (0, 65535) | |
16 | SignalFormat: VGA | |
17 | supported: VGA | |
18 | ConnectorType: DVI-I | |
19 | ConnectorNumber: 0 | |
20 | _ConnectorLocation: 0 | |
21 | non-desktop: 0 | |
22 | supported: 0, 1 | |
23 | DVI-I-1 disconnected (normal left inverted right x axis y axis) | |
24 | Identifier: 0x1bf | |
25 | Timestamp: 99649 | |
26 | Subpixel: unknown | |
27 | Clones: | |
28 | CRTCs: 0 1 2 3 | |
29 | Transform: 1.000000 0.000000 0.000000 | |
30 | 0.000000 1.000000 0.000000 | |
31 | 0.000000 0.000000 1.000000 | |
32 | filter: | |
33 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
34 | BorderDimensions: 4 | |
35 | supported: 4 | |
36 | Border: 0 0 0 0 | |
37 | range: (0, 65535) | |
38 | SignalFormat: TMDS | |
39 | supported: TMDS | |
40 | ConnectorType: DVI-I | |
41 | ConnectorNumber: 0 | |
42 | _ConnectorLocation: 0 | |
43 | non-desktop: 0 | |
44 | supported: 0, 1 | |
45 | DP-0 disconnected (normal left inverted right x axis y axis) | |
46 | Identifier: 0x1c0 | |
47 | Timestamp: 99649 | |
48 | Subpixel: unknown | |
49 | Clones: | |
50 | CRTCs: 0 1 2 3 | |
51 | Transform: 1.000000 0.000000 0.000000 | |
52 | 0.000000 1.000000 0.000000 | |
53 | 0.000000 0.000000 1.000000 | |
54 | filter: | |
55 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
56 | BorderDimensions: 4 | |
57 | supported: 4 | |
58 | Border: 0 0 0 0 | |
59 | range: (0, 65535) | |
60 | SignalFormat: DisplayPort | |
61 | supported: DisplayPort | |
62 | ConnectorType: DisplayPort | |
63 | ConnectorNumber: 1 | |
64 | _ConnectorLocation: 1 | |
65 | non-desktop: 0 | |
66 | supported: 0, 1 | |
67 | DP-1 disconnected (normal left inverted right x axis y axis) | |
68 | Identifier: 0x1c1 | |
69 | Timestamp: 99649 | |
70 | Subpixel: unknown | |
71 | Clones: | |
72 | CRTCs: 0 1 2 3 | |
73 | Transform: 1.000000 0.000000 0.000000 | |
74 | 0.000000 1.000000 0.000000 | |
75 | 0.000000 0.000000 1.000000 | |
76 | filter: | |
77 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
78 | BorderDimensions: 4 | |
79 | supported: 4 | |
80 | Border: 0 0 0 0 | |
81 | range: (0, 65535) | |
82 | SignalFormat: TMDS | |
83 | supported: TMDS | |
84 | ConnectorType: DisplayPort | |
85 | ConnectorNumber: 1 | |
86 | _ConnectorLocation: 1 | |
87 | non-desktop: 0 | |
88 | supported: 0, 1 | |
89 | HDMI-0 connected primary 3840x2160+0+0 (0x1c3) normal (normal left inverted right x axis y axis) 1872mm x 1053mm | |
90 | Identifier: 0x1c2 | |
91 | Timestamp: 99649 | |
92 | Subpixel: unknown | |
93 | Gamma: 1.0:1.0:1.0 | |
94 | Brightness: 1.0 | |
95 | Clones: | |
96 | CRTC: 0 | |
97 | CRTCs: 0 1 2 3 | |
98 | Transform: 1.000000 0.000000 0.000000 | |
99 | 0.000000 1.000000 0.000000 | |
100 | 0.000000 0.000000 1.000000 | |
101 | filter: | |
102 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
103 | EDID: | |
104 | 00ffffffffffff004c2d010c01060001 | |
105 | 2a18010380693b780a23ada4544d9926 | |
106 | 0f474abdef80714f81c0810081809500 | |
107 | a9c0b300010108e80030f2705a80b058 | |
108 | 8a00501d7400001e023a801871382d40 | |
109 | 582c4500501d7400001e000000fd0018 | |
110 | 4b0f873c000a202020202020000000fc | |
111 | 0053414d53554e470a20202020200156 | |
112 | 020358f15761101f041305142021225d | |
113 | 5e5f6065666263640716031229090707 | |
114 | 1507503d04c083010000e2000fe305c0 | |
115 | 0076030c001000b83c21d08801020304 | |
116 | 01403fff5060809067d85dc401788003 | |
117 | e3060501e30f01e0011d80d0721c1620 | |
118 | 102c2580501d7400009e662156aa5100 | |
119 | 1e30468f3300501d7400001e000000a6 | |
120 | BorderDimensions: 4 | |
121 | supported: 4 | |
122 | Border: 0 0 0 0 | |
123 | range: (0, 65535) | |
124 | SignalFormat: TMDS | |
125 | supported: TMDS | |
126 | ConnectorType: HDMI | |
127 | ConnectorNumber: 2 | |
128 | _ConnectorLocation: 2 | |
129 | non-desktop: 0 | |
130 | supported: 0, 1 | |
131 | 3840x2160 (0x1c3) 594.000MHz +HSync +VSync *current +preferred | |
132 | h: width 3840 start 4016 end 4104 total 4400 skew 0 clock 135.00KHz | |
133 | v: height 2160 start 2168 end 2178 total 2250 clock 60.00Hz | |
134 | 4096x2160 (0x1c4) 593.410MHz +HSync +VSync | |
135 | h: width 4096 start 4184 end 4272 total 4400 skew 0 clock 134.87KHz | |
136 | v: height 2160 start 2168 end 2178 total 2250 clock 59.94Hz | |
137 | 4096x2160 (0x1c5) 594.000MHz +HSync +VSync | |
138 | h: width 4096 start 5064 end 5152 total 5280 skew 0 clock 112.50KHz | |
139 | v: height 2160 start 2168 end 2178 total 2250 clock 50.00Hz | |
140 | 4096x2160 (0x1c6) 296.700MHz +HSync +VSync | |
141 | h: width 4096 start 4184 end 4272 total 4400 skew 0 clock 67.43KHz | |
142 | v: height 2160 start 2168 end 2178 total 2250 clock 29.97Hz | |
143 | 4096x2160 (0x1c7) 297.000MHz +HSync +VSync | |
144 | h: width 4096 start 5064 end 5152 total 5280 skew 0 clock 56.25KHz | |
145 | v: height 2160 start 2168 end 2178 total 2250 clock 25.00Hz | |
146 | 4096x2160 (0x1c8) 297.000MHz +HSync +VSync | |
147 | h: width 4096 start 5116 end 5204 total 5500 skew 0 clock 54.00KHz | |
148 | v: height 2160 start 2168 end 2178 total 2250 clock 24.00Hz | |
149 | 4096x2160 (0x1c9) 296.750MHz +HSync +VSync | |
150 | h: width 4096 start 5116 end 5204 total 5500 skew 0 clock 53.95KHz | |
151 | v: height 2160 start 2168 end 2178 total 2250 clock 23.98Hz | |
152 | 3840x2160 (0x1ca) 593.410MHz +HSync +VSync | |
153 | h: width 3840 start 4016 end 4104 total 4400 skew 0 clock 134.87KHz | |
154 | v: height 2160 start 2168 end 2178 total 2250 clock 59.94Hz | |
155 | 3840x2160 (0x1cb) 594.000MHz +HSync +VSync | |
156 | h: width 3840 start 4896 end 4984 total 5280 skew 0 clock 112.50KHz | |
157 | v: height 2160 start 2168 end 2178 total 2250 clock 50.00Hz | |
158 | 3840x2160 (0x1cc) 296.700MHz +HSync +VSync | |
159 | h: width 3840 start 4016 end 4104 total 4400 skew 0 clock 67.43KHz | |
160 | v: height 2160 start 2168 end 2178 total 2250 clock 29.97Hz | |
161 | 3840x2160 (0x1cd) 297.000MHz +HSync +VSync | |
162 | h: width 3840 start 4896 end 4984 total 5280 skew 0 clock 56.25KHz | |
163 | v: height 2160 start 2168 end 2178 total 2250 clock 25.00Hz | |
164 | 3840x2160 (0x1ce) 296.750MHz +HSync +VSync | |
165 | h: width 3840 start 5116 end 5204 total 5500 skew 0 clock 53.95KHz | |
166 | v: height 2160 start 2168 end 2178 total 2250 clock 23.98Hz | |
167 | 1920x1080 (0x1cf) 148.500MHz +HSync +VSync | |
168 | h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz | |
169 | v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz | |
170 | 1920x1080 (0x1d0) 148.350MHz +HSync +VSync | |
171 | h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz | |
172 | v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz | |
173 | 1920x1080 (0x1d1) 148.500MHz +HSync +VSync | |
174 | h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz | |
175 | v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz | |
176 | 1920x1080 (0x1d2) 74.180MHz +HSync +VSync | |
177 | h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz | |
178 | v: height 1080 start 1084 end 1089 total 1125 clock 29.97Hz | |
179 | 1920x1080 (0x1d3) 74.250MHz +HSync +VSync | |
180 | h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz | |
181 | v: height 1080 start 1084 end 1089 total 1125 clock 25.00Hz | |
182 | 1920x1080 (0x1d4) 74.180MHz +HSync +VSync | |
183 | h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 26.97KHz | |
184 | v: height 1080 start 1084 end 1089 total 1125 clock 23.98Hz | |
185 | 1920x1080 (0x1d5) 74.180MHz +HSync +VSync Interlace | |
186 | h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz | |
187 | v: height 1080 start 1084 end 1094 total 1124 clock 60.00Hz | |
188 | 1920x1080 (0x1d6) 74.250MHz +HSync +VSync Interlace | |
189 | h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz | |
190 | v: height 1080 start 1084 end 1094 total 1124 clock 50.04Hz | |
191 | 1680x1050 (0x1d7) 146.250MHz -HSync +VSync | |
192 | h: width 1680 start 1784 end 1960 total 2240 skew 0 clock 65.29KHz | |
193 | v: height 1050 start 1053 end 1059 total 1089 clock 59.95Hz | |
194 | 1600x900 (0x1d8) 108.000MHz +HSync +VSync | |
195 | h: width 1600 start 1624 end 1704 total 1800 skew 0 clock 60.00KHz | |
196 | v: height 900 start 901 end 904 total 1000 clock 60.00Hz | |
197 | 1440x900 (0x1d9) 106.500MHz -HSync +VSync | |
198 | h: width 1440 start 1520 end 1672 total 1904 skew 0 clock 55.93KHz | |
199 | v: height 900 start 903 end 909 total 934 clock 59.89Hz | |
200 | 1366x768 (0x1da) 85.500MHz +HSync +VSync | |
201 | h: width 1366 start 1436 end 1579 total 1792 skew 0 clock 47.71KHz | |
202 | v: height 768 start 771 end 774 total 798 clock 59.79Hz | |
203 | 1280x1024 (0x1db) 135.000MHz +HSync +VSync | |
204 | h: width 1280 start 1296 end 1440 total 1688 skew 0 clock 79.98KHz | |
205 | v: height 1024 start 1025 end 1028 total 1066 clock 75.02Hz | |
206 | 1280x1024 (0x1dc) 108.000MHz +HSync +VSync | |
207 | h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 63.98KHz | |
208 | v: height 1024 start 1025 end 1028 total 1066 clock 60.02Hz | |
209 | 1280x800 (0x1dd) 83.500MHz -HSync +VSync | |
210 | h: width 1280 start 1352 end 1480 total 1680 skew 0 clock 49.70KHz | |
211 | v: height 800 start 803 end 809 total 831 clock 59.81Hz | |
212 | 1280x720 (0x1de) 74.250MHz +HSync +VSync | |
213 | h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz | |
214 | v: height 720 start 725 end 730 total 750 clock 60.00Hz | |
215 | 1280x720 (0x1df) 74.180MHz +HSync +VSync | |
216 | h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz | |
217 | v: height 720 start 725 end 730 total 750 clock 59.94Hz | |
218 | 1280x720 (0x1e0) 74.250MHz +HSync +VSync | |
219 | h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz | |
220 | v: height 720 start 725 end 730 total 750 clock 50.00Hz | |
221 | 1152x864 (0x1e1) 108.000MHz +HSync +VSync | |
222 | h: width 1152 start 1216 end 1344 total 1600 skew 0 clock 67.50KHz | |
223 | v: height 864 start 865 end 868 total 900 clock 75.00Hz | |
224 | 1024x768 (0x1e2) 78.750MHz +HSync +VSync | |
225 | h: width 1024 start 1040 end 1136 total 1312 skew 0 clock 60.02KHz | |
226 | v: height 768 start 769 end 772 total 800 clock 75.03Hz | |
227 | 1024x768 (0x1e3) 75.000MHz -HSync -VSync | |
228 | h: width 1024 start 1048 end 1184 total 1328 skew 0 clock 56.48KHz | |
229 | v: height 768 start 771 end 777 total 806 clock 70.07Hz | |
230 | 1024x768 (0x1e4) 65.000MHz -HSync -VSync | |
231 | h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz | |
232 | v: height 768 start 771 end 777 total 806 clock 60.00Hz | |
233 | 800x600 (0x1e5) 49.500MHz +HSync +VSync | |
234 | h: width 800 start 816 end 896 total 1056 skew 0 clock 46.88KHz | |
235 | v: height 600 start 601 end 604 total 625 clock 75.00Hz | |
236 | 800x600 (0x1e6) 50.000MHz +HSync +VSync | |
237 | h: width 800 start 856 end 976 total 1040 skew 0 clock 48.08KHz | |
238 | v: height 600 start 637 end 643 total 666 clock 72.19Hz | |
239 | 800x600 (0x1e7) 40.000MHz +HSync +VSync | |
240 | h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz | |
241 | v: height 600 start 601 end 605 total 628 clock 60.32Hz | |
242 | 720x576 (0x1e8) 27.000MHz -HSync -VSync | |
243 | h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz | |
244 | v: height 576 start 581 end 586 total 625 clock 50.00Hz | |
245 | 720x480 (0x1e9) 27.000MHz -HSync -VSync | |
246 | h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz | |
247 | v: height 480 start 489 end 495 total 525 clock 59.94Hz | |
248 | 640x480 (0x1ea) 31.500MHz -HSync -VSync | |
249 | h: width 640 start 656 end 720 total 840 skew 0 clock 37.50KHz | |
250 | v: height 480 start 481 end 484 total 500 clock 75.00Hz | |
251 | 640x480 (0x1eb) 31.500MHz -HSync -VSync | |
252 | h: width 640 start 656 end 696 total 832 skew 0 clock 37.86KHz | |
253 | v: height 480 start 481 end 484 total 520 clock 72.81Hz | |
254 | 640x480 (0x1ec) 25.175MHz -HSync -VSync | |
255 | h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz | |
256 | v: height 480 start 490 end 492 total 525 clock 59.94Hz | |
257 | DVI-D-0 disconnected (normal left inverted right x axis y axis) | |
258 | Identifier: 0x1ed | |
259 | Timestamp: 99649 | |
260 | Subpixel: unknown | |
261 | Clones: | |
262 | CRTCs: 0 1 2 3 | |
263 | Transform: 1.000000 0.000000 0.000000 | |
264 | 0.000000 1.000000 0.000000 | |
265 | 0.000000 0.000000 1.000000 | |
266 | filter: | |
267 | CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 | |
268 | BorderDimensions: 4 | |
269 | supported: 4 | |
270 | Border: 0 0 0 0 | |
271 | range: (0, 65535) | |
272 | SignalFormat: TMDS | |
273 | supported: TMDS | |
274 | ConnectorType: DVI-D | |
275 | ConnectorNumber: 3 | |
276 | _ConnectorLocation: 3 | |
277 | non-desktop: 0 | |
278 | supported: 0, 1 |
0 | | |
1 | Microsoft Visual Studio Solution File, Format Version 12.00 | |
2 | # Visual Studio Version 16 | |
3 | VisualStudioVersion = 16.0.30011.22 | |
4 | MinimumVisualStudioVersion = 10.0.40219.1 | |
5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "edid-decode", "edid-decode.vcxproj", "{245F601B-02E4-43DF-B64C-B49088673764}" | |
6 | EndProject | |
7 | Global | |
8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution | |
9 | Debug|x64 = Debug|x64 | |
10 | Release|x64 = Release|x64 | |
11 | EndGlobalSection | |
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution | |
13 | {245F601B-02E4-43DF-B64C-B49088673764}.Debug|x64.ActiveCfg = Debug|x64 | |
14 | {245F601B-02E4-43DF-B64C-B49088673764}.Debug|x64.Build.0 = Debug|x64 | |
15 | {245F601B-02E4-43DF-B64C-B49088673764}.Release|x64.ActiveCfg = Release|x64 | |
16 | {245F601B-02E4-43DF-B64C-B49088673764}.Release|x64.Build.0 = Release|x64 | |
17 | EndGlobalSection | |
18 | GlobalSection(SolutionProperties) = preSolution | |
19 | HideSolutionNode = FALSE | |
20 | EndGlobalSection | |
21 | GlobalSection(ExtensibilityGlobals) = postSolution | |
22 | SolutionGuid = {DDBA565E-4EC9-46DF-88E0-12F489BB3FCF} | |
23 | EndGlobalSection | |
24 | EndGlobal |
0 | <?xml version="1.0" encoding="utf-8"?> | |
1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
2 | <ItemGroup Label="ProjectConfigurations"> | |
3 | <ProjectConfiguration Include="Debug|x64"> | |
4 | <Configuration>Debug</Configuration> | |
5 | <Platform>x64</Platform> | |
6 | </ProjectConfiguration> | |
7 | <ProjectConfiguration Include="Release|x64"> | |
8 | <Configuration>Release</Configuration> | |
9 | <Platform>x64</Platform> | |
10 | </ProjectConfiguration> | |
11 | </ItemGroup> | |
12 | <PropertyGroup Label="Globals"> | |
13 | <VCProjectVersion>16.0</VCProjectVersion> | |
14 | <ProjectGuid>{245F601B-02E4-43DF-B64C-B49088673764}</ProjectGuid> | |
15 | <Keyword>Win32Proj</Keyword> | |
16 | <RootNamespace>ediddecode</RootNamespace> | |
17 | <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> | |
18 | </PropertyGroup> | |
19 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |
20 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> | |
21 | <ConfigurationType>Application</ConfigurationType> | |
22 | <UseDebugLibraries>true</UseDebugLibraries> | |
23 | <PlatformToolset>v142</PlatformToolset> | |
24 | <CharacterSet>Unicode</CharacterSet> | |
25 | </PropertyGroup> | |
26 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> | |
27 | <ConfigurationType>Application</ConfigurationType> | |
28 | <UseDebugLibraries>false</UseDebugLibraries> | |
29 | <PlatformToolset>v142</PlatformToolset> | |
30 | <WholeProgramOptimization>true</WholeProgramOptimization> | |
31 | <CharacterSet>Unicode</CharacterSet> | |
32 | </PropertyGroup> | |
33 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |
34 | <ImportGroup Label="ExtensionSettings"> | |
35 | </ImportGroup> | |
36 | <ImportGroup Label="Shared"> | |
37 | </ImportGroup> | |
38 | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
39 | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
40 | </ImportGroup> | |
41 | <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
42 | <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
43 | </ImportGroup> | |
44 | <PropertyGroup Label="UserMacros" /> | |
45 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
46 | <LinkIncremental>true</LinkIncremental> | |
47 | </PropertyGroup> | |
48 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
49 | <LinkIncremental>false</LinkIncremental> | |
50 | </PropertyGroup> | |
51 | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
52 | <ClCompile> | |
53 | <PrecompiledHeader> | |
54 | </PrecompiledHeader> | |
55 | <WarningLevel>Level3</WarningLevel> | |
56 | <SDLCheck>true</SDLCheck> | |
57 | <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
58 | <ConformanceMode>true</ConformanceMode> | |
59 | <AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |
60 | <DisableSpecificWarnings>4244; 4018; 4267; 4996; 26451; 6385; 6001</DisableSpecificWarnings> | |
61 | </ClCompile> | |
62 | <Link> | |
63 | <SubSystem>Console</SubSystem> | |
64 | <GenerateDebugInformation>true</GenerateDebugInformation> | |
65 | </Link> | |
66 | <PostBuildEvent> | |
67 | <Command> | |
68 | </Command> | |
69 | </PostBuildEvent> | |
70 | <PostBuildEvent> | |
71 | <Message> | |
72 | </Message> | |
73 | </PostBuildEvent> | |
74 | </ItemDefinitionGroup> | |
75 | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
76 | <ClCompile> | |
77 | <PrecompiledHeader> | |
78 | </PrecompiledHeader> | |
79 | <WarningLevel>Level3</WarningLevel> | |
80 | <FunctionLevelLinking>true</FunctionLevelLinking> | |
81 | <IntrinsicFunctions>true</IntrinsicFunctions> | |
82 | <SDLCheck>true</SDLCheck> | |
83 | <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
84 | <ConformanceMode>true</ConformanceMode> | |
85 | <AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |
86 | <DisableSpecificWarnings>4244; 4018; 4267; 4996; 26451; 6385; 6001</DisableSpecificWarnings> | |
87 | </ClCompile> | |
88 | <Link> | |
89 | <SubSystem>Console</SubSystem> | |
90 | <EnableCOMDATFolding>true</EnableCOMDATFolding> | |
91 | <OptimizeReferences>true</OptimizeReferences> | |
92 | <GenerateDebugInformation>true</GenerateDebugInformation> | |
93 | </Link> | |
94 | </ItemDefinitionGroup> | |
95 | <ItemGroup> | |
96 | <ClCompile Include="getopt.c" /> | |
97 | <ClCompile Include="..\edid-decode.cpp" /> | |
98 | <ClCompile Include="..\parse-base-block.cpp" /> | |
99 | <ClCompile Include="..\parse-cta-block.cpp" /> | |
100 | <ClCompile Include="..\parse-di-ext-block.cpp" /> | |
101 | <ClCompile Include="..\parse-displayid-block.cpp" /> | |
102 | <ClCompile Include="..\parse-ls-ext-block.cpp" /> | |
103 | <ClCompile Include="..\parse-vtb-ext-block.cpp" /> | |
104 | </ItemGroup> | |
105 | <ItemGroup> | |
106 | <ClInclude Include="getopt.h" /> | |
107 | <ClInclude Include="unistd.h" /> | |
108 | <ClInclude Include="..\edid-decode.h" /> | |
109 | </ItemGroup> | |
110 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |
111 | <ImportGroup Label="ExtensionTargets"> | |
112 | </ImportGroup> | |
113 | </Project>⏎ |
0 | <?xml version="1.0" encoding="utf-8"?> | |
1 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
2 | <ItemGroup> | |
3 | <Filter Include="windows-unix"> | |
4 | <UniqueIdentifier>{757b13a8-3e1d-43af-acf1-d03963acb2e6}</UniqueIdentifier> | |
5 | </Filter> | |
6 | <Filter Include="edid-decode"> | |
7 | <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | |
8 | <Extensions>cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx</Extensions> | |
9 | </Filter> | |
10 | </ItemGroup> | |
11 | <ItemGroup> | |
12 | <ClCompile Include="..\parse-base-block.cpp"> | |
13 | <Filter>edid-decode</Filter> | |
14 | </ClCompile> | |
15 | <ClCompile Include="..\parse-cta-block.cpp"> | |
16 | <Filter>edid-decode</Filter> | |
17 | </ClCompile> | |
18 | <ClCompile Include="..\parse-di-ext-block.cpp"> | |
19 | <Filter>edid-decode</Filter> | |
20 | </ClCompile> | |
21 | <ClCompile Include="..\parse-displayid-block.cpp"> | |
22 | <Filter>edid-decode</Filter> | |
23 | </ClCompile> | |
24 | <ClCompile Include="..\parse-ls-ext-block.cpp"> | |
25 | <Filter>edid-decode</Filter> | |
26 | </ClCompile> | |
27 | <ClCompile Include="..\parse-vtb-ext-block.cpp"> | |
28 | <Filter>edid-decode</Filter> | |
29 | </ClCompile> | |
30 | <ClCompile Include="getopt.c"> | |
31 | <Filter>windows-unix</Filter> | |
32 | </ClCompile> | |
33 | <ClCompile Include="..\edid-decode.cpp"> | |
34 | <Filter>edid-decode</Filter> | |
35 | </ClCompile> | |
36 | </ItemGroup> | |
37 | <ItemGroup> | |
38 | <ClInclude Include="..\edid-decode.h"> | |
39 | <Filter>edid-decode</Filter> | |
40 | </ClInclude> | |
41 | <ClInclude Include="getopt.h"> | |
42 | <Filter>windows-unix</Filter> | |
43 | </ClInclude> | |
44 | <ClInclude Include="unistd.h"> | |
45 | <Filter>windows-unix</Filter> | |
46 | </ClInclude> | |
47 | </ItemGroup> | |
48 | </Project>⏎ |
0 | /** | |
1 | * @file getopt.c | |
2 | * @copy 2012 MinGW.org project | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | * copy of this software and associated documentation files (the "Software"), | |
6 | * to deal in the Software without restriction, including without limitation | |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 | * and/or sell copies of the Software, and to permit persons to whom the | |
9 | * Software is furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice (including the next | |
12 | * paragraph) shall be included in all copies or substantial portions of the | |
13 | * Software. | |
14 | * | |
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
20 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
21 | * DEALINGS IN THE SOFTWARE. | |
22 | */ | |
23 | ||
24 | /* | |
25 | * Implementation of the `getopt', `getopt_long' and `getopt_long_only' | |
26 | * APIs, for inclusion in the MinGW runtime library. | |
27 | */ | |
28 | ||
29 | #include <stdio.h> | |
30 | #include <stdlib.h> | |
31 | #include <stdarg.h> | |
32 | #include <getopt.h> | |
33 | ||
34 | /* Identify how to get the calling program name, for use in messages... | |
35 | */ | |
36 | #ifdef __CYGWIN__ | |
37 | /* | |
38 | * CYGWIN uses this DLL reference... | |
39 | */ | |
40 | # define PROGNAME __progname | |
41 | extern char __declspec(dllimport) *__progname; | |
42 | #else | |
43 | /* | |
44 | * ...while elsewhere, we simply use the first argument passed. | |
45 | */ | |
46 | # define PROGNAME *argv | |
47 | # define __inline__ __inline | |
48 | #endif | |
49 | ||
50 | /* Initialise the public variables. */ | |
51 | ||
52 | int optind = 1; /* index for first non-option arg */ | |
53 | int opterr = 1; /* enable built-in error messages */ | |
54 | ||
55 | char *optarg = NULL; /* pointer to current option argument */ | |
56 | ||
57 | #define CHAR char /* argument type selector */ | |
58 | ||
59 | #define getopt_switchar '-' /* option prefix character in argv */ | |
60 | #define getopt_pluschar '+' /* prefix for POSIX mode in optstring */ | |
61 | #define getopt_takes_argument ':' /* marker for optarg in optstring */ | |
62 | #define getopt_arg_assign '=' /* longopt argument field separator */ | |
63 | #define getopt_unknown '?' /* return code for unmatched option */ | |
64 | #define getopt_ordered 1 /* return code for ordered non-option */ | |
65 | ||
66 | #define getopt_all_done -1 /* return code to indicate completion */ | |
67 | ||
68 | enum | |
69 | { /* All `getopt' API functions are implemented via calls to the | |
70 | * common static function `getopt_parse()'; these `mode' selectors | |
71 | * determine the behaviour of `getopt_parse()', to deliver the | |
72 | * appropriate result in each case. | |
73 | */ | |
74 | getopt_mode_standard = 0, /* getopt() */ | |
75 | getopt_mode_long, /* getopt_long() */ | |
76 | getopt_mode_long_only /* getopt_long_only() */ | |
77 | }; | |
78 | ||
79 | enum | |
80 | { /* When attempting to match a command line argument to a long form option, | |
81 | * these indicate the status of the match. | |
82 | */ | |
83 | getopt_no_match = 0, /* no successful match */ | |
84 | getopt_abbreviated_match, /* argument is an abbreviation for an option */ | |
85 | getopt_exact_match /* argument matches the full option name */ | |
86 | }; | |
87 | ||
88 | int optopt = getopt_unknown; /* return value for option being evaluated */ | |
89 | ||
90 | /* Some BSD applications expect to be able to reinitialise `getopt' parsing | |
91 | * by setting a global variable called `optreset'. We provide an obfuscated | |
92 | * API, which allows applications to emulate this brain damage; however, any | |
93 | * use of this is non-portable, and is strongly discouraged. | |
94 | */ | |
95 | #define optreset __mingw_optreset | |
96 | int optreset = 0; | |
97 | ||
98 | static __inline__ | |
99 | int getopt_missing_arg( const CHAR *optstring ) | |
100 | { | |
101 | /* Helper function to determine the appropriate return value, | |
102 | * for the case where a required option argument is missing. | |
103 | */ | |
104 | if( (*optstring == getopt_pluschar) || (*optstring == getopt_switchar) ) | |
105 | ++optstring; | |
106 | return (*optstring == getopt_takes_argument) | |
107 | ? getopt_takes_argument | |
108 | : getopt_unknown; | |
109 | } | |
110 | ||
111 | /* `complain' macro facilitates the generation of simple built-in | |
112 | * error messages, displayed on various fault conditions, provided | |
113 | * `opterr' is non-zero. | |
114 | */ | |
115 | #define complain( MSG, ARG ) if( opterr ) \ | |
116 | fprintf( stderr, "%s: "MSG"\n", PROGNAME, ARG ) | |
117 | ||
118 | static __inline__ | |
119 | int getopt_argerror( int mode, char *fmt, CHAR *prog, struct option *opt, int retval ) | |
120 | { | |
121 | /* Helper function, to generate more complex built-in error | |
122 | * messages, for invalid arguments to long form options ... | |
123 | */ | |
124 | if( opterr ) | |
125 | { | |
126 | /* ... but, displayed only if `opterr' is non-zero. | |
127 | */ | |
128 | char flag[] = "--"; | |
129 | if( mode != getopt_mode_long ) | |
130 | /* | |
131 | * only display one hyphen, for implicit long form options, | |
132 | * improperly resolved by `getopt_long_only()'. | |
133 | */ | |
134 | flag[1] = 0; | |
135 | /* | |
136 | * always preface the program name ... | |
137 | */ | |
138 | fprintf( stderr, "%s: ", prog ); | |
139 | /* | |
140 | * to the appropriate, option specific message. | |
141 | */ | |
142 | fprintf( stderr, fmt, flag, opt->name ); | |
143 | } | |
144 | /* Whether displaying the message, or not, always set `optopt' | |
145 | * to identify the faulty option ... | |
146 | */ | |
147 | optopt = opt->val; | |
148 | /* | |
149 | * and return the `invalid option' indicator. | |
150 | */ | |
151 | return retval; | |
152 | } | |
153 | ||
154 | /* `getopt_conventions' establish behavioural options, to control | |
155 | * the operation of `getopt_parse()', e.g. to select between POSIX | |
156 | * and GNU style argument parsing behaviour. | |
157 | */ | |
158 | #define getopt_set_conventions 0x1000 | |
159 | #define getopt_posixly_correct 0x0010 | |
160 | ||
161 | static __inline__ | |
162 | int getopt_conventions( int flags ) | |
163 | { | |
164 | static int conventions = 0; | |
165 | ||
166 | if( (conventions == 0) && ((flags & getopt_set_conventions) == 0) ) | |
167 | { | |
168 | /* default conventions have not yet been established; | |
169 | * initialise them now! | |
170 | */ | |
171 | conventions = getopt_set_conventions; | |
172 | if( (flags == getopt_pluschar) || (getenv( "POSIXLY_CORRECT" ) != NULL) ) | |
173 | conventions |= getopt_posixly_correct; | |
174 | } | |
175 | ||
176 | else if( flags & getopt_set_conventions ) | |
177 | /* | |
178 | * default conventions may have already been established, | |
179 | * but this is a specific request to augment them. | |
180 | */ | |
181 | conventions |= flags; | |
182 | ||
183 | /* in any event, return the currently established conventions. | |
184 | */ | |
185 | return conventions; | |
186 | } | |
187 | ||
188 | static __inline__ | |
189 | int is_switchar( CHAR flag ) | |
190 | { | |
191 | /* A simple helper function, used to identify the switch character | |
192 | * introducing an optional command line argument. | |
193 | */ | |
194 | return flag == getopt_switchar; | |
195 | } | |
196 | ||
197 | static __inline__ | |
198 | const CHAR *getopt_match( CHAR lookup, const CHAR *opt_string ) | |
199 | { | |
200 | /* Helper function, used to identify short form options. | |
201 | */ | |
202 | if( (*opt_string == getopt_pluschar) || (*opt_string == getopt_switchar) ) | |
203 | ++opt_string; | |
204 | if( *opt_string == getopt_takes_argument ) | |
205 | ++opt_string; | |
206 | do if( lookup == *opt_string ) return opt_string; | |
207 | while( *++opt_string ); | |
208 | return NULL; | |
209 | } | |
210 | ||
211 | static __inline__ | |
212 | int getopt_match_long( const CHAR *nextchar, const CHAR *optname ) | |
213 | { | |
214 | /* Helper function, used to identify potential matches for | |
215 | * long form options. | |
216 | */ | |
217 | CHAR matchchar; | |
218 | while( (matchchar = *nextchar++) && (matchchar == *optname) ) | |
219 | /* | |
220 | * skip over initial substring which DOES match. | |
221 | */ | |
222 | ++optname; | |
223 | ||
224 | if( matchchar ) | |
225 | { | |
226 | /* did NOT match the entire argument to an initial substring | |
227 | * of a defined option name ... | |
228 | */ | |
229 | if( matchchar != getopt_arg_assign ) | |
230 | /* | |
231 | * ... and didn't stop at an `=' internal field separator, | |
232 | * so this is NOT a possible match. | |
233 | */ | |
234 | return getopt_no_match; | |
235 | ||
236 | /* DID stop at an `=' internal field separator, | |
237 | * so this IS a possible match, and what follows is an | |
238 | * argument to the possibly matched option. | |
239 | */ | |
240 | optarg = (char *)(nextchar); | |
241 | } | |
242 | return *optname | |
243 | /* | |
244 | * if we DIDN'T match the ENTIRE text of the option name, | |
245 | * then it's a possible abbreviated match ... | |
246 | */ | |
247 | ? getopt_abbreviated_match | |
248 | /* | |
249 | * but if we DID match the entire option name, | |
250 | * then it's a DEFINITE EXACT match. | |
251 | */ | |
252 | : getopt_exact_match; | |
253 | } | |
254 | ||
255 | static __inline__ | |
256 | int getopt_resolved( int mode, int argc, CHAR *const *argv, int *argind, | |
257 | struct option *opt, int index, int *retindex, const CHAR *optstring ) | |
258 | { | |
259 | /* Helper function to establish appropriate return conditions, | |
260 | * on resolution of a long form option. | |
261 | */ | |
262 | if( retindex != NULL ) | |
263 | *retindex = index; | |
264 | ||
265 | /* On return, `optind' should normally refer to the argument, if any, | |
266 | * which follows the current one; it is convenient to set this, before | |
267 | * checking for the presence of any `optarg'. | |
268 | */ | |
269 | optind = *argind + 1; | |
270 | ||
271 | if( optarg && (opt[index].has_arg == no_argument) ) | |
272 | /* | |
273 | * it is an error for the user to specify an option specific argument | |
274 | * with an option which doesn't expect one! | |
275 | */ | |
276 | return getopt_argerror( mode, "option `%s%s' doesn't accept an argument\n", | |
277 | PROGNAME, opt + index, getopt_unknown ); | |
278 | ||
279 | else if( (optarg == NULL) && (opt[index].has_arg == required_argument) ) | |
280 | { | |
281 | /* similarly, it is an error if no argument is specified | |
282 | * with an option which requires one ... | |
283 | */ | |
284 | if( optind < argc ) | |
285 | /* | |
286 | * ... except that the requirement may be satisfied from | |
287 | * the following command line argument, if any ... | |
288 | */ | |
289 | optarg = argv[*argind = optind++]; | |
290 | ||
291 | else | |
292 | /* so fail this case, only if no such argument exists! | |
293 | */ | |
294 | return getopt_argerror( mode, "option `%s%s' requires an argument\n", | |
295 | PROGNAME, opt + index, getopt_missing_arg( optstring ) ); | |
296 | } | |
297 | ||
298 | /* when the caller has provided a return buffer ... | |
299 | */ | |
300 | if( opt[index].flag != NULL ) | |
301 | { | |
302 | /* ... then we place the proper return value there, | |
303 | * and return a status code of zero ... | |
304 | */ | |
305 | *(opt[index].flag) = opt[index].val; | |
306 | return 0; | |
307 | } | |
308 | /* ... otherwise, the return value becomes the status code. | |
309 | */ | |
310 | return opt[index].val; | |
311 | } | |
312 | ||
313 | static __inline__ | |
314 | int getopt_verify( const CHAR *nextchar, const CHAR *optstring ) | |
315 | { | |
316 | /* Helper function, called by getopt_parse() when invoked | |
317 | * by getopt_long_only(), to verify when an unmatched or an | |
318 | * ambiguously matched long form option string is valid as | |
319 | * a short form option specification. | |
320 | */ | |
321 | if( ! (nextchar && *nextchar && optstring && *optstring) ) | |
322 | /* | |
323 | * There are no characters to be matched, or there are no | |
324 | * valid short form option characters to which they can be | |
325 | * matched, so this can never be valid. | |
326 | */ | |
327 | return 0; | |
328 | ||
329 | while( *nextchar ) | |
330 | { | |
331 | /* For each command line character in turn ... | |
332 | */ | |
333 | const CHAR *test; | |
334 | if( (test = getopt_match( *nextchar++, optstring )) == NULL ) | |
335 | /* | |
336 | * ... there is no short form option to match the current | |
337 | * candidate, so the entire argument fails. | |
338 | */ | |
339 | return 0; | |
340 | ||
341 | if( test[1] == getopt_takes_argument ) | |
342 | /* | |
343 | * The current candidate is valid, and it matches an option | |
344 | * which takes an argument, so this command line argument is | |
345 | * a valid short form option specification; accept it. | |
346 | */ | |
347 | return 1; | |
348 | } | |
349 | /* If we get to here, then every character in the command line | |
350 | * argument was valid as a short form option; accept it. | |
351 | */ | |
352 | return 1; | |
353 | } | |
354 | ||
355 | static | |
356 | #define getopt_std_args int argc, CHAR *const argv[], const CHAR *optstring | |
357 | int getopt_parse( int mode, getopt_std_args, ... ) | |
358 | { | |
359 | /* Common core implementation for ALL `getopt' functions. | |
360 | */ | |
361 | static int argind = 0; | |
362 | static int optbase = 0; | |
363 | static const CHAR *nextchar = NULL; | |
364 | static int optmark = 0; | |
365 | ||
366 | if( (optreset |= (optind < 1)) || (optind < optbase) ) | |
367 | { | |
368 | /* POSIX does not prescribe any definitive mechanism for restarting | |
369 | * a `getopt' scan, but some applications may require such capability. | |
370 | * We will support it, by allowing the caller to adjust the value of | |
371 | * `optind' downwards, (nominally setting it to zero). Since POSIX | |
372 | * wants `optind' to have an initial value of one, but we want all | |
373 | * of our internal place holders to be initialised to zero, when we | |
374 | * are called for the first time, we will handle such a reset by | |
375 | * adjusting all of the internal place holders to one less than | |
376 | * the adjusted `optind' value, (but never to less than zero). | |
377 | */ | |
378 | if( optreset ) | |
379 | { | |
380 | /* User has explicitly requested reinitialisation... | |
381 | * We need to reset `optind' to it's normal initial value of 1, | |
382 | * to avoid a potential infinitely recursive loop; by doing this | |
383 | * up front, we also ensure that the remaining place holders | |
384 | * will be correctly reinitialised to no less than zero. | |
385 | */ | |
386 | optind = 1; | |
387 | ||
388 | /* We also need to clear the `optreset' request... | |
389 | */ | |
390 | optreset = 0; | |
391 | } | |
392 | ||
393 | /* Now, we may safely reinitialise the internal place holders, to | |
394 | * one less than `optind', without fear of making them negative. | |
395 | */ | |
396 | optmark = optbase = argind = optind - 1; | |
397 | nextchar = NULL; | |
398 | } | |
399 | ||
400 | /* From a POSIX perspective, the following is `undefined behaviour'; | |
401 | * we implement it thus, for compatibility with GNU and BSD getopt. | |
402 | */ | |
403 | else if( optind > (argind + 1) ) | |
404 | { | |
405 | /* Some applications expect to be able to manipulate `optind', | |
406 | * causing `getopt' to skip over one or more elements of `argv'; | |
407 | * POSIX doesn't require us to support this brain-damaged concept; | |
408 | * (indeed, POSIX defines no particular behaviour, in the event of | |
409 | * such usage, so it must be considered a bug for an application | |
410 | * to rely on any particular outcome); nonetheless, Mac-OS-X and | |
411 | * BSD actually provide *documented* support for this capability, | |
412 | * so we ensure that our internal place holders keep track of | |
413 | * external `optind' increments; (`argind' must lag by one). | |
414 | */ | |
415 | argind = optind - 1; | |
416 | ||
417 | /* When `optind' is misused, in this fashion, we also abandon any | |
418 | * residual text in the argument we had been parsing; this is done | |
419 | * without any further processing of such abandoned text, assuming | |
420 | * that the caller is equipped to handle it appropriately. | |
421 | */ | |
422 | nextchar = NULL; | |
423 | } | |
424 | ||
425 | if( nextchar && *nextchar ) | |
426 | { | |
427 | /* we are parsing a standard, or short format, option argument ... | |
428 | */ | |
429 | const CHAR *optchar; | |
430 | if( (optchar = getopt_match( optopt = *nextchar++, optstring )) != NULL ) | |
431 | { | |
432 | /* we have identified it as valid ... | |
433 | */ | |
434 | if( optchar[1] == getopt_takes_argument ) | |
435 | { | |
436 | /* and determined that it requires an associated argument ... | |
437 | */ | |
438 | if( ! *(optarg = (char *)(nextchar)) ) | |
439 | { | |
440 | /* the argument is NOT attached ... | |
441 | */ | |
442 | if( optchar[2] == getopt_takes_argument ) | |
443 | /* | |
444 | * but this GNU extension marks it as optional, | |
445 | * so we don't provide one on this occasion. | |
446 | */ | |
447 | optarg = NULL; | |
448 | ||
449 | /* otherwise this option takes a mandatory argument, | |
450 | * so, provided there is one available ... | |
451 | */ | |
452 | else if( (argc - argind) > 1 ) | |
453 | /* | |
454 | * we take the following command line argument, | |
455 | * as the appropriate option argument. | |
456 | */ | |
457 | optarg = argv[++argind]; | |
458 | ||
459 | /* but if no further argument is available, | |
460 | * then there is nothing we can do, except for | |
461 | * issuing the requisite diagnostic message. | |
462 | */ | |
463 | else | |
464 | { | |
465 | complain( "option requires an argument -- %c", optopt ); | |
466 | return getopt_missing_arg( optstring ); | |
467 | } | |
468 | } | |
469 | optind = argind + 1; | |
470 | nextchar = NULL; | |
471 | } | |
472 | else | |
473 | optarg = NULL; | |
474 | optind = (nextchar && *nextchar) ? argind : argind + 1; | |
475 | return optopt; | |
476 | } | |
477 | /* if we didn't find a valid match for the specified option character, | |
478 | * then we fall through to here, so take appropriate diagnostic action. | |
479 | */ | |
480 | if( mode == getopt_mode_long_only ) | |
481 | { | |
482 | complain( "unrecognised option `-%s'", --nextchar ); | |
483 | nextchar = NULL; | |
484 | optopt = 0; | |
485 | } | |
486 | else | |
487 | complain( "invalid option -- %c", optopt ); | |
488 | optind = (nextchar && *nextchar) ? argind : argind + 1; | |
489 | return getopt_unknown; | |
490 | } | |
491 | ||
492 | if( optmark > optbase ) | |
493 | { | |
494 | /* This can happen, in GNU parsing mode ONLY, when we have | |
495 | * skipped over non-option arguments, and found a subsequent | |
496 | * option argument; in this case we permute the arguments. | |
497 | */ | |
498 | int index; | |
499 | /* | |
500 | * `optspan' specifies the number of contiguous arguments | |
501 | * which are spanned by the current option, and so must be | |
502 | * moved together during permutation. | |
503 | */ | |
504 | int optspan = argind - optmark + 1; | |
505 | /* | |
506 | * we use `this_arg' to store these temporarily. | |
507 | */ | |
508 | CHAR **this_arg = (CHAR **)malloc(optspan * sizeof(CHAR *)); | |
509 | if( this_arg == NULL ) | |
510 | return getopt_unknown; | |
511 | /* | |
512 | * we cannot manipulate `argv' directly, since the `getopt' | |
513 | * API prototypes it as `read-only'; this cast to `arglist' | |
514 | * allows us to work around that restriction. | |
515 | */ | |
516 | CHAR **arglist = (char **)(argv); | |
517 | ||
518 | /* save temporary copies of the arguments which are associated | |
519 | * with the current option ... | |
520 | */ | |
521 | for( index = 0; index < optspan; ++index ) | |
522 | this_arg[index] = arglist[optmark + index]; | |
523 | ||
524 | /* move all preceding non-option arguments to the right, | |
525 | * overwriting these saved arguments, while making space | |
526 | * to replace them in their permuted location. | |
527 | */ | |
528 | for( --optmark; optmark >= optbase; --optmark ) | |
529 | arglist[optmark + optspan] = arglist[optmark]; | |
530 | ||
531 | /* restore the temporarily saved option arguments to | |
532 | * their permuted location. | |
533 | */ | |
534 | for( index = 0; index < optspan; ++index ) | |
535 | arglist[optbase + index] = this_arg[index]; | |
536 | ||
537 | free(this_arg); | |
538 | ||
539 | /* adjust `optbase', to account for the relocated option. | |
540 | */ | |
541 | optbase += optspan; | |
542 | } | |
543 | ||
544 | else | |
545 | /* no permutation occurred ... | |
546 | * simply adjust `optbase' for all options parsed so far. | |
547 | */ | |
548 | optbase = argind + 1; | |
549 | ||
550 | /* enter main parsing loop ... | |
551 | */ | |
552 | while( argc > ++argind ) | |
553 | { | |
554 | /* inspect each argument in turn, identifying possible options ... | |
555 | */ | |
556 | if( is_switchar( *(nextchar = argv[optmark = argind]) ) && *++nextchar ) | |
557 | { | |
558 | /* we've found a candidate option argument ... */ | |
559 | ||
560 | if( is_switchar( *nextchar ) ) | |
561 | { | |
562 | /* it's a double hyphen argument ... */ | |
563 | ||
564 | const CHAR *refchar = nextchar; | |
565 | if( *++refchar ) | |
566 | { | |
567 | /* and it looks like a long format option ... | |
568 | * `getopt_long' mode must be active to accept it as such, | |
569 | * `getopt_long_only' also qualifies, but we must downgrade | |
570 | * it to force explicit handling as a long format option. | |
571 | */ | |
572 | if( mode >= getopt_mode_long ) | |
573 | { | |
574 | nextchar = refchar; | |
575 | mode = getopt_mode_long; | |
576 | } | |
577 | } | |
578 | else | |
579 | { | |
580 | /* this is an explicit `--' end of options marker, so wrap up now! | |
581 | */ | |
582 | if( optmark > optbase ) | |
583 | { | |
584 | /* permuting the argument list as necessary ... | |
585 | * (note use of `this_arg' and `arglist', as above). | |
586 | */ | |
587 | CHAR *this_arg = argv[optmark]; | |
588 | CHAR **arglist = (CHAR **)(argv); | |
589 | ||
590 | /* move all preceding non-option arguments to the right ... | |
591 | */ | |
592 | do arglist[optmark] = arglist[optmark - 1]; | |
593 | while( optmark-- > optbase ); | |
594 | ||
595 | /* reinstate the `--' marker, in its permuted location. | |
596 | */ | |
597 | arglist[optbase] = this_arg; | |
598 | } | |
599 | /* ... before finally bumping `optbase' past the `--' marker, | |
600 | * and returning the `all done' completion indicator. | |
601 | */ | |
602 | optind = ++optbase; | |
603 | return getopt_all_done; | |
604 | } | |
605 | } | |
606 | else if( mode < getopt_mode_long_only ) | |
607 | { | |
608 | /* it's not an explicit long option, and `getopt_long_only' isn't active, | |
609 | * so we must explicitly try to match it as a short option. | |
610 | */ | |
611 | mode = getopt_mode_standard; | |
612 | } | |
613 | ||
614 | if( mode >= getopt_mode_long ) | |
615 | { | |
616 | /* the current argument is a long form option, (either explicitly, | |
617 | * introduced by a double hyphen, or implicitly because we were called | |
618 | * by `getopt_long_only'); this is where we parse it. | |
619 | */ | |
620 | int lookup; | |
621 | int matched = -1; | |
622 | ||
623 | /* we need to fetch the `extra' function arguments, which are | |
624 | * specified for the `getopt_long' APIs. | |
625 | */ | |
626 | va_list refptr; | |
627 | va_start( refptr, optstring ); | |
628 | struct option *longopts = va_arg( refptr, struct option * ); | |
629 | int *optindex = va_arg( refptr, int * ); | |
630 | va_end( refptr ); | |
631 | ||
632 | /* ensuring that `optarg' does not inherit any junk, from parsing | |
633 | * preceding arguments ... | |
634 | */ | |
635 | optarg = NULL; | |
636 | for( lookup = 0; longopts && longopts[lookup].name; ++lookup ) | |
637 | { | |
638 | /* scan the list of defined long form options ... | |
639 | */ | |
640 | switch( getopt_match_long( nextchar, longopts[lookup].name ) ) | |
641 | { | |
642 | /* looking for possible matches for the current argument. | |
643 | */ | |
644 | case getopt_exact_match: | |
645 | /* | |
646 | * when an exact match is found, | |
647 | * return it immediately, setting `nextchar' to NULL, | |
648 | * to ensure we don't mistakenly try to match any | |
649 | * subsequent characters as short form options. | |
650 | */ | |
651 | nextchar = NULL; | |
652 | return getopt_resolved( mode, argc, argv, &argind, | |
653 | longopts, lookup, optindex, optstring ); | |
654 | ||
655 | case getopt_abbreviated_match: | |
656 | /* | |
657 | * but, for a partial (initial substring) match ... | |
658 | */ | |
659 | if( matched >= 0 ) | |
660 | { | |
661 | /* if this is not the first, then we have an ambiguity ... | |
662 | */ | |
663 | if( (mode == getopt_mode_long_only) | |
664 | /* | |
665 | * However, in the case of getopt_long_only(), if | |
666 | * the entire ambiguously matched string represents | |
667 | * a valid short option specification, then we may | |
668 | * proceed to interpret it as such. | |
669 | */ | |
670 | && getopt_verify( nextchar, optstring ) ) | |
671 | return getopt_parse( mode, argc, argv, optstring ); | |
672 | ||
673 | /* If we get to here, then the ambiguously matched | |
674 | * partial long option isn't valid for short option | |
675 | * evaluation; reset parser context to resume with | |
676 | * the following command line argument, diagnose | |
677 | * ambiguity, and bail out. | |
678 | */ | |
679 | optopt = 0; | |
680 | nextchar = NULL; | |
681 | optind = argind + 1; | |
682 | complain( "option `%s' is ambiguous", argv[argind] ); | |
683 | return getopt_unknown; | |
684 | } | |
685 | /* otherwise just note that we've found a possible match ... | |
686 | */ | |
687 | matched = lookup; | |
688 | } | |
689 | } | |
690 | if( matched >= 0 ) | |
691 | { | |
692 | /* if we get to here, then we found exactly one partial match, | |
693 | * so return it, as for an exact match. | |
694 | */ | |
695 | nextchar = NULL; | |
696 | return getopt_resolved( mode, argc, argv, &argind, | |
697 | longopts, matched, optindex, optstring ); | |
698 | } | |
699 | /* if here, then we had what SHOULD have been a long form option, | |
700 | * but it is unmatched ... | |
701 | */ | |
702 | if( (mode < getopt_mode_long_only) | |
703 | /* | |
704 | * ... although paradoxically, `mode == getopt_mode_long_only' | |
705 | * allows us to still try to match it as a short form option. | |
706 | */ | |
707 | || (getopt_verify( nextchar, optstring ) == 0) ) | |
708 | { | |
709 | /* When it cannot be matched, reset the parsing context to | |
710 | * resume from the next argument, diagnose the failed match, | |
711 | * and bail out. | |
712 | */ | |
713 | optopt = 0; | |
714 | nextchar = NULL; | |
715 | optind = argind + 1; | |
716 | complain( "unrecognised option `%s'", argv[argind] ); | |
717 | return getopt_unknown; | |
718 | } | |
719 | } | |
720 | /* fall through to handle standard short form options... | |
721 | * when the option argument format is neither explictly identified | |
722 | * as long, nor implicitly matched as such, and the argument isn't | |
723 | * just a bare hyphen, (which isn't an option), then we make one | |
724 | * recursive call to explicitly interpret it as short format. | |
725 | */ | |
726 | if( *nextchar ) | |
727 | return getopt_parse( mode, argc, argv, optstring ); | |
728 | } | |
729 | /* if we get to here, then we've parsed a non-option argument ... | |
730 | * in GNU compatibility mode, we step over it, so we can permute | |
731 | * any subsequent option arguments, but ... | |
732 | */ | |
733 | if( *optstring == getopt_switchar ) | |
734 | { | |
735 | /* if `optstring' begins with a `-' character, this special | |
736 | * GNU specific behaviour requires us to return the non-option | |
737 | * arguments in strict order, as pseudo-arguments to a special | |
738 | * option, with return value defined as `getopt_ordered'. | |
739 | */ | |
740 | nextchar = NULL; | |
741 | optind = argind + 1; | |
742 | optarg = argv[argind]; | |
743 | return getopt_ordered; | |
744 | } | |
745 | if( getopt_conventions( *optstring ) & getopt_posixly_correct ) | |
746 | /* | |
747 | * otherwise ... | |
748 | * for POSIXLY_CORRECT behaviour, or if `optstring' begins with | |
749 | * a `+' character, then we break out of the parsing loop, so that | |
750 | * the scan ends at the current argument, with no permutation. | |
751 | */ | |
752 | break; | |
753 | } | |
754 | /* fall through when all arguments have been evaluated, | |
755 | */ | |
756 | optind = optbase; | |
757 | return getopt_all_done; | |
758 | } | |
759 | ||
760 | /* All three public API entry points are trivially defined, | |
761 | * in terms of the internal `getopt_parse' function. | |
762 | */ | |
763 | int getopt( getopt_std_args ) | |
764 | { | |
765 | return getopt_parse( getopt_mode_standard, argc, argv, optstring ); | |
766 | } | |
767 | ||
768 | int getopt_long( getopt_std_args, const struct option *opts, int *index ) | |
769 | { | |
770 | return getopt_parse( getopt_mode_long, argc, argv, optstring, opts, index ); | |
771 | } | |
772 | ||
773 | int getopt_long_only( getopt_std_args, const struct option *opts, int *index ) | |
774 | { | |
775 | return getopt_parse( getopt_mode_long_only, argc, argv, optstring, opts, index ); | |
776 | } | |
777 | ||
778 | #ifdef __weak_alias | |
779 | /* | |
780 | * These Microsnot style uglified aliases are provided for compatibility | |
781 | * with the previous MinGW implementation of the getopt API. | |
782 | */ | |
783 | __weak_alias( getopt, _getopt ) | |
784 | __weak_alias( getopt_long, _getopt_long ) | |
785 | __weak_alias( getopt_long_only, _getopt_long_only ) | |
786 | #endif |
0 | /** | |
1 | * @file getopt.h | |
2 | * @copy 2012 MinGW.org project | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | * copy of this software and associated documentation files (the "Software"), | |
6 | * to deal in the Software without restriction, including without limitation | |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 | * and/or sell copies of the Software, and to permit persons to whom the | |
9 | * Software is furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice (including the next | |
12 | * paragraph) shall be included in all copies or substantial portions of the | |
13 | * Software. | |
14 | * | |
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
20 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
21 | * DEALINGS IN THE SOFTWARE. | |
22 | */ | |
23 | #ifndef _GETOPT_H | |
24 | #define _GETOPT_H | |
25 | ||
26 | /* | |
27 | * Defines constants and function prototypes required to implement | |
28 | * the `getopt', `getopt_long' and `getopt_long_only' APIs. | |
29 | */ | |
30 | ||
31 | #ifdef __cplusplus | |
32 | extern "C" { | |
33 | #endif | |
34 | ||
35 | extern int optind; /* index of first non-option in argv */ | |
36 | extern int optopt; /* single option character, as parsed */ | |
37 | extern int opterr; /* flag to enable built-in diagnostics... */ | |
38 | /* (user may set to zero, to suppress) */ | |
39 | ||
40 | extern char *optarg; /* pointer to argument of current option */ | |
41 | ||
42 | extern int getopt( int, char * const [], const char * ); | |
43 | ||
44 | #ifdef _BSD_SOURCE | |
45 | /* | |
46 | * BSD adds the non-standard `optreset' feature, for reinitialisation | |
47 | * of `getopt' parsing. We support this feature, for applications which | |
48 | * proclaim their BSD heritage, before including this header; however, | |
49 | * to maintain portability, developers are advised to avoid it. | |
50 | */ | |
51 | # define optreset __mingw_optreset | |
52 | ||
53 | extern int optreset; | |
54 | #endif | |
55 | #ifdef __cplusplus | |
56 | } | |
57 | #endif | |
58 | /* | |
59 | * POSIX requires the `getopt' API to be specified in `unistd.h'; | |
60 | * thus, `unistd.h' includes this header. However, we do not want | |
61 | * to expose the `getopt_long' or `getopt_long_only' APIs, when | |
62 | * included in this manner. Thus, close the standard __GETOPT_H__ | |
63 | * declarations block, and open an additional __GETOPT_LONG_H__ | |
64 | * specific block, only when *not* __UNISTD_H_SOURCED__, in which | |
65 | * to declare the extended API. | |
66 | */ | |
67 | #endif /* !defined(__GETOPT_H__) */ | |
68 | #if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) | |
69 | #define __GETOPT_LONG_H__ | |
70 | ||
71 | #ifdef __cplusplus | |
72 | extern "C" { | |
73 | #endif | |
74 | ||
75 | struct option /* specification for a long form option... */ | |
76 | { | |
77 | const char *name; /* option name, without leading hyphens */ | |
78 | int has_arg; /* does it take an argument? */ | |
79 | int *flag; /* where to save its status, or NULL */ | |
80 | int val; /* its associated status value */ | |
81 | }; | |
82 | ||
83 | enum /* permitted values for its `has_arg' field... */ | |
84 | { | |
85 | no_argument = 0, /* option never takes an argument */ | |
86 | required_argument, /* option always requires an argument */ | |
87 | optional_argument /* option may take an argument */ | |
88 | }; | |
89 | ||
90 | extern int getopt_long( int, char * const [], const char *, const struct option *, int * ); | |
91 | extern int getopt_long_only( int, char * const [], const char *, const struct option *, int * ); | |
92 | /* | |
93 | * Previous MinGW implementation had... | |
94 | */ | |
95 | #ifndef HAVE_DECL_GETOPT | |
96 | /* | |
97 | * ...for the long form API only; keep this for compatibility. | |
98 | */ | |
99 | # define HAVE_DECL_GETOPT 1 | |
100 | #endif | |
101 | ||
102 | #ifdef __cplusplus | |
103 | } | |
104 | #endif | |
105 | ||
106 | #endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */ |