]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.suse/kdb-ia64
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.suse / kdb-ia64
CommitLineData
2cb7cef9
BS
1From: SGI KDB Development <kdb@oss.sgi.com>
2Subject:/kdb-v4.4-2.6.27-rc8-ia64-1
3References: FATE#303971
4X-URL: ftp://oss.sgi.com/www/projects/kdb/download/v4.4/
5
6The KDB IA64 code.
7
8Acked-by: Bernhard Walle <bwalle@suse.de>
9
10---
11 arch/ia64/Kconfig.debug | 97
12 arch/ia64/Makefile | 1
13 arch/ia64/include/asm/ansidecl.h | 383 +
14 arch/ia64/include/asm/bfd.h | 5089 +++++++++++++++++++++
15 arch/ia64/include/asm/kdb.h | 45
16 arch/ia64/include/asm/kdb_break.h | 24
17 arch/ia64/include/asm/kdbprivate.h | 124
18 arch/ia64/include/asm/kmap_types.h | 3
19 arch/ia64/include/asm/kregs.h | 2
20 arch/ia64/kdb/ChangeLog | 1085 ++++
21 arch/ia64/kdb/Makefile | 21
22 arch/ia64/kdb/cpu-ia64-opc.c | 598 ++
23 arch/ia64/kdb/ia64-asmtab.c | 8585 +++++++++++++++++++++++++++++++++++++
24 arch/ia64/kdb/ia64-asmtab.h | 158
25 arch/ia64/kdb/ia64-dis.c | 312 +
26 arch/ia64/kdb/ia64-opc.c | 749 +++
27 arch/ia64/kdb/ia64-opc.h | 141
28 arch/ia64/kdb/ia64.h | 402 +
29 arch/ia64/kdb/kdb_cmds | 17
30 arch/ia64/kdb/kdba_bp.c | 841 +++
31 arch/ia64/kdb/kdba_bt.c | 285 +
32 arch/ia64/kdb/kdba_fru.c | 65
33 arch/ia64/kdb/kdba_id.c | 529 ++
34 arch/ia64/kdb/kdba_io.c | 661 ++
35 arch/ia64/kdb/kdba_jmp.S | 394 +
36 arch/ia64/kdb/kdba_pod.c | 64
37 arch/ia64/kdb/kdba_support.c | 1720 +++++++
38 arch/ia64/kernel/head.S | 7
39 arch/ia64/kernel/mca.c | 72
40 arch/ia64/kernel/smp.c | 23
41 arch/ia64/kernel/traps.c | 22
42 arch/ia64/kernel/unwind.c | 33
43 32 files changed, 22539 insertions(+), 13 deletions(-)
44
45--- a/arch/ia64/Kconfig.debug
46+++ b/arch/ia64/Kconfig.debug
47@@ -56,9 +56,106 @@ config IA64_DEBUG_IRQ
48 and restore instructions. It's useful for tracking down spinlock
49 problems, but slow! If you're unsure, select N.
50
51+config KDB
52+ bool "Built-in Kernel Debugger support"
53+ depends on DEBUG_KERNEL
54+ select KALLSYMS
55+ select KALLSYMS_ALL
56+ help
57+ This option provides a built-in kernel debugger. The built-in
58+ kernel debugger contains commands which allow memory to be examined,
59+ instructions to be disassembled and breakpoints to be set. For details,
60+ see Documentation/kdb/kdb.mm and the manual pages kdb_bt, kdb_ss, etc.
61+ Kdb can also be used via the serial port. Set up the system to
62+ have a serial console (see Documentation/serial-console.txt).
63+ The key sequence <escape>KDB on the serial port will cause the
64+ kernel debugger to be entered with input from the serial port and
65+ output to the serial console. If unsure, say N.
66+
67+config KDB_MODULES
68+ tristate "KDB modules"
69+ depends on KDB
70+ help
71+ KDB can be extended by adding your own modules, in directory
72+ kdb/modules. This option selects the way that these modules should
73+ be compiled, as free standing modules (select M) or built into the
74+ kernel (select Y). If unsure say M.
75+
76+config KDB_OFF
77+ bool "KDB off by default"
78+ depends on KDB
79+ help
80+ Normally kdb is activated by default, as long as CONFIG_KDB is set.
81+ If you want to ship a kernel with kdb support but only have kdb
82+ turned on when the user requests it then select this option. When
83+ compiled with CONFIG_KDB_OFF, kdb ignores all events unless you boot
84+ with kdb=on or you echo "1" > /proc/sys/kernel/kdb. This option also
85+ works in reverse, if kdb is normally activated, you can boot with
86+ kdb=off or echo "0" > /proc/sys/kernel/kdb to deactivate kdb. If
87+ unsure, say N.
88+
89+config KDB_CONTINUE_CATASTROPHIC
90+ int "KDB continues after catastrophic errors"
91+ depends on KDB
92+ default "0"
93+ help
94+ This integer controls the behaviour of kdb when the kernel gets a
95+ catastrophic error, i.e. for a panic, oops, NMI or other watchdog
96+ tripping. CONFIG_KDB_CONTINUE_CATASTROPHIC interacts with
97+ /proc/sys/kernel/kdb and CONFIG_LKCD_DUMP (if your kernel has the
98+ LKCD patch).
99+ When KDB is active (/proc/sys/kernel/kdb == 1) and a catastrophic
100+ error occurs, nothing extra happens until you type 'go'.
101+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time
102+ you type 'go', kdb warns you. The second time you type 'go', KDB
103+ tries to continue - no guarantees that the kernel is still usable.
104+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue - no
105+ guarantees that the kernel is still usable.
106+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. If your kernel has the LKCD
107+ patch and LKCD is configured to take a dump then KDB forces a dump.
108+ Whether or not a dump is taken, KDB forces a reboot.
109+ When KDB is not active (/proc/sys/kernel/kdb == 0) and a catastrophic
110+ error occurs, the following steps are automatic, no human
111+ intervention is required.
112+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default) or 1. KDB attempts
113+ to continue - no guarantees that the kernel is still usable.
114+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. If your kernel has the LKCD
115+ patch and LKCD is configured to take a dump then KDB automatically
116+ forces a dump. Whether or not a dump is taken, KDB forces a
117+ reboot.
118+ If you are not sure, say 0. Read Documentation/kdb/dump.txt before
119+ setting to 2.
120+
121+config KDB_USB
122+ bool "Support for USB Keyboard in KDB (OHCI and/or EHCI only)"
123+ depends on KDB && (USB_OHCI_HCD || USB_UHCI_HCD)
124+ help
125+ If you want to use kdb from USB keyboards then say Y here. If you
126+ say N then kdb can only be used from a PC (AT) keyboard or a serial
127+ console.
128+
129+config KDB_HARDWARE_BREAKPOINTS
130+ bool "Enable hardware breakpoints in KDB"
131+ depends on KDB
132+ default y
133+ help
134+ If you say Y here, KDB will allow you to use the IA64
135+ hardware watchpoint feature (via the bph and bpha
136+ commands). Currently, only data breakpoints are
137+ implemented.
138+
139 config SYSVIPC_COMPAT
140 bool
141 depends on COMPAT && SYSVIPC
142 default y
143
144+config KDB_KDUMP
145+ bool "Support for Kdump in KDB"
146+ depends on KDB
147+ select KEXEC
148+ default N
149+ help
150+ If you want to take Kdump kernel vmcore from KDB then say Y here.
151+ Of imsire. say N.
152+
153 endmenu
154--- a/arch/ia64/Makefile
155+++ b/arch/ia64/Makefile
156@@ -60,6 +60,7 @@ core-$(CONFIG_IA64_SGI_SN2) += arch/ia64
157 core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
158 core-$(CONFIG_KVM) += arch/ia64/kvm/
159
160+drivers-$(CONFIG_KDB) += arch/$(ARCH)/kdb/
161 drivers-$(CONFIG_PCI) += arch/ia64/pci/
162 drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/
163 drivers-$(CONFIG_IA64_HP_ZX1) += arch/ia64/hp/common/ arch/ia64/hp/zx1/
164--- /dev/null
165+++ b/arch/ia64/include/asm/ansidecl.h
166@@ -0,0 +1,383 @@
167+/* ANSI and traditional C compatability macros
168+ Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
169+ Free Software Foundation, Inc.
170+ This file is part of the GNU C Library.
171+
172+This program is free software; you can redistribute it and/or modify
173+it under the terms of the GNU General Public License as published by
174+the Free Software Foundation; either version 2 of the License, or
175+(at your option) any later version.
176+
177+This program is distributed in the hope that it will be useful,
178+but WITHOUT ANY WARRANTY; without even the implied warranty of
179+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
180+GNU General Public License for more details.
181+
182+You should have received a copy of the GNU General Public License
183+along with this program; if not, write to the Free Software
184+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
185+
186+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
187+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
188+ * required.
189+ * Keith Owens <kaos@sgi.com> 15 May 2006
190+ */
191+
192+/* ANSI and traditional C compatibility macros
193+
194+ ANSI C is assumed if __STDC__ is #defined.
195+
196+ Macro ANSI C definition Traditional C definition
197+ ----- ---- - ---------- ----------- - ----------
198+ ANSI_PROTOTYPES 1 not defined
199+ PTR `void *' `char *'
200+ PTRCONST `void *const' `char *'
201+ LONG_DOUBLE `long double' `double'
202+ const not defined `'
203+ volatile not defined `'
204+ signed not defined `'
205+ VA_START(ap, var) va_start(ap, var) va_start(ap)
206+
207+ Note that it is safe to write "void foo();" indicating a function
208+ with no return value, in all K+R compilers we have been able to test.
209+
210+ For declaring functions with prototypes, we also provide these:
211+
212+ PARAMS ((prototype))
213+ -- for functions which take a fixed number of arguments. Use this
214+ when declaring the function. When defining the function, write a
215+ K+R style argument list. For example:
216+
217+ char *strcpy PARAMS ((char *dest, char *source));
218+ ...
219+ char *
220+ strcpy (dest, source)
221+ char *dest;
222+ char *source;
223+ { ... }
224+
225+
226+ VPARAMS ((prototype, ...))
227+ -- for functions which take a variable number of arguments. Use
228+ PARAMS to declare the function, VPARAMS to define it. For example:
229+
230+ int printf PARAMS ((const char *format, ...));
231+ ...
232+ int
233+ printf VPARAMS ((const char *format, ...))
234+ {
235+ ...
236+ }
237+
238+ For writing functions which take variable numbers of arguments, we
239+ also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
240+ hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
241+ thoroughly than the simple VA_START() macro mentioned above.
242+
243+ VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
244+ Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
245+ corresponding to the list of fixed arguments. Then use va_arg
246+ normally to get the variable arguments, or pass your va_list object
247+ around. You do not declare the va_list yourself; VA_OPEN does it
248+ for you.
249+
250+ Here is a complete example:
251+
252+ int
253+ printf VPARAMS ((const char *format, ...))
254+ {
255+ int result;
256+
257+ VA_OPEN (ap, format);
258+ VA_FIXEDARG (ap, const char *, format);
259+
260+ result = vfprintf (stdout, format, ap);
261+ VA_CLOSE (ap);
262+
263+ return result;
264+ }
265+
266+
267+ You can declare variables either before or after the VA_OPEN,
268+ VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
269+ and end of a block. They must appear at the same nesting level,
270+ and any variables declared after VA_OPEN go out of scope at
271+ VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
272+ argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
273+ pairs in a single function in case you need to traverse the
274+ argument list more than once.
275+
276+ For ease of writing code which uses GCC extensions but needs to be
277+ portable to other compilers, we provide the GCC_VERSION macro that
278+ simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
279+ wrappers around __attribute__. Also, __extension__ will be #defined
280+ to nothing if it doesn't work. See below.
281+
282+ This header also defines a lot of obsolete macros:
283+ CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
284+ AND, DOTS, NOARGS. Don't use them. */
285+
286+#ifndef _ANSIDECL_H
287+#define _ANSIDECL_H 1
288+
289+/* Every source file includes this file,
290+ so they will all get the switch for lint. */
291+/* LINTLIBRARY */
292+
293+/* Using MACRO(x,y) in cpp #if conditionals does not work with some
294+ older preprocessors. Thus we can't define something like this:
295+
296+#define HAVE_GCC_VERSION(MAJOR, MINOR) \
297+ (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
298+
299+and then test "#if HAVE_GCC_VERSION(2,7)".
300+
301+So instead we use the macro below and test it against specific values. */
302+
303+/* This macro simplifies testing whether we are using gcc, and if it
304+ is of a particular minimum version. (Both major & minor numbers are
305+ significant.) This macro will evaluate to 0 if we are not using
306+ gcc at all. */
307+#ifndef GCC_VERSION
308+#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
309+#endif /* GCC_VERSION */
310+
311+#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
312+/* All known AIX compilers implement these things (but don't always
313+ define __STDC__). The RISC/OS MIPS compiler defines these things
314+ in SVR4 mode, but does not define __STDC__. */
315+/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
316+ C++ compilers, does not define __STDC__, though it acts as if this
317+ was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
318+
319+#define ANSI_PROTOTYPES 1
320+#define PTR void *
321+#define PTRCONST void *const
322+#define LONG_DOUBLE long double
323+
324+/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
325+ a #ifndef. */
326+#ifndef PARAMS
327+#define PARAMS(ARGS) ARGS
328+#endif
329+
330+#define VPARAMS(ARGS) ARGS
331+#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
332+
333+/* variadic function helper macros */
334+/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
335+ use without inhibiting further decls and without declaring an
336+ actual variable. */
337+#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
338+#define VA_CLOSE(AP) } va_end(AP); }
339+#define VA_FIXEDARG(AP, T, N) struct Qdmy
340+
341+#undef const
342+#undef volatile
343+#undef signed
344+
345+#ifdef __KERNEL__
346+#ifndef __STDC_VERSION__
347+#define __STDC_VERSION__ 0
348+#endif
349+#endif /* __KERNEL__ */
350+
351+/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
352+ it too, but it's not in C89. */
353+#undef inline
354+#if __STDC_VERSION__ > 199901L
355+/* it's a keyword */
356+#else
357+# if GCC_VERSION >= 2007
358+# define inline __inline__ /* __inline__ prevents -pedantic warnings */
359+# else
360+# define inline /* nothing */
361+# endif
362+#endif
363+
364+/* These are obsolete. Do not use. */
365+#ifndef IN_GCC
366+#define CONST const
367+#define VOLATILE volatile
368+#define SIGNED signed
369+
370+#define PROTO(type, name, arglist) type name arglist
371+#define EXFUN(name, proto) name proto
372+#define DEFUN(name, arglist, args) name(args)
373+#define DEFUN_VOID(name) name(void)
374+#define AND ,
375+#define DOTS , ...
376+#define NOARGS void
377+#endif /* ! IN_GCC */
378+
379+#else /* Not ANSI C. */
380+
381+#undef ANSI_PROTOTYPES
382+#define PTR char *
383+#define PTRCONST PTR
384+#define LONG_DOUBLE double
385+
386+#define PARAMS(args) ()
387+#define VPARAMS(args) (va_alist) va_dcl
388+#define VA_START(va_list, var) va_start(va_list)
389+
390+#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
391+#define VA_CLOSE(AP) } va_end(AP); }
392+#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
393+
394+/* some systems define these in header files for non-ansi mode */
395+#undef const
396+#undef volatile
397+#undef signed
398+#undef inline
399+#define const
400+#define volatile
401+#define signed
402+#define inline
403+
404+#ifndef IN_GCC
405+#define CONST
406+#define VOLATILE
407+#define SIGNED
408+
409+#define PROTO(type, name, arglist) type name ()
410+#define EXFUN(name, proto) name()
411+#define DEFUN(name, arglist, args) name arglist args;
412+#define DEFUN_VOID(name) name()
413+#define AND ;
414+#define DOTS
415+#define NOARGS
416+#endif /* ! IN_GCC */
417+
418+#endif /* ANSI C. */
419+
420+/* Define macros for some gcc attributes. This permits us to use the
421+ macros freely, and know that they will come into play for the
422+ version of gcc in which they are supported. */
423+
424+#if (GCC_VERSION < 2007)
425+# define __attribute__(x)
426+#endif
427+
428+/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
429+#ifndef ATTRIBUTE_MALLOC
430+# if (GCC_VERSION >= 2096)
431+# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
432+# else
433+# define ATTRIBUTE_MALLOC
434+# endif /* GNUC >= 2.96 */
435+#endif /* ATTRIBUTE_MALLOC */
436+
437+/* Attributes on labels were valid as of gcc 2.93. */
438+#ifndef ATTRIBUTE_UNUSED_LABEL
439+# if (!defined (__cplusplus) && GCC_VERSION >= 2093)
440+# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
441+# else
442+# define ATTRIBUTE_UNUSED_LABEL
443+# endif /* !__cplusplus && GNUC >= 2.93 */
444+#endif /* ATTRIBUTE_UNUSED_LABEL */
445+
446+#ifndef ATTRIBUTE_UNUSED
447+#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
448+#endif /* ATTRIBUTE_UNUSED */
449+
450+/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
451+ identifier name. */
452+#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
453+# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
454+#else /* !__cplusplus || GNUC >= 3.4 */
455+# define ARG_UNUSED(NAME) NAME
456+#endif /* !__cplusplus || GNUC >= 3.4 */
457+
458+#ifndef ATTRIBUTE_NORETURN
459+#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
460+#endif /* ATTRIBUTE_NORETURN */
461+
462+/* Attribute `nonnull' was valid as of gcc 3.3. */
463+#ifndef ATTRIBUTE_NONNULL
464+# if (GCC_VERSION >= 3003)
465+# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
466+# else
467+# define ATTRIBUTE_NONNULL(m)
468+# endif /* GNUC >= 3.3 */
469+#endif /* ATTRIBUTE_NONNULL */
470+
471+/* Attribute `pure' was valid as of gcc 3.0. */
472+#ifndef ATTRIBUTE_PURE
473+# if (GCC_VERSION >= 3000)
474+# define ATTRIBUTE_PURE __attribute__ ((__pure__))
475+# else
476+# define ATTRIBUTE_PURE
477+# endif /* GNUC >= 3.0 */
478+#endif /* ATTRIBUTE_PURE */
479+
480+/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
481+ This was the case for the `printf' format attribute by itself
482+ before GCC 3.3, but as of 3.3 we need to add the `nonnull'
483+ attribute to retain this behavior. */
484+#ifndef ATTRIBUTE_PRINTF
485+#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
486+#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
487+#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
488+#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
489+#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
490+#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
491+#endif /* ATTRIBUTE_PRINTF */
492+
493+/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
494+ a function pointer. Format attributes were allowed on function
495+ pointers as of gcc 3.1. */
496+#ifndef ATTRIBUTE_FPTR_PRINTF
497+# if (GCC_VERSION >= 3001)
498+# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
499+# else
500+# define ATTRIBUTE_FPTR_PRINTF(m, n)
501+# endif /* GNUC >= 3.1 */
502+# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
503+# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
504+# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
505+# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
506+# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
507+#endif /* ATTRIBUTE_FPTR_PRINTF */
508+
509+/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
510+ NULL format specifier was allowed as of gcc 3.3. */
511+#ifndef ATTRIBUTE_NULL_PRINTF
512+# if (GCC_VERSION >= 3003)
513+# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
514+# else
515+# define ATTRIBUTE_NULL_PRINTF(m, n)
516+# endif /* GNUC >= 3.3 */
517+# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
518+# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
519+# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
520+# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
521+# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
522+#endif /* ATTRIBUTE_NULL_PRINTF */
523+
524+/* Attribute `sentinel' was valid as of gcc 3.5. */
525+#ifndef ATTRIBUTE_SENTINEL
526+# if (GCC_VERSION >= 3005)
527+# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
528+# else
529+# define ATTRIBUTE_SENTINEL
530+# endif /* GNUC >= 3.5 */
531+#endif /* ATTRIBUTE_SENTINEL */
532+
533+
534+#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
535+# if (GCC_VERSION >= 3000)
536+# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
537+# else
538+# define ATTRIBUTE_ALIGNED_ALIGNOF(m)
539+# endif /* GNUC >= 3.0 */
540+#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
541+
542+/* We use __extension__ in some places to suppress -pedantic warnings
543+ about GCC extensions. This feature didn't work properly before
544+ gcc 2.8. */
545+#if GCC_VERSION < 2008
546+#define __extension__
547+#endif
548+
549+#endif /* ansidecl.h */
550--- /dev/null
551+++ b/arch/ia64/include/asm/bfd.h
552@@ -0,0 +1,5089 @@
553+/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
554+ generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c",
555+ "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c",
556+ "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c",
557+ "linker.c" and "simple.c".
558+ Run "make headers" in your build bfd/ to regenerate. */
559+
560+/* Main header file for the bfd library -- portable access to object files.
561+
562+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
563+ 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
564+
565+ Contributed by Cygnus Support.
566+
567+ This file is part of BFD, the Binary File Descriptor library.
568+
569+ This program is free software; you can redistribute it and/or modify
570+ it under the terms of the GNU General Public License as published by
571+ the Free Software Foundation; either version 2 of the License, or
572+ (at your option) any later version.
573+
574+ This program is distributed in the hope that it will be useful,
575+ but WITHOUT ANY WARRANTY; without even the implied warranty of
576+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
577+ GNU General Public License for more details.
578+
579+ You should have received a copy of the GNU General Public License
580+ along with this program; if not, write to the Free Software
581+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
582+
583+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
584+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
585+ * required.
586+ * Keith Owens <kaos@sgi.com> 15 May 2006
587+ */
588+
589+#ifndef __BFD_H_SEEN__
590+#define __BFD_H_SEEN__
591+
592+#ifdef __cplusplus
593+extern "C" {
594+#endif
595+
596+#ifdef __KERNEL__
597+#include <asm/ansidecl.h>
598+#else /* __KERNEL__ */
599+#include "ansidecl.h"
600+#include "symcat.h"
601+#endif /* __KERNEL__ */
602+#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
603+#ifndef SABER
604+/* This hack is to avoid a problem with some strict ANSI C preprocessors.
605+ The problem is, "32_" is not a valid preprocessing token, and we don't
606+ want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
607+ cause the inner CONCAT2 macros to be evaluated first, producing
608+ still-valid pp-tokens. Then the final concatenation can be done. */
609+#undef CONCAT4
610+#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
611+#endif
612+#endif
613+
614+/* The word size used by BFD on the host. This may be 64 with a 32
615+ bit target if the host is 64 bit, or if other 64 bit targets have
616+ been selected with --enable-targets, or if --enable-64-bit-bfd. */
617+#define BFD_ARCH_SIZE 64
618+
619+/* The word size of the default bfd target. */
620+#define BFD_DEFAULT_TARGET_SIZE 64
621+
622+#define BFD_HOST_64BIT_LONG 1
623+#define BFD_HOST_LONG_LONG 1
624+#if 1
625+#define BFD_HOST_64_BIT long
626+#define BFD_HOST_U_64_BIT unsigned long
627+typedef BFD_HOST_64_BIT bfd_int64_t;
628+typedef BFD_HOST_U_64_BIT bfd_uint64_t;
629+#endif
630+
631+#if BFD_ARCH_SIZE >= 64
632+#define BFD64
633+#endif
634+
635+#ifndef INLINE
636+#if __GNUC__ >= 2
637+#define INLINE __inline__
638+#else
639+#define INLINE
640+#endif
641+#endif
642+
643+/* Forward declaration. */
644+typedef struct bfd bfd;
645+
646+/* Boolean type used in bfd. Too many systems define their own
647+ versions of "boolean" for us to safely typedef a "boolean" of
648+ our own. Using an enum for "bfd_boolean" has its own set of
649+ problems, with strange looking casts required to avoid warnings
650+ on some older compilers. Thus we just use an int.
651+
652+ General rule: Functions which are bfd_boolean return TRUE on
653+ success and FALSE on failure (unless they're a predicate). */
654+
655+typedef int bfd_boolean;
656+#undef FALSE
657+#undef TRUE
658+#define FALSE 0
659+#define TRUE 1
660+
661+#ifdef BFD64
662+
663+#ifndef BFD_HOST_64_BIT
664+ #error No 64 bit integer type available
665+#endif /* ! defined (BFD_HOST_64_BIT) */
666+
667+typedef BFD_HOST_U_64_BIT bfd_vma;
668+typedef BFD_HOST_64_BIT bfd_signed_vma;
669+typedef BFD_HOST_U_64_BIT bfd_size_type;
670+typedef BFD_HOST_U_64_BIT symvalue;
671+
672+#ifndef fprintf_vma
673+#if BFD_HOST_64BIT_LONG
674+#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
675+#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
676+#else
677+#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
678+#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
679+#define fprintf_vma(s,x) \
680+ fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
681+#define sprintf_vma(s,x) \
682+ sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
683+#endif
684+#endif
685+
686+#else /* not BFD64 */
687+
688+/* Represent a target address. Also used as a generic unsigned type
689+ which is guaranteed to be big enough to hold any arithmetic types
690+ we need to deal with. */
691+typedef unsigned long bfd_vma;
692+
693+/* A generic signed type which is guaranteed to be big enough to hold any
694+ arithmetic types we need to deal with. Can be assumed to be compatible
695+ with bfd_vma in the same way that signed and unsigned ints are compatible
696+ (as parameters, in assignment, etc). */
697+typedef long bfd_signed_vma;
698+
699+typedef unsigned long symvalue;
700+typedef unsigned long bfd_size_type;
701+
702+/* Print a bfd_vma x on stream s. */
703+#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
704+#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
705+
706+#endif /* not BFD64 */
707+
708+#define HALF_BFD_SIZE_TYPE \
709+ (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
710+
711+#ifndef BFD_HOST_64_BIT
712+/* Fall back on a 32 bit type. The idea is to make these types always
713+ available for function return types, but in the case that
714+ BFD_HOST_64_BIT is undefined such a function should abort or
715+ otherwise signal an error. */
716+typedef bfd_signed_vma bfd_int64_t;
717+typedef bfd_vma bfd_uint64_t;
718+#endif
719+
720+/* An offset into a file. BFD always uses the largest possible offset
721+ based on the build time availability of fseek, fseeko, or fseeko64. */
722+typedef BFD_HOST_64_BIT file_ptr;
723+typedef unsigned BFD_HOST_64_BIT ufile_ptr;
724+
725+extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
726+extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
727+
728+#define printf_vma(x) fprintf_vma(stdout,x)
729+#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
730+
731+typedef unsigned int flagword; /* 32 bits of flags */
732+typedef unsigned char bfd_byte;
733+
734+typedef int (*bfd_qsort_closure_func) (const void *, const void *, const void *);
735+extern void bfd_qsort (void *base, bfd_size_type nmemb, bfd_size_type size,
736+ bfd_qsort_closure_func cmp, void *closure);
737+\f
738+/* File formats. */
739+
740+typedef enum bfd_format
741+{
742+ bfd_unknown = 0, /* File format is unknown. */
743+ bfd_object, /* Linker/assembler/compiler output. */
744+ bfd_archive, /* Object archive file. */
745+ bfd_core, /* Core dump. */
746+ bfd_type_end /* Marks the end; don't use it! */
747+}
748+bfd_format;
749+
750+/* Values that may appear in the flags field of a BFD. These also
751+ appear in the object_flags field of the bfd_target structure, where
752+ they indicate the set of flags used by that backend (not all flags
753+ are meaningful for all object file formats) (FIXME: at the moment,
754+ the object_flags values have mostly just been copied from backend
755+ to another, and are not necessarily correct). */
756+
757+/* No flags. */
758+#define BFD_NO_FLAGS 0x00
759+
760+/* BFD contains relocation entries. */
761+#define HAS_RELOC 0x01
762+
763+/* BFD is directly executable. */
764+#define EXEC_P 0x02
765+
766+/* BFD has line number information (basically used for F_LNNO in a
767+ COFF header). */
768+#define HAS_LINENO 0x04
769+
770+/* BFD has debugging information. */
771+#define HAS_DEBUG 0x08
772+
773+/* BFD has symbols. */
774+#define HAS_SYMS 0x10
775+
776+/* BFD has local symbols (basically used for F_LSYMS in a COFF
777+ header). */
778+#define HAS_LOCALS 0x20
779+
780+/* BFD is a dynamic object. */
781+#define DYNAMIC 0x40
782+
783+/* Text section is write protected (if D_PAGED is not set, this is
784+ like an a.out NMAGIC file) (the linker sets this by default, but
785+ clears it for -r or -N). */
786+#define WP_TEXT 0x80
787+
788+/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
789+ linker sets this by default, but clears it for -r or -n or -N). */
790+#define D_PAGED 0x100
791+
792+/* BFD is relaxable (this means that bfd_relax_section may be able to
793+ do something) (sometimes bfd_relax_section can do something even if
794+ this is not set). */
795+#define BFD_IS_RELAXABLE 0x200
796+
797+/* This may be set before writing out a BFD to request using a
798+ traditional format. For example, this is used to request that when
799+ writing out an a.out object the symbols not be hashed to eliminate
800+ duplicates. */
801+#define BFD_TRADITIONAL_FORMAT 0x400
802+
803+/* This flag indicates that the BFD contents are actually cached in
804+ memory. If this is set, iostream points to a bfd_in_memory struct. */
805+#define BFD_IN_MEMORY 0x800
806+
807+/* The sections in this BFD specify a memory page. */
808+#define HAS_LOAD_PAGE 0x1000
809+
810+/* This BFD has been created by the linker and doesn't correspond
811+ to any input file. */
812+#define BFD_LINKER_CREATED 0x2000
813+\f
814+/* Symbols and relocation. */
815+
816+/* A count of carsyms (canonical archive symbols). */
817+typedef unsigned long symindex;
818+
819+/* How to perform a relocation. */
820+typedef const struct reloc_howto_struct reloc_howto_type;
821+
822+#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
823+
824+/* General purpose part of a symbol X;
825+ target specific parts are in libcoff.h, libaout.h, etc. */
826+
827+#define bfd_get_section(x) ((x)->section)
828+#define bfd_get_output_section(x) ((x)->section->output_section)
829+#define bfd_set_section(x,y) ((x)->section) = (y)
830+#define bfd_asymbol_base(x) ((x)->section->vma)
831+#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
832+#define bfd_asymbol_name(x) ((x)->name)
833+/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
834+#define bfd_asymbol_bfd(x) ((x)->the_bfd)
835+#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
836+
837+/* A canonical archive symbol. */
838+/* This is a type pun with struct ranlib on purpose! */
839+typedef struct carsym
840+{
841+ char *name;
842+ file_ptr file_offset; /* Look here to find the file. */
843+}
844+carsym; /* To make these you call a carsymogen. */
845+
846+/* Used in generating armaps (archive tables of contents).
847+ Perhaps just a forward definition would do? */
848+struct orl /* Output ranlib. */
849+{
850+ char **name; /* Symbol name. */
851+ union
852+ {
853+ file_ptr pos;
854+ bfd *abfd;
855+ } u; /* bfd* or file position. */
856+ int namidx; /* Index into string table. */
857+};
858+\f
859+/* Linenumber stuff. */
860+typedef struct lineno_cache_entry
861+{
862+ unsigned int line_number; /* Linenumber from start of function. */
863+ union
864+ {
865+ struct bfd_symbol *sym; /* Function name. */
866+ bfd_vma offset; /* Offset into section. */
867+ } u;
868+}
869+alent;
870+\f
871+/* Object and core file sections. */
872+
873+#define align_power(addr, align) \
874+ (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
875+
876+typedef struct bfd_section *sec_ptr;
877+
878+#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
879+#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
880+#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
881+#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
882+#define bfd_section_name(bfd, ptr) ((ptr)->name)
883+#define bfd_section_size(bfd, ptr) ((ptr)->size)
884+#define bfd_get_section_size(ptr) ((ptr)->size)
885+#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
886+#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
887+#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
888+#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
889+#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
890+
891+#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
892+
893+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
894+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
895+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
896+/* Find the address one past the end of SEC. */
897+#define bfd_get_section_limit(bfd, sec) \
898+ (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
899+ / bfd_octets_per_byte (bfd))
900+
901+typedef struct stat stat_type;
902+\f
903+typedef enum bfd_print_symbol
904+{
905+ bfd_print_symbol_name,
906+ bfd_print_symbol_more,
907+ bfd_print_symbol_all
908+} bfd_print_symbol_type;
909+
910+/* Information about a symbol that nm needs. */
911+
912+typedef struct _symbol_info
913+{
914+ symvalue value;
915+ char type;
916+ const char *name; /* Symbol name. */
917+ unsigned char stab_type; /* Stab type. */
918+ char stab_other; /* Stab other. */
919+ short stab_desc; /* Stab desc. */
920+ const char *stab_name; /* String for stab type. */
921+} symbol_info;
922+
923+/* Get the name of a stabs type code. */
924+
925+extern const char *bfd_get_stab_name (int);
926+\f
927+/* Hash table routines. There is no way to free up a hash table. */
928+
929+/* An element in the hash table. Most uses will actually use a larger
930+ structure, and an instance of this will be the first field. */
931+
932+struct bfd_hash_entry
933+{
934+ /* Next entry for this hash code. */
935+ struct bfd_hash_entry *next;
936+ /* String being hashed. */
937+ const char *string;
938+ /* Hash code. This is the full hash code, not the index into the
939+ table. */
940+ unsigned long hash;
941+};
942+
943+/* A hash table. */
944+
945+struct bfd_hash_table
946+{
947+ /* The hash array. */
948+ struct bfd_hash_entry **table;
949+ /* The number of slots in the hash table. */
950+ unsigned int size;
951+ /* A function used to create new elements in the hash table. The
952+ first entry is itself a pointer to an element. When this
953+ function is first invoked, this pointer will be NULL. However,
954+ having the pointer permits a hierarchy of method functions to be
955+ built each of which calls the function in the superclass. Thus
956+ each function should be written to allocate a new block of memory
957+ only if the argument is NULL. */
958+ struct bfd_hash_entry *(*newfunc)
959+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
960+ /* An objalloc for this hash table. This is a struct objalloc *,
961+ but we use void * to avoid requiring the inclusion of objalloc.h. */
962+ void *memory;
963+};
964+
965+/* Initialize a hash table. */
966+extern bfd_boolean bfd_hash_table_init
967+ (struct bfd_hash_table *,
968+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
969+ struct bfd_hash_table *,
970+ const char *));
971+
972+/* Initialize a hash table specifying a size. */
973+extern bfd_boolean bfd_hash_table_init_n
974+ (struct bfd_hash_table *,
975+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
976+ struct bfd_hash_table *,
977+ const char *),
978+ unsigned int size);
979+
980+/* Free up a hash table. */
981+extern void bfd_hash_table_free
982+ (struct bfd_hash_table *);
983+
984+/* Look up a string in a hash table. If CREATE is TRUE, a new entry
985+ will be created for this string if one does not already exist. The
986+ COPY argument must be TRUE if this routine should copy the string
987+ into newly allocated memory when adding an entry. */
988+extern struct bfd_hash_entry *bfd_hash_lookup
989+ (struct bfd_hash_table *, const char *, bfd_boolean create,
990+ bfd_boolean copy);
991+
992+/* Replace an entry in a hash table. */
993+extern void bfd_hash_replace
994+ (struct bfd_hash_table *, struct bfd_hash_entry *old,
995+ struct bfd_hash_entry *nw);
996+
997+/* Base method for creating a hash table entry. */
998+extern struct bfd_hash_entry *bfd_hash_newfunc
999+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1000+
1001+/* Grab some space for a hash table entry. */
1002+extern void *bfd_hash_allocate
1003+ (struct bfd_hash_table *, unsigned int);
1004+
1005+/* Traverse a hash table in a random order, calling a function on each
1006+ element. If the function returns FALSE, the traversal stops. The
1007+ INFO argument is passed to the function. */
1008+extern void bfd_hash_traverse
1009+ (struct bfd_hash_table *,
1010+ bfd_boolean (*) (struct bfd_hash_entry *, void *),
1011+ void *info);
1012+
1013+/* Allows the default size of a hash table to be configured. New hash
1014+ tables allocated using bfd_hash_table_init will be created with
1015+ this size. */
1016+extern void bfd_hash_set_default_size (bfd_size_type);
1017+
1018+/* This structure is used to keep track of stabs in sections
1019+ information while linking. */
1020+
1021+struct stab_info
1022+{
1023+ /* A hash table used to hold stabs strings. */
1024+ struct bfd_strtab_hash *strings;
1025+ /* The header file hash table. */
1026+ struct bfd_hash_table includes;
1027+ /* The first .stabstr section. */
1028+ struct bfd_section *stabstr;
1029+};
1030+
1031+#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
1032+
1033+/* User program access to BFD facilities. */
1034+
1035+/* Direct I/O routines, for programs which know more about the object
1036+ file than BFD does. Use higher level routines if possible. */
1037+
1038+extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
1039+extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
1040+extern int bfd_seek (bfd *, file_ptr, int);
1041+extern file_ptr bfd_tell (bfd *);
1042+extern int bfd_flush (bfd *);
1043+extern int bfd_stat (bfd *, struct stat *);
1044+
1045+/* Deprecated old routines. */
1046+#if __GNUC__
1047+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1048+ (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__), \
1049+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1050+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1051+ (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
1052+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1053+#else
1054+#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1055+ (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
1056+ bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1057+#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1058+ (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
1059+ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1060+#endif
1061+extern void warn_deprecated (const char *, const char *, int, const char *);
1062+
1063+/* Cast from const char * to char * so that caller can assign to
1064+ a char * without a warning. */
1065+#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
1066+#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
1067+#define bfd_get_format(abfd) ((abfd)->format)
1068+#define bfd_get_target(abfd) ((abfd)->xvec->name)
1069+#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
1070+#define bfd_family_coff(abfd) \
1071+ (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
1072+ bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
1073+#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
1074+#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
1075+#define bfd_header_big_endian(abfd) \
1076+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
1077+#define bfd_header_little_endian(abfd) \
1078+ ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
1079+#define bfd_get_file_flags(abfd) ((abfd)->flags)
1080+#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
1081+#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
1082+#define bfd_my_archive(abfd) ((abfd)->my_archive)
1083+#define bfd_has_map(abfd) ((abfd)->has_armap)
1084+
1085+#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
1086+#define bfd_usrdata(abfd) ((abfd)->usrdata)
1087+
1088+#define bfd_get_start_address(abfd) ((abfd)->start_address)
1089+#define bfd_get_symcount(abfd) ((abfd)->symcount)
1090+#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
1091+#define bfd_count_sections(abfd) ((abfd)->section_count)
1092+
1093+#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
1094+
1095+#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
1096+
1097+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
1098+
1099+extern bfd_boolean bfd_cache_close
1100+ (bfd *abfd);
1101+/* NB: This declaration should match the autogenerated one in libbfd.h. */
1102+
1103+extern bfd_boolean bfd_cache_close_all (void);
1104+
1105+extern bfd_boolean bfd_record_phdr
1106+ (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
1107+ bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
1108+
1109+/* Byte swapping routines. */
1110+
1111+bfd_uint64_t bfd_getb64 (const void *);
1112+bfd_uint64_t bfd_getl64 (const void *);
1113+bfd_int64_t bfd_getb_signed_64 (const void *);
1114+bfd_int64_t bfd_getl_signed_64 (const void *);
1115+bfd_vma bfd_getb32 (const void *);
1116+bfd_vma bfd_getl32 (const void *);
1117+bfd_signed_vma bfd_getb_signed_32 (const void *);
1118+bfd_signed_vma bfd_getl_signed_32 (const void *);
1119+bfd_vma bfd_getb16 (const void *);
1120+bfd_vma bfd_getl16 (const void *);
1121+bfd_signed_vma bfd_getb_signed_16 (const void *);
1122+bfd_signed_vma bfd_getl_signed_16 (const void *);
1123+void bfd_putb64 (bfd_uint64_t, void *);
1124+void bfd_putl64 (bfd_uint64_t, void *);
1125+void bfd_putb32 (bfd_vma, void *);
1126+void bfd_putl32 (bfd_vma, void *);
1127+void bfd_putb16 (bfd_vma, void *);
1128+void bfd_putl16 (bfd_vma, void *);
1129+
1130+/* Byte swapping routines which take size and endiannes as arguments. */
1131+
1132+bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
1133+void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
1134+
1135+extern bfd_boolean bfd_section_already_linked_table_init (void);
1136+extern void bfd_section_already_linked_table_free (void);
1137+\f
1138+/* Externally visible ECOFF routines. */
1139+
1140+#if defined(__STDC__) || defined(ALMOST_STDC)
1141+struct ecoff_debug_info;
1142+struct ecoff_debug_swap;
1143+struct ecoff_extr;
1144+struct bfd_symbol;
1145+struct bfd_link_info;
1146+struct bfd_link_hash_entry;
1147+struct bfd_elf_version_tree;
1148+#endif
1149+extern bfd_vma bfd_ecoff_get_gp_value
1150+ (bfd * abfd);
1151+extern bfd_boolean bfd_ecoff_set_gp_value
1152+ (bfd *abfd, bfd_vma gp_value);
1153+extern bfd_boolean bfd_ecoff_set_regmasks
1154+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
1155+ unsigned long *cprmask);
1156+extern void *bfd_ecoff_debug_init
1157+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
1158+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1159+extern void bfd_ecoff_debug_free
1160+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1161+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1162+extern bfd_boolean bfd_ecoff_debug_accumulate
1163+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1164+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1165+ struct ecoff_debug_info *input_debug,
1166+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
1167+extern bfd_boolean bfd_ecoff_debug_accumulate_other
1168+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1169+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1170+ struct bfd_link_info *);
1171+extern bfd_boolean bfd_ecoff_debug_externals
1172+ (bfd *abfd, struct ecoff_debug_info *debug,
1173+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
1174+ bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
1175+ void (*set_index) (struct bfd_symbol *, bfd_size_type));
1176+extern bfd_boolean bfd_ecoff_debug_one_external
1177+ (bfd *abfd, struct ecoff_debug_info *debug,
1178+ const struct ecoff_debug_swap *swap, const char *name,
1179+ struct ecoff_extr *esym);
1180+extern bfd_size_type bfd_ecoff_debug_size
1181+ (bfd *abfd, struct ecoff_debug_info *debug,
1182+ const struct ecoff_debug_swap *swap);
1183+extern bfd_boolean bfd_ecoff_write_debug
1184+ (bfd *abfd, struct ecoff_debug_info *debug,
1185+ const struct ecoff_debug_swap *swap, file_ptr where);
1186+extern bfd_boolean bfd_ecoff_write_accumulated_debug
1187+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
1188+ const struct ecoff_debug_swap *swap,
1189+ struct bfd_link_info *info, file_ptr where);
1190+
1191+/* Externally visible ELF routines. */
1192+
1193+struct bfd_link_needed_list
1194+{
1195+ struct bfd_link_needed_list *next;
1196+ bfd *by;
1197+ const char *name;
1198+};
1199+
1200+enum dynamic_lib_link_class {
1201+ DYN_NORMAL = 0,
1202+ DYN_AS_NEEDED = 1,
1203+ DYN_DT_NEEDED = 2,
1204+ DYN_NO_ADD_NEEDED = 4,
1205+ DYN_NO_NEEDED = 8
1206+};
1207+
1208+extern bfd_boolean bfd_elf_record_link_assignment
1209+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
1210+ bfd_boolean);
1211+extern struct bfd_link_needed_list *bfd_elf_get_needed_list
1212+ (bfd *, struct bfd_link_info *);
1213+extern bfd_boolean bfd_elf_get_bfd_needed_list
1214+ (bfd *, struct bfd_link_needed_list **);
1215+extern bfd_boolean bfd_elf_size_dynamic_sections
1216+ (bfd *, const char *, const char *, const char *, const char * const *,
1217+ struct bfd_link_info *, struct bfd_section **,
1218+ struct bfd_elf_version_tree *);
1219+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
1220+ (bfd *, struct bfd_link_info *);
1221+extern void bfd_elf_set_dt_needed_name
1222+ (bfd *, const char *);
1223+extern const char *bfd_elf_get_dt_soname
1224+ (bfd *);
1225+extern void bfd_elf_set_dyn_lib_class
1226+ (bfd *, int);
1227+extern int bfd_elf_get_dyn_lib_class
1228+ (bfd *);
1229+extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
1230+ (bfd *, struct bfd_link_info *);
1231+extern bfd_boolean bfd_elf_discard_info
1232+ (bfd *, struct bfd_link_info *);
1233+extern unsigned int _bfd_elf_default_action_discarded
1234+ (struct bfd_section *);
1235+
1236+/* Return an upper bound on the number of bytes required to store a
1237+ copy of ABFD's program header table entries. Return -1 if an error
1238+ occurs; bfd_get_error will return an appropriate code. */
1239+extern long bfd_get_elf_phdr_upper_bound
1240+ (bfd *abfd);
1241+
1242+/* Copy ABFD's program header table entries to *PHDRS. The entries
1243+ will be stored as an array of Elf_Internal_Phdr structures, as
1244+ defined in include/elf/internal.h. To find out how large the
1245+ buffer needs to be, call bfd_get_elf_phdr_upper_bound.
1246+
1247+ Return the number of program header table entries read, or -1 if an
1248+ error occurs; bfd_get_error will return an appropriate code. */
1249+extern int bfd_get_elf_phdrs
1250+ (bfd *abfd, void *phdrs);
1251+
1252+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
1253+ reconstruct an ELF file by reading the segments out of remote memory
1254+ based on the ELF file header at EHDR_VMA and the ELF program headers it
1255+ points to. If not null, *LOADBASEP is filled in with the difference
1256+ between the VMAs from which the segments were read, and the VMAs the
1257+ file headers (and hence BFD's idea of each section's VMA) put them at.
1258+
1259+ The function TARGET_READ_MEMORY is called to copy LEN bytes from the
1260+ remote memory at target address VMA into the local buffer at MYADDR; it
1261+ should return zero on success or an `errno' code on failure. TEMPL must
1262+ be a BFD for an ELF target with the word size and byte order found in
1263+ the remote memory. */
1264+extern bfd *bfd_elf_bfd_from_remote_memory
1265+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
1266+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
1267+
1268+/* Return the arch_size field of an elf bfd, or -1 if not elf. */
1269+extern int bfd_get_arch_size
1270+ (bfd *);
1271+
1272+/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
1273+extern int bfd_get_sign_extend_vma
1274+ (bfd *);
1275+
1276+extern struct bfd_section *_bfd_elf_tls_setup
1277+ (bfd *, struct bfd_link_info *);
1278+
1279+extern void _bfd_fix_excluded_sec_syms
1280+ (bfd *, struct bfd_link_info *);
1281+
1282+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
1283+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1284+ char **);
1285+
1286+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
1287+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1288+ char **);
1289+
1290+/* SunOS shared library support routines for the linker. */
1291+
1292+extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
1293+ (bfd *, struct bfd_link_info *);
1294+extern bfd_boolean bfd_sunos_record_link_assignment
1295+ (bfd *, struct bfd_link_info *, const char *);
1296+extern bfd_boolean bfd_sunos_size_dynamic_sections
1297+ (bfd *, struct bfd_link_info *, struct bfd_section **,
1298+ struct bfd_section **, struct bfd_section **);
1299+
1300+/* Linux shared library support routines for the linker. */
1301+
1302+extern bfd_boolean bfd_i386linux_size_dynamic_sections
1303+ (bfd *, struct bfd_link_info *);
1304+extern bfd_boolean bfd_m68klinux_size_dynamic_sections
1305+ (bfd *, struct bfd_link_info *);
1306+extern bfd_boolean bfd_sparclinux_size_dynamic_sections
1307+ (bfd *, struct bfd_link_info *);
1308+
1309+/* mmap hacks */
1310+
1311+struct _bfd_window_internal;
1312+typedef struct _bfd_window_internal bfd_window_internal;
1313+
1314+typedef struct _bfd_window
1315+{
1316+ /* What the user asked for. */
1317+ void *data;
1318+ bfd_size_type size;
1319+ /* The actual window used by BFD. Small user-requested read-only
1320+ regions sharing a page may share a single window into the object
1321+ file. Read-write versions shouldn't until I've fixed things to
1322+ keep track of which portions have been claimed by the
1323+ application; don't want to give the same region back when the
1324+ application wants two writable copies! */
1325+ struct _bfd_window_internal *i;
1326+}
1327+bfd_window;
1328+
1329+extern void bfd_init_window
1330+ (bfd_window *);
1331+extern void bfd_free_window
1332+ (bfd_window *);
1333+extern bfd_boolean bfd_get_file_window
1334+ (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
1335+
1336+/* XCOFF support routines for the linker. */
1337+
1338+extern bfd_boolean bfd_xcoff_link_record_set
1339+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
1340+extern bfd_boolean bfd_xcoff_import_symbol
1341+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
1342+ const char *, const char *, const char *, unsigned int);
1343+extern bfd_boolean bfd_xcoff_export_symbol
1344+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
1345+extern bfd_boolean bfd_xcoff_link_count_reloc
1346+ (bfd *, struct bfd_link_info *, const char *);
1347+extern bfd_boolean bfd_xcoff_record_link_assignment
1348+ (bfd *, struct bfd_link_info *, const char *);
1349+extern bfd_boolean bfd_xcoff_size_dynamic_sections
1350+ (bfd *, struct bfd_link_info *, const char *, const char *,
1351+ unsigned long, unsigned long, unsigned long, bfd_boolean,
1352+ int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
1353+extern bfd_boolean bfd_xcoff_link_generate_rtinit
1354+ (bfd *, const char *, const char *, bfd_boolean);
1355+
1356+/* XCOFF support routines for ar. */
1357+extern bfd_boolean bfd_xcoff_ar_archive_set_magic
1358+ (bfd *, char *);
1359+
1360+/* Externally visible COFF routines. */
1361+
1362+#if defined(__STDC__) || defined(ALMOST_STDC)
1363+struct internal_syment;
1364+union internal_auxent;
1365+#endif
1366+
1367+extern bfd_boolean bfd_coff_get_syment
1368+ (bfd *, struct bfd_symbol *, struct internal_syment *);
1369+
1370+extern bfd_boolean bfd_coff_get_auxent
1371+ (bfd *, struct bfd_symbol *, int, union internal_auxent *);
1372+
1373+extern bfd_boolean bfd_coff_set_symbol_class
1374+ (bfd *, struct bfd_symbol *, unsigned int);
1375+
1376+extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
1377+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
1378+
1379+/* ARM Interworking support. Called from linker. */
1380+extern bfd_boolean bfd_arm_allocate_interworking_sections
1381+ (struct bfd_link_info *);
1382+
1383+extern bfd_boolean bfd_arm_process_before_allocation
1384+ (bfd *, struct bfd_link_info *, int);
1385+
1386+extern bfd_boolean bfd_arm_get_bfd_for_interworking
1387+ (bfd *, struct bfd_link_info *);
1388+
1389+/* PE ARM Interworking support. Called from linker. */
1390+extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
1391+ (struct bfd_link_info *);
1392+
1393+extern bfd_boolean bfd_arm_pe_process_before_allocation
1394+ (bfd *, struct bfd_link_info *, int);
1395+
1396+extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
1397+ (bfd *, struct bfd_link_info *);
1398+
1399+/* ELF ARM Interworking support. Called from linker. */
1400+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
1401+ (struct bfd_link_info *);
1402+
1403+extern bfd_boolean bfd_elf32_arm_process_before_allocation
1404+ (bfd *, struct bfd_link_info *, int);
1405+
1406+void bfd_elf32_arm_set_target_relocs
1407+ (struct bfd_link_info *, int, char *, int, int);
1408+
1409+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
1410+ (bfd *, struct bfd_link_info *);
1411+
1412+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
1413+ (bfd *, struct bfd_link_info *);
1414+
1415+/* ELF ARM mapping symbol support */
1416+extern bfd_boolean bfd_is_arm_mapping_symbol_name
1417+ (const char * name);
1418+
1419+/* ARM Note section processing. */
1420+extern bfd_boolean bfd_arm_merge_machines
1421+ (bfd *, bfd *);
1422+
1423+extern bfd_boolean bfd_arm_update_notes
1424+ (bfd *, const char *);
1425+
1426+extern unsigned int bfd_arm_get_mach_from_notes
1427+ (bfd *, const char *);
1428+
1429+/* TI COFF load page support. */
1430+extern void bfd_ticoff_set_section_load_page
1431+ (struct bfd_section *, int);
1432+
1433+extern int bfd_ticoff_get_section_load_page
1434+ (struct bfd_section *);
1435+
1436+/* H8/300 functions. */
1437+extern bfd_vma bfd_h8300_pad_address
1438+ (bfd *, bfd_vma);
1439+
1440+/* IA64 Itanium code generation. Called from linker. */
1441+extern void bfd_elf32_ia64_after_parse
1442+ (int);
1443+
1444+extern void bfd_elf64_ia64_after_parse
1445+ (int);
1446+
1447+/* This structure is used for a comdat section, as in PE. A comdat
1448+ section is associated with a particular symbol. When the linker
1449+ sees a comdat section, it keeps only one of the sections with a
1450+ given name and associated with a given symbol. */
1451+
1452+struct coff_comdat_info
1453+{
1454+ /* The name of the symbol associated with a comdat section. */
1455+ const char *name;
1456+
1457+ /* The local symbol table index of the symbol associated with a
1458+ comdat section. This is only meaningful to the object file format
1459+ specific code; it is not an index into the list returned by
1460+ bfd_canonicalize_symtab. */
1461+ long symbol;
1462+};
1463+
1464+extern struct coff_comdat_info *bfd_coff_get_comdat_section
1465+ (bfd *, struct bfd_section *);
1466+
1467+/* Extracted from init.c. */
1468+void bfd_init (void);
1469+
1470+/* Extracted from opncls.c. */
1471+bfd *bfd_fopen (const char *filename, const char *target,
1472+ const char *mode, int fd);
1473+
1474+bfd *bfd_openr (const char *filename, const char *target);
1475+
1476+bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
1477+
1478+bfd *bfd_openstreamr (const char *, const char *, void *);
1479+
1480+bfd *bfd_openr_iovec (const char *filename, const char *target,
1481+ void *(*open) (struct bfd *nbfd,
1482+ void *open_closure),
1483+ void *open_closure,
1484+ file_ptr (*pread) (struct bfd *nbfd,
1485+ void *stream,
1486+ void *buf,
1487+ file_ptr nbytes,
1488+ file_ptr offset),
1489+ int (*close) (struct bfd *nbfd,
1490+ void *stream));
1491+
1492+bfd *bfd_openw (const char *filename, const char *target);
1493+
1494+bfd_boolean bfd_close (bfd *abfd);
1495+
1496+bfd_boolean bfd_close_all_done (bfd *);
1497+
1498+bfd *bfd_create (const char *filename, bfd *templ);
1499+
1500+bfd_boolean bfd_make_writable (bfd *abfd);
1501+
1502+bfd_boolean bfd_make_readable (bfd *abfd);
1503+
1504+unsigned long bfd_calc_gnu_debuglink_crc32
1505+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
1506+
1507+char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
1508+
1509+struct bfd_section *bfd_create_gnu_debuglink_section
1510+ (bfd *abfd, const char *filename);
1511+
1512+bfd_boolean bfd_fill_in_gnu_debuglink_section
1513+ (bfd *abfd, struct bfd_section *sect, const char *filename);
1514+
1515+/* Extracted from libbfd.c. */
1516+
1517+/* Byte swapping macros for user section data. */
1518+
1519+#define bfd_put_8(abfd, val, ptr) \
1520+ ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
1521+#define bfd_put_signed_8 \
1522+ bfd_put_8
1523+#define bfd_get_8(abfd, ptr) \
1524+ (*(unsigned char *) (ptr) & 0xff)
1525+#define bfd_get_signed_8(abfd, ptr) \
1526+ (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
1527+
1528+#define bfd_put_16(abfd, val, ptr) \
1529+ BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
1530+#define bfd_put_signed_16 \
1531+ bfd_put_16
1532+#define bfd_get_16(abfd, ptr) \
1533+ BFD_SEND (abfd, bfd_getx16, (ptr))
1534+#define bfd_get_signed_16(abfd, ptr) \
1535+ BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
1536+
1537+#define bfd_put_32(abfd, val, ptr) \
1538+ BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
1539+#define bfd_put_signed_32 \
1540+ bfd_put_32
1541+#define bfd_get_32(abfd, ptr) \
1542+ BFD_SEND (abfd, bfd_getx32, (ptr))
1543+#define bfd_get_signed_32(abfd, ptr) \
1544+ BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
1545+
1546+#define bfd_put_64(abfd, val, ptr) \
1547+ BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
1548+#define bfd_put_signed_64 \
1549+ bfd_put_64
1550+#define bfd_get_64(abfd, ptr) \
1551+ BFD_SEND (abfd, bfd_getx64, (ptr))
1552+#define bfd_get_signed_64(abfd, ptr) \
1553+ BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
1554+
1555+#define bfd_get(bits, abfd, ptr) \
1556+ ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
1557+ : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
1558+ : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
1559+ : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
1560+ : (abort (), (bfd_vma) - 1))
1561+
1562+#define bfd_put(bits, abfd, val, ptr) \
1563+ ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
1564+ : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
1565+ : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
1566+ : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
1567+ : (abort (), (void) 0))
1568+
1569+
1570+/* Byte swapping macros for file header data. */
1571+
1572+#define bfd_h_put_8(abfd, val, ptr) \
1573+ bfd_put_8 (abfd, val, ptr)
1574+#define bfd_h_put_signed_8(abfd, val, ptr) \
1575+ bfd_put_8 (abfd, val, ptr)
1576+#define bfd_h_get_8(abfd, ptr) \
1577+ bfd_get_8 (abfd, ptr)
1578+#define bfd_h_get_signed_8(abfd, ptr) \
1579+ bfd_get_signed_8 (abfd, ptr)
1580+
1581+#define bfd_h_put_16(abfd, val, ptr) \
1582+ BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
1583+#define bfd_h_put_signed_16 \
1584+ bfd_h_put_16
1585+#define bfd_h_get_16(abfd, ptr) \
1586+ BFD_SEND (abfd, bfd_h_getx16, (ptr))
1587+#define bfd_h_get_signed_16(abfd, ptr) \
1588+ BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
1589+
1590+#define bfd_h_put_32(abfd, val, ptr) \
1591+ BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
1592+#define bfd_h_put_signed_32 \
1593+ bfd_h_put_32
1594+#define bfd_h_get_32(abfd, ptr) \
1595+ BFD_SEND (abfd, bfd_h_getx32, (ptr))
1596+#define bfd_h_get_signed_32(abfd, ptr) \
1597+ BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
1598+
1599+#define bfd_h_put_64(abfd, val, ptr) \
1600+ BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
1601+#define bfd_h_put_signed_64 \
1602+ bfd_h_put_64
1603+#define bfd_h_get_64(abfd, ptr) \
1604+ BFD_SEND (abfd, bfd_h_getx64, (ptr))
1605+#define bfd_h_get_signed_64(abfd, ptr) \
1606+ BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
1607+
1608+/* Aliases for the above, which should eventually go away. */
1609+
1610+#define H_PUT_64 bfd_h_put_64
1611+#define H_PUT_32 bfd_h_put_32
1612+#define H_PUT_16 bfd_h_put_16
1613+#define H_PUT_8 bfd_h_put_8
1614+#define H_PUT_S64 bfd_h_put_signed_64
1615+#define H_PUT_S32 bfd_h_put_signed_32
1616+#define H_PUT_S16 bfd_h_put_signed_16
1617+#define H_PUT_S8 bfd_h_put_signed_8
1618+#define H_GET_64 bfd_h_get_64
1619+#define H_GET_32 bfd_h_get_32
1620+#define H_GET_16 bfd_h_get_16
1621+#define H_GET_8 bfd_h_get_8
1622+#define H_GET_S64 bfd_h_get_signed_64
1623+#define H_GET_S32 bfd_h_get_signed_32
1624+#define H_GET_S16 bfd_h_get_signed_16
1625+#define H_GET_S8 bfd_h_get_signed_8
1626+
1627+
1628+/* Extracted from bfdio.c. */
1629+long bfd_get_mtime (bfd *abfd);
1630+
1631+long bfd_get_size (bfd *abfd);
1632+
1633+/* Extracted from bfdwin.c. */
1634+/* Extracted from section.c. */
1635+typedef struct bfd_section
1636+{
1637+ /* The name of the section; the name isn't a copy, the pointer is
1638+ the same as that passed to bfd_make_section. */
1639+ const char *name;
1640+
1641+ /* A unique sequence number. */
1642+ int id;
1643+
1644+ /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
1645+ int index;
1646+
1647+ /* The next section in the list belonging to the BFD, or NULL. */
1648+ struct bfd_section *next;
1649+
1650+ /* The previous section in the list belonging to the BFD, or NULL. */
1651+ struct bfd_section *prev;
1652+
1653+ /* The field flags contains attributes of the section. Some
1654+ flags are read in from the object file, and some are
1655+ synthesized from other information. */
1656+ flagword flags;
1657+
1658+#define SEC_NO_FLAGS 0x000
1659+
1660+ /* Tells the OS to allocate space for this section when loading.
1661+ This is clear for a section containing debug information only. */
1662+#define SEC_ALLOC 0x001
1663+
1664+ /* Tells the OS to load the section from the file when loading.
1665+ This is clear for a .bss section. */
1666+#define SEC_LOAD 0x002
1667+
1668+ /* The section contains data still to be relocated, so there is
1669+ some relocation information too. */
1670+#define SEC_RELOC 0x004
1671+
1672+ /* A signal to the OS that the section contains read only data. */
1673+#define SEC_READONLY 0x008
1674+
1675+ /* The section contains code only. */
1676+#define SEC_CODE 0x010
1677+
1678+ /* The section contains data only. */
1679+#define SEC_DATA 0x020
1680+
1681+ /* The section will reside in ROM. */
1682+#define SEC_ROM 0x040
1683+
1684+ /* The section contains constructor information. This section
1685+ type is used by the linker to create lists of constructors and
1686+ destructors used by <<g++>>. When a back end sees a symbol
1687+ which should be used in a constructor list, it creates a new
1688+ section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
1689+ the symbol to it, and builds a relocation. To build the lists
1690+ of constructors, all the linker has to do is catenate all the
1691+ sections called <<__CTOR_LIST__>> and relocate the data
1692+ contained within - exactly the operations it would peform on
1693+ standard data. */
1694+#define SEC_CONSTRUCTOR 0x080
1695+
1696+ /* The section has contents - a data section could be
1697+ <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
1698+ <<SEC_HAS_CONTENTS>> */
1699+#define SEC_HAS_CONTENTS 0x100
1700+
1701+ /* An instruction to the linker to not output the section
1702+ even if it has information which would normally be written. */
1703+#define SEC_NEVER_LOAD 0x200
1704+
1705+ /* The section contains thread local data. */
1706+#define SEC_THREAD_LOCAL 0x400
1707+
1708+ /* The section has GOT references. This flag is only for the
1709+ linker, and is currently only used by the elf32-hppa back end.
1710+ It will be set if global offset table references were detected
1711+ in this section, which indicate to the linker that the section
1712+ contains PIC code, and must be handled specially when doing a
1713+ static link. */
1714+#define SEC_HAS_GOT_REF 0x800
1715+
1716+ /* The section contains common symbols (symbols may be defined
1717+ multiple times, the value of a symbol is the amount of
1718+ space it requires, and the largest symbol value is the one
1719+ used). Most targets have exactly one of these (which we
1720+ translate to bfd_com_section_ptr), but ECOFF has two. */
1721+#define SEC_IS_COMMON 0x1000
1722+
1723+ /* The section contains only debugging information. For
1724+ example, this is set for ELF .debug and .stab sections.
1725+ strip tests this flag to see if a section can be
1726+ discarded. */
1727+#define SEC_DEBUGGING 0x2000
1728+
1729+ /* The contents of this section are held in memory pointed to
1730+ by the contents field. This is checked by bfd_get_section_contents,
1731+ and the data is retrieved from memory if appropriate. */
1732+#define SEC_IN_MEMORY 0x4000
1733+
1734+ /* The contents of this section are to be excluded by the
1735+ linker for executable and shared objects unless those
1736+ objects are to be further relocated. */
1737+#define SEC_EXCLUDE 0x8000
1738+
1739+ /* The contents of this section are to be sorted based on the sum of
1740+ the symbol and addend values specified by the associated relocation
1741+ entries. Entries without associated relocation entries will be
1742+ appended to the end of the section in an unspecified order. */
1743+#define SEC_SORT_ENTRIES 0x10000
1744+
1745+ /* When linking, duplicate sections of the same name should be
1746+ discarded, rather than being combined into a single section as
1747+ is usually done. This is similar to how common symbols are
1748+ handled. See SEC_LINK_DUPLICATES below. */
1749+#define SEC_LINK_ONCE 0x20000
1750+
1751+ /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1752+ should handle duplicate sections. */
1753+#define SEC_LINK_DUPLICATES 0x40000
1754+
1755+ /* This value for SEC_LINK_DUPLICATES means that duplicate
1756+ sections with the same name should simply be discarded. */
1757+#define SEC_LINK_DUPLICATES_DISCARD 0x0
1758+
1759+ /* This value for SEC_LINK_DUPLICATES means that the linker
1760+ should warn if there are any duplicate sections, although
1761+ it should still only link one copy. */
1762+#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
1763+
1764+ /* This value for SEC_LINK_DUPLICATES means that the linker
1765+ should warn if any duplicate sections are a different size. */
1766+#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
1767+
1768+ /* This value for SEC_LINK_DUPLICATES means that the linker
1769+ should warn if any duplicate sections contain different
1770+ contents. */
1771+#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1772+ (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1773+
1774+ /* This section was created by the linker as part of dynamic
1775+ relocation or other arcane processing. It is skipped when
1776+ going through the first-pass output, trusting that someone
1777+ else up the line will take care of it later. */
1778+#define SEC_LINKER_CREATED 0x200000
1779+
1780+ /* This section should not be subject to garbage collection. */
1781+#define SEC_KEEP 0x400000
1782+
1783+ /* This section contains "short" data, and should be placed
1784+ "near" the GP. */
1785+#define SEC_SMALL_DATA 0x800000
1786+
1787+ /* Attempt to merge identical entities in the section.
1788+ Entity size is given in the entsize field. */
1789+#define SEC_MERGE 0x1000000
1790+
1791+ /* If given with SEC_MERGE, entities to merge are zero terminated
1792+ strings where entsize specifies character size instead of fixed
1793+ size entries. */
1794+#define SEC_STRINGS 0x2000000
1795+
1796+ /* This section contains data about section groups. */
1797+#define SEC_GROUP 0x4000000
1798+
1799+ /* The section is a COFF shared library section. This flag is
1800+ only for the linker. If this type of section appears in
1801+ the input file, the linker must copy it to the output file
1802+ without changing the vma or size. FIXME: Although this
1803+ was originally intended to be general, it really is COFF
1804+ specific (and the flag was renamed to indicate this). It
1805+ might be cleaner to have some more general mechanism to
1806+ allow the back end to control what the linker does with
1807+ sections. */
1808+#define SEC_COFF_SHARED_LIBRARY 0x10000000
1809+
1810+ /* This section contains data which may be shared with other
1811+ executables or shared objects. This is for COFF only. */
1812+#define SEC_COFF_SHARED 0x20000000
1813+
1814+ /* When a section with this flag is being linked, then if the size of
1815+ the input section is less than a page, it should not cross a page
1816+ boundary. If the size of the input section is one page or more,
1817+ it should be aligned on a page boundary. This is for TI
1818+ TMS320C54X only. */
1819+#define SEC_TIC54X_BLOCK 0x40000000
1820+
1821+ /* Conditionally link this section; do not link if there are no
1822+ references found to any symbol in the section. This is for TI
1823+ TMS320C54X only. */
1824+#define SEC_TIC54X_CLINK 0x80000000
1825+
1826+ /* End of section flags. */
1827+
1828+ /* Some internal packed boolean fields. */
1829+
1830+ /* See the vma field. */
1831+ unsigned int user_set_vma : 1;
1832+
1833+ /* A mark flag used by some of the linker backends. */
1834+ unsigned int linker_mark : 1;
1835+
1836+ /* Another mark flag used by some of the linker backends. Set for
1837+ output sections that have an input section. */
1838+ unsigned int linker_has_input : 1;
1839+
1840+ /* Mark flags used by some linker backends for garbage collection. */
1841+ unsigned int gc_mark : 1;
1842+ unsigned int gc_mark_from_eh : 1;
1843+
1844+ /* The following flags are used by the ELF linker. */
1845+
1846+ /* Mark sections which have been allocated to segments. */
1847+ unsigned int segment_mark : 1;
1848+
1849+ /* Type of sec_info information. */
1850+ unsigned int sec_info_type:3;
1851+#define ELF_INFO_TYPE_NONE 0
1852+#define ELF_INFO_TYPE_STABS 1
1853+#define ELF_INFO_TYPE_MERGE 2
1854+#define ELF_INFO_TYPE_EH_FRAME 3
1855+#define ELF_INFO_TYPE_JUST_SYMS 4
1856+
1857+ /* Nonzero if this section uses RELA relocations, rather than REL. */
1858+ unsigned int use_rela_p:1;
1859+
1860+ /* Bits used by various backends. The generic code doesn't touch
1861+ these fields. */
1862+
1863+ /* Nonzero if this section has TLS related relocations. */
1864+ unsigned int has_tls_reloc:1;
1865+
1866+ /* Nonzero if this section has a gp reloc. */
1867+ unsigned int has_gp_reloc:1;
1868+
1869+ /* Nonzero if this section needs the relax finalize pass. */
1870+ unsigned int need_finalize_relax:1;
1871+
1872+ /* Whether relocations have been processed. */
1873+ unsigned int reloc_done : 1;
1874+
1875+ /* End of internal packed boolean fields. */
1876+
1877+ /* The virtual memory address of the section - where it will be
1878+ at run time. The symbols are relocated against this. The
1879+ user_set_vma flag is maintained by bfd; if it's not set, the
1880+ backend can assign addresses (for example, in <<a.out>>, where
1881+ the default address for <<.data>> is dependent on the specific
1882+ target and various flags). */
1883+ bfd_vma vma;
1884+
1885+ /* The load address of the section - where it would be in a
1886+ rom image; really only used for writing section header
1887+ information. */
1888+ bfd_vma lma;
1889+
1890+ /* The size of the section in octets, as it will be output.
1891+ Contains a value even if the section has no contents (e.g., the
1892+ size of <<.bss>>). */
1893+ bfd_size_type size;
1894+
1895+ /* For input sections, the original size on disk of the section, in
1896+ octets. This field is used by the linker relaxation code. It is
1897+ currently only set for sections where the linker relaxation scheme
1898+ doesn't cache altered section and reloc contents (stabs, eh_frame,
1899+ SEC_MERGE, some coff relaxing targets), and thus the original size
1900+ needs to be kept to read the section multiple times.
1901+ For output sections, rawsize holds the section size calculated on
1902+ a previous linker relaxation pass. */
1903+ bfd_size_type rawsize;
1904+
1905+ /* If this section is going to be output, then this value is the
1906+ offset in *bytes* into the output section of the first byte in the
1907+ input section (byte ==> smallest addressable unit on the
1908+ target). In most cases, if this was going to start at the
1909+ 100th octet (8-bit quantity) in the output section, this value
1910+ would be 100. However, if the target byte size is 16 bits
1911+ (bfd_octets_per_byte is "2"), this value would be 50. */
1912+ bfd_vma output_offset;
1913+
1914+ /* The output section through which to map on output. */
1915+ struct bfd_section *output_section;
1916+
1917+ /* The alignment requirement of the section, as an exponent of 2 -
1918+ e.g., 3 aligns to 2^3 (or 8). */
1919+ unsigned int alignment_power;
1920+
1921+ /* If an input section, a pointer to a vector of relocation
1922+ records for the data in this section. */
1923+ struct reloc_cache_entry *relocation;
1924+
1925+ /* If an output section, a pointer to a vector of pointers to
1926+ relocation records for the data in this section. */
1927+ struct reloc_cache_entry **orelocation;
1928+
1929+ /* The number of relocation records in one of the above. */
1930+ unsigned reloc_count;
1931+
1932+ /* Information below is back end specific - and not always used
1933+ or updated. */
1934+
1935+ /* File position of section data. */
1936+ file_ptr filepos;
1937+
1938+ /* File position of relocation info. */
1939+ file_ptr rel_filepos;
1940+
1941+ /* File position of line data. */
1942+ file_ptr line_filepos;
1943+
1944+ /* Pointer to data for applications. */
1945+ void *userdata;
1946+
1947+ /* If the SEC_IN_MEMORY flag is set, this points to the actual
1948+ contents. */
1949+ unsigned char *contents;
1950+
1951+ /* Attached line number information. */
1952+ alent *lineno;
1953+
1954+ /* Number of line number records. */
1955+ unsigned int lineno_count;
1956+
1957+ /* Entity size for merging purposes. */
1958+ unsigned int entsize;
1959+
1960+ /* Points to the kept section if this section is a link-once section,
1961+ and is discarded. */
1962+ struct bfd_section *kept_section;
1963+
1964+ /* When a section is being output, this value changes as more
1965+ linenumbers are written out. */
1966+ file_ptr moving_line_filepos;
1967+
1968+ /* What the section number is in the target world. */
1969+ int target_index;
1970+
1971+ void *used_by_bfd;
1972+
1973+ /* If this is a constructor section then here is a list of the
1974+ relocations created to relocate items within it. */
1975+ struct relent_chain *constructor_chain;
1976+
1977+ /* The BFD which owns the section. */
1978+ bfd *owner;
1979+
1980+ /* A symbol which points at this section only. */
1981+ struct bfd_symbol *symbol;
1982+ struct bfd_symbol **symbol_ptr_ptr;
1983+
1984+ /* Early in the link process, map_head and map_tail are used to build
1985+ a list of input sections attached to an output section. Later,
1986+ output sections use these fields for a list of bfd_link_order
1987+ structs. */
1988+ union {
1989+ struct bfd_link_order *link_order;
1990+ struct bfd_section *s;
1991+ } map_head, map_tail;
1992+} asection;
1993+
1994+/* These sections are global, and are managed by BFD. The application
1995+ and target back end are not permitted to change the values in
1996+ these sections. New code should use the section_ptr macros rather
1997+ than referring directly to the const sections. The const sections
1998+ may eventually vanish. */
1999+#define BFD_ABS_SECTION_NAME "*ABS*"
2000+#define BFD_UND_SECTION_NAME "*UND*"
2001+#define BFD_COM_SECTION_NAME "*COM*"
2002+#define BFD_IND_SECTION_NAME "*IND*"
2003+
2004+/* The absolute section. */
2005+extern asection bfd_abs_section;
2006+#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
2007+#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
2008+/* Pointer to the undefined section. */
2009+extern asection bfd_und_section;
2010+#define bfd_und_section_ptr ((asection *) &bfd_und_section)
2011+#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
2012+/* Pointer to the common section. */
2013+extern asection bfd_com_section;
2014+#define bfd_com_section_ptr ((asection *) &bfd_com_section)
2015+/* Pointer to the indirect section. */
2016+extern asection bfd_ind_section;
2017+#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
2018+#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
2019+
2020+#define bfd_is_const_section(SEC) \
2021+ ( ((SEC) == bfd_abs_section_ptr) \
2022+ || ((SEC) == bfd_und_section_ptr) \
2023+ || ((SEC) == bfd_com_section_ptr) \
2024+ || ((SEC) == bfd_ind_section_ptr))
2025+
2026+extern const struct bfd_symbol * const bfd_abs_symbol;
2027+extern const struct bfd_symbol * const bfd_com_symbol;
2028+extern const struct bfd_symbol * const bfd_und_symbol;
2029+extern const struct bfd_symbol * const bfd_ind_symbol;
2030+
2031+/* Macros to handle insertion and deletion of a bfd's sections. These
2032+ only handle the list pointers, ie. do not adjust section_count,
2033+ target_index etc. */
2034+#define bfd_section_list_remove(ABFD, S) \
2035+ do \
2036+ { \
2037+ asection *_s = S; \
2038+ asection *_next = _s->next; \
2039+ asection *_prev = _s->prev; \
2040+ if (_prev) \
2041+ _prev->next = _next; \
2042+ else \
2043+ (ABFD)->sections = _next; \
2044+ if (_next) \
2045+ _next->prev = _prev; \
2046+ else \
2047+ (ABFD)->section_last = _prev; \
2048+ } \
2049+ while (0)
2050+#define bfd_section_list_append(ABFD, S) \
2051+ do \
2052+ { \
2053+ asection *_s = S; \
2054+ bfd *_abfd = ABFD; \
2055+ _s->next = NULL; \
2056+ if (_abfd->section_last) \
2057+ { \
2058+ _s->prev = _abfd->section_last; \
2059+ _abfd->section_last->next = _s; \
2060+ } \
2061+ else \
2062+ { \
2063+ _s->prev = NULL; \
2064+ _abfd->sections = _s; \
2065+ } \
2066+ _abfd->section_last = _s; \
2067+ } \
2068+ while (0)
2069+#define bfd_section_list_prepend(ABFD, S) \
2070+ do \
2071+ { \
2072+ asection *_s = S; \
2073+ bfd *_abfd = ABFD; \
2074+ _s->prev = NULL; \
2075+ if (_abfd->sections) \
2076+ { \
2077+ _s->next = _abfd->sections; \
2078+ _abfd->sections->prev = _s; \
2079+ } \
2080+ else \
2081+ { \
2082+ _s->next = NULL; \
2083+ _abfd->section_last = _s; \
2084+ } \
2085+ _abfd->sections = _s; \
2086+ } \
2087+ while (0)
2088+#define bfd_section_list_insert_after(ABFD, A, S) \
2089+ do \
2090+ { \
2091+ asection *_a = A; \
2092+ asection *_s = S; \
2093+ asection *_next = _a->next; \
2094+ _s->next = _next; \
2095+ _s->prev = _a; \
2096+ _a->next = _s; \
2097+ if (_next) \
2098+ _next->prev = _s; \
2099+ else \
2100+ (ABFD)->section_last = _s; \
2101+ } \
2102+ while (0)
2103+#define bfd_section_list_insert_before(ABFD, B, S) \
2104+ do \
2105+ { \
2106+ asection *_b = B; \
2107+ asection *_s = S; \
2108+ asection *_prev = _b->prev; \
2109+ _s->prev = _prev; \
2110+ _s->next = _b; \
2111+ _b->prev = _s; \
2112+ if (_prev) \
2113+ _prev->next = _s; \
2114+ else \
2115+ (ABFD)->sections = _s; \
2116+ } \
2117+ while (0)
2118+#define bfd_section_removed_from_list(ABFD, S) \
2119+ ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
2120+
2121+#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, SYM_PTR, NAME, IDX) \
2122+ /* name, id, index, next, prev, flags, user_set_vma, */ \
2123+ { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \
2124+ \
2125+ /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh, */ \
2126+ 0, 0, 1, 0, \
2127+ \
2128+ /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc, */ \
2129+ 0, 0, 0, 0, \
2130+ \
2131+ /* has_gp_reloc, need_finalize_relax, reloc_done, */ \
2132+ 0, 0, 0, \
2133+ \
2134+ /* vma, lma, size, rawsize */ \
2135+ 0, 0, 0, 0, \
2136+ \
2137+ /* output_offset, output_section, alignment_power, */ \
2138+ 0, (struct bfd_section *) &SEC, 0, \
2139+ \
2140+ /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
2141+ NULL, NULL, 0, 0, 0, \
2142+ \
2143+ /* line_filepos, userdata, contents, lineno, lineno_count, */ \
2144+ 0, NULL, NULL, NULL, 0, \
2145+ \
2146+ /* entsize, kept_section, moving_line_filepos, */ \
2147+ 0, NULL, 0, \
2148+ \
2149+ /* target_index, used_by_bfd, constructor_chain, owner, */ \
2150+ 0, NULL, NULL, NULL, \
2151+ \
2152+ /* symbol, */ \
2153+ (struct bfd_symbol *) SYM, \
2154+ \
2155+ /* symbol_ptr_ptr, */ \
2156+ (struct bfd_symbol **) SYM_PTR, \
2157+ \
2158+ /* map_head, map_tail */ \
2159+ { NULL }, { NULL } \
2160+ }
2161+
2162+void bfd_section_list_clear (bfd *);
2163+
2164+asection *bfd_get_section_by_name (bfd *abfd, const char *name);
2165+
2166+asection *bfd_get_section_by_name_if
2167+ (bfd *abfd,
2168+ const char *name,
2169+ bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
2170+ void *obj);
2171+
2172+char *bfd_get_unique_section_name
2173+ (bfd *abfd, const char *templat, int *count);
2174+
2175+asection *bfd_make_section_old_way (bfd *abfd, const char *name);
2176+
2177+asection *bfd_make_section_anyway_with_flags
2178+ (bfd *abfd, const char *name, flagword flags);
2179+
2180+asection *bfd_make_section_anyway (bfd *abfd, const char *name);
2181+
2182+asection *bfd_make_section_with_flags
2183+ (bfd *, const char *name, flagword flags);
2184+
2185+asection *bfd_make_section (bfd *, const char *name);
2186+
2187+bfd_boolean bfd_set_section_flags
2188+ (bfd *abfd, asection *sec, flagword flags);
2189+
2190+void bfd_map_over_sections
2191+ (bfd *abfd,
2192+ void (*func) (bfd *abfd, asection *sect, void *obj),
2193+ void *obj);
2194+
2195+asection *bfd_sections_find_if
2196+ (bfd *abfd,
2197+ bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
2198+ void *obj);
2199+
2200+bfd_boolean bfd_set_section_size
2201+ (bfd *abfd, asection *sec, bfd_size_type val);
2202+
2203+bfd_boolean bfd_set_section_contents
2204+ (bfd *abfd, asection *section, const void *data,
2205+ file_ptr offset, bfd_size_type count);
2206+
2207+bfd_boolean bfd_get_section_contents
2208+ (bfd *abfd, asection *section, void *location, file_ptr offset,
2209+ bfd_size_type count);
2210+
2211+bfd_boolean bfd_malloc_and_get_section
2212+ (bfd *abfd, asection *section, bfd_byte **buf);
2213+
2214+bfd_boolean bfd_copy_private_section_data
2215+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
2216+
2217+#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
2218+ BFD_SEND (obfd, _bfd_copy_private_section_data, \
2219+ (ibfd, isection, obfd, osection))
2220+bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
2221+
2222+bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
2223+
2224+/* Extracted from archures.c. */
2225+enum bfd_architecture
2226+{
2227+ bfd_arch_unknown, /* File arch not known. */
2228+ bfd_arch_obscure, /* Arch known, not one of these. */
2229+ bfd_arch_m68k, /* Motorola 68xxx */
2230+#define bfd_mach_m68000 1
2231+#define bfd_mach_m68008 2
2232+#define bfd_mach_m68010 3
2233+#define bfd_mach_m68020 4
2234+#define bfd_mach_m68030 5
2235+#define bfd_mach_m68040 6
2236+#define bfd_mach_m68060 7
2237+#define bfd_mach_cpu32 8
2238+#define bfd_mach_mcf5200 9
2239+#define bfd_mach_mcf5206e 10
2240+#define bfd_mach_mcf5307 11
2241+#define bfd_mach_mcf5407 12
2242+#define bfd_mach_mcf528x 13
2243+#define bfd_mach_mcfv4e 14
2244+#define bfd_mach_mcf521x 15
2245+#define bfd_mach_mcf5249 16
2246+#define bfd_mach_mcf547x 17
2247+#define bfd_mach_mcf548x 18
2248+ bfd_arch_vax, /* DEC Vax */
2249+ bfd_arch_i960, /* Intel 960 */
2250+ /* The order of the following is important.
2251+ lower number indicates a machine type that
2252+ only accepts a subset of the instructions
2253+ available to machines with higher numbers.
2254+ The exception is the "ca", which is
2255+ incompatible with all other machines except
2256+ "core". */
2257+
2258+#define bfd_mach_i960_core 1
2259+#define bfd_mach_i960_ka_sa 2
2260+#define bfd_mach_i960_kb_sb 3
2261+#define bfd_mach_i960_mc 4
2262+#define bfd_mach_i960_xa 5
2263+#define bfd_mach_i960_ca 6
2264+#define bfd_mach_i960_jx 7
2265+#define bfd_mach_i960_hx 8
2266+
2267+ bfd_arch_or32, /* OpenRISC 32 */
2268+
2269+ bfd_arch_sparc, /* SPARC */
2270+#define bfd_mach_sparc 1
2271+/* The difference between v8plus and v9 is that v9 is a true 64 bit env. */
2272+#define bfd_mach_sparc_sparclet 2
2273+#define bfd_mach_sparc_sparclite 3
2274+#define bfd_mach_sparc_v8plus 4
2275+#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
2276+#define bfd_mach_sparc_sparclite_le 6
2277+#define bfd_mach_sparc_v9 7
2278+#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
2279+#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
2280+#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
2281+/* Nonzero if MACH has the v9 instruction set. */
2282+#define bfd_mach_sparc_v9_p(mach) \
2283+ ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
2284+ && (mach) != bfd_mach_sparc_sparclite_le)
2285+/* Nonzero if MACH is a 64 bit sparc architecture. */
2286+#define bfd_mach_sparc_64bit_p(mach) \
2287+ ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
2288+ bfd_arch_mips, /* MIPS Rxxxx */
2289+#define bfd_mach_mips3000 3000
2290+#define bfd_mach_mips3900 3900
2291+#define bfd_mach_mips4000 4000
2292+#define bfd_mach_mips4010 4010
2293+#define bfd_mach_mips4100 4100
2294+#define bfd_mach_mips4111 4111
2295+#define bfd_mach_mips4120 4120
2296+#define bfd_mach_mips4300 4300
2297+#define bfd_mach_mips4400 4400
2298+#define bfd_mach_mips4600 4600
2299+#define bfd_mach_mips4650 4650
2300+#define bfd_mach_mips5000 5000
2301+#define bfd_mach_mips5400 5400
2302+#define bfd_mach_mips5500 5500
2303+#define bfd_mach_mips6000 6000
2304+#define bfd_mach_mips7000 7000
2305+#define bfd_mach_mips8000 8000
2306+#define bfd_mach_mips9000 9000
2307+#define bfd_mach_mips10000 10000
2308+#define bfd_mach_mips12000 12000
2309+#define bfd_mach_mips16 16
2310+#define bfd_mach_mips5 5
2311+#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
2312+#define bfd_mach_mipsisa32 32
2313+#define bfd_mach_mipsisa32r2 33
2314+#define bfd_mach_mipsisa64 64
2315+#define bfd_mach_mipsisa64r2 65
2316+ bfd_arch_i386, /* Intel 386 */
2317+#define bfd_mach_i386_i386 1
2318+#define bfd_mach_i386_i8086 2
2319+#define bfd_mach_i386_i386_intel_syntax 3
2320+#define bfd_mach_x86_64 64
2321+#define bfd_mach_x86_64_intel_syntax 65
2322+ bfd_arch_we32k, /* AT&T WE32xxx */
2323+ bfd_arch_tahoe, /* CCI/Harris Tahoe */
2324+ bfd_arch_i860, /* Intel 860 */
2325+ bfd_arch_i370, /* IBM 360/370 Mainframes */
2326+ bfd_arch_romp, /* IBM ROMP PC/RT */
2327+ bfd_arch_convex, /* Convex */
2328+ bfd_arch_m88k, /* Motorola 88xxx */
2329+ bfd_arch_m98k, /* Motorola 98xxx */
2330+ bfd_arch_pyramid, /* Pyramid Technology */
2331+ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */
2332+#define bfd_mach_h8300 1
2333+#define bfd_mach_h8300h 2
2334+#define bfd_mach_h8300s 3
2335+#define bfd_mach_h8300hn 4
2336+#define bfd_mach_h8300sn 5
2337+#define bfd_mach_h8300sx 6
2338+#define bfd_mach_h8300sxn 7
2339+ bfd_arch_pdp11, /* DEC PDP-11 */
2340+ bfd_arch_powerpc, /* PowerPC */
2341+#define bfd_mach_ppc 32
2342+#define bfd_mach_ppc64 64
2343+#define bfd_mach_ppc_403 403
2344+#define bfd_mach_ppc_403gc 4030
2345+#define bfd_mach_ppc_505 505
2346+#define bfd_mach_ppc_601 601
2347+#define bfd_mach_ppc_602 602
2348+#define bfd_mach_ppc_603 603
2349+#define bfd_mach_ppc_ec603e 6031
2350+#define bfd_mach_ppc_604 604
2351+#define bfd_mach_ppc_620 620
2352+#define bfd_mach_ppc_630 630
2353+#define bfd_mach_ppc_750 750
2354+#define bfd_mach_ppc_860 860
2355+#define bfd_mach_ppc_a35 35
2356+#define bfd_mach_ppc_rs64ii 642
2357+#define bfd_mach_ppc_rs64iii 643
2358+#define bfd_mach_ppc_7400 7400
2359+#define bfd_mach_ppc_e500 500
2360+ bfd_arch_rs6000, /* IBM RS/6000 */
2361+#define bfd_mach_rs6k 6000
2362+#define bfd_mach_rs6k_rs1 6001
2363+#define bfd_mach_rs6k_rsc 6003
2364+#define bfd_mach_rs6k_rs2 6002
2365+ bfd_arch_hppa, /* HP PA RISC */
2366+#define bfd_mach_hppa10 10
2367+#define bfd_mach_hppa11 11
2368+#define bfd_mach_hppa20 20
2369+#define bfd_mach_hppa20w 25
2370+ bfd_arch_d10v, /* Mitsubishi D10V */
2371+#define bfd_mach_d10v 1
2372+#define bfd_mach_d10v_ts2 2
2373+#define bfd_mach_d10v_ts3 3
2374+ bfd_arch_d30v, /* Mitsubishi D30V */
2375+ bfd_arch_dlx, /* DLX */
2376+ bfd_arch_m68hc11, /* Motorola 68HC11 */
2377+ bfd_arch_m68hc12, /* Motorola 68HC12 */
2378+#define bfd_mach_m6812_default 0
2379+#define bfd_mach_m6812 1
2380+#define bfd_mach_m6812s 2
2381+ bfd_arch_z8k, /* Zilog Z8000 */
2382+#define bfd_mach_z8001 1
2383+#define bfd_mach_z8002 2
2384+ bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */
2385+ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */
2386+#define bfd_mach_sh 1
2387+#define bfd_mach_sh2 0x20
2388+#define bfd_mach_sh_dsp 0x2d
2389+#define bfd_mach_sh2a 0x2a
2390+#define bfd_mach_sh2a_nofpu 0x2b
2391+#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
2392+#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
2393+#define bfd_mach_sh2a_or_sh4 0x2a3
2394+#define bfd_mach_sh2a_or_sh3e 0x2a4
2395+#define bfd_mach_sh2e 0x2e
2396+#define bfd_mach_sh3 0x30
2397+#define bfd_mach_sh3_nommu 0x31
2398+#define bfd_mach_sh3_dsp 0x3d
2399+#define bfd_mach_sh3e 0x3e
2400+#define bfd_mach_sh4 0x40
2401+#define bfd_mach_sh4_nofpu 0x41
2402+#define bfd_mach_sh4_nommu_nofpu 0x42
2403+#define bfd_mach_sh4a 0x4a
2404+#define bfd_mach_sh4a_nofpu 0x4b
2405+#define bfd_mach_sh4al_dsp 0x4d
2406+#define bfd_mach_sh5 0x50
2407+ bfd_arch_alpha, /* Dec Alpha */
2408+#define bfd_mach_alpha_ev4 0x10
2409+#define bfd_mach_alpha_ev5 0x20
2410+#define bfd_mach_alpha_ev6 0x30
2411+ bfd_arch_arm, /* Advanced Risc Machines ARM. */
2412+#define bfd_mach_arm_unknown 0
2413+#define bfd_mach_arm_2 1
2414+#define bfd_mach_arm_2a 2
2415+#define bfd_mach_arm_3 3
2416+#define bfd_mach_arm_3M 4
2417+#define bfd_mach_arm_4 5
2418+#define bfd_mach_arm_4T 6
2419+#define bfd_mach_arm_5 7
2420+#define bfd_mach_arm_5T 8
2421+#define bfd_mach_arm_5TE 9
2422+#define bfd_mach_arm_XScale 10
2423+#define bfd_mach_arm_ep9312 11
2424+#define bfd_mach_arm_iWMMXt 12
2425+ bfd_arch_ns32k, /* National Semiconductors ns32000 */
2426+ bfd_arch_w65, /* WDC 65816 */
2427+ bfd_arch_tic30, /* Texas Instruments TMS320C30 */
2428+ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */
2429+#define bfd_mach_tic3x 30
2430+#define bfd_mach_tic4x 40
2431+ bfd_arch_tic54x, /* Texas Instruments TMS320C54X */
2432+ bfd_arch_tic80, /* TI TMS320c80 (MVP) */
2433+ bfd_arch_v850, /* NEC V850 */
2434+#define bfd_mach_v850 1
2435+#define bfd_mach_v850e 'E'
2436+#define bfd_mach_v850e1 '1'
2437+ bfd_arch_arc, /* ARC Cores */
2438+#define bfd_mach_arc_5 5
2439+#define bfd_mach_arc_6 6
2440+#define bfd_mach_arc_7 7
2441+#define bfd_mach_arc_8 8
2442+ bfd_arch_m32c, /* Renesas M16C/M32C. */
2443+#define bfd_mach_m16c 0x75
2444+#define bfd_mach_m32c 0x78
2445+ bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */
2446+#define bfd_mach_m32r 1 /* For backwards compatibility. */
2447+#define bfd_mach_m32rx 'x'
2448+#define bfd_mach_m32r2 '2'
2449+ bfd_arch_mn10200, /* Matsushita MN10200 */
2450+ bfd_arch_mn10300, /* Matsushita MN10300 */
2451+#define bfd_mach_mn10300 300
2452+#define bfd_mach_am33 330
2453+#define bfd_mach_am33_2 332
2454+ bfd_arch_fr30,
2455+#define bfd_mach_fr30 0x46523330
2456+ bfd_arch_frv,
2457+#define bfd_mach_frv 1
2458+#define bfd_mach_frvsimple 2
2459+#define bfd_mach_fr300 300
2460+#define bfd_mach_fr400 400
2461+#define bfd_mach_fr450 450
2462+#define bfd_mach_frvtomcat 499 /* fr500 prototype */
2463+#define bfd_mach_fr500 500
2464+#define bfd_mach_fr550 550
2465+ bfd_arch_mcore,
2466+ bfd_arch_ia64, /* HP/Intel ia64 */
2467+#define bfd_mach_ia64_elf64 64
2468+#define bfd_mach_ia64_elf32 32
2469+ bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */
2470+#define bfd_mach_ip2022 1
2471+#define bfd_mach_ip2022ext 2
2472+ bfd_arch_iq2000, /* Vitesse IQ2000. */
2473+#define bfd_mach_iq2000 1
2474+#define bfd_mach_iq10 2
2475+ bfd_arch_mt,
2476+#define bfd_mach_ms1 1
2477+#define bfd_mach_mrisc2 2
2478+#define bfd_mach_ms2 3
2479+ bfd_arch_pj,
2480+ bfd_arch_avr, /* Atmel AVR microcontrollers. */
2481+#define bfd_mach_avr1 1
2482+#define bfd_mach_avr2 2
2483+#define bfd_mach_avr3 3
2484+#define bfd_mach_avr4 4
2485+#define bfd_mach_avr5 5
2486+ bfd_arch_bfin, /* ADI Blackfin */
2487+#define bfd_mach_bfin 1
2488+ bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
2489+#define bfd_mach_cr16c 1
2490+ bfd_arch_crx, /* National Semiconductor CRX. */
2491+#define bfd_mach_crx 1
2492+ bfd_arch_cris, /* Axis CRIS */
2493+#define bfd_mach_cris_v0_v10 255
2494+#define bfd_mach_cris_v32 32
2495+#define bfd_mach_cris_v10_v32 1032
2496+ bfd_arch_s390, /* IBM s390 */
2497+#define bfd_mach_s390_31 31
2498+#define bfd_mach_s390_64 64
2499+ bfd_arch_openrisc, /* OpenRISC */
2500+ bfd_arch_mmix, /* Donald Knuth's educational processor. */
2501+ bfd_arch_xstormy16,
2502+#define bfd_mach_xstormy16 1
2503+ bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
2504+#define bfd_mach_msp11 11
2505+#define bfd_mach_msp110 110
2506+#define bfd_mach_msp12 12
2507+#define bfd_mach_msp13 13
2508+#define bfd_mach_msp14 14
2509+#define bfd_mach_msp15 15
2510+#define bfd_mach_msp16 16
2511+#define bfd_mach_msp21 21
2512+#define bfd_mach_msp31 31
2513+#define bfd_mach_msp32 32
2514+#define bfd_mach_msp33 33
2515+#define bfd_mach_msp41 41
2516+#define bfd_mach_msp42 42
2517+#define bfd_mach_msp43 43
2518+#define bfd_mach_msp44 44
2519+ bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
2520+#define bfd_mach_xtensa 1
2521+ bfd_arch_maxq, /* Dallas MAXQ 10/20 */
2522+#define bfd_mach_maxq10 10
2523+#define bfd_mach_maxq20 20
2524+ bfd_arch_z80,
2525+#define bfd_mach_z80strict 1 /* No undocumented opcodes. */
2526+#define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */
2527+#define bfd_mach_z80full 7 /* All undocumented instructions. */
2528+#define bfd_mach_r800 11 /* R800: successor with multiplication. */
2529+ bfd_arch_last
2530+ };
2531+
2532+typedef struct bfd_arch_info
2533+{
2534+ int bits_per_word;
2535+ int bits_per_address;
2536+ int bits_per_byte;
2537+ enum bfd_architecture arch;
2538+ unsigned long mach;
2539+ const char *arch_name;
2540+ const char *printable_name;
2541+ unsigned int section_align_power;
2542+ /* TRUE if this is the default machine for the architecture.
2543+ The default arch should be the first entry for an arch so that
2544+ all the entries for that arch can be accessed via <<next>>. */
2545+ bfd_boolean the_default;
2546+ const struct bfd_arch_info * (*compatible)
2547+ (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
2548+
2549+ bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
2550+
2551+ const struct bfd_arch_info *next;
2552+}
2553+bfd_arch_info_type;
2554+
2555+const char *bfd_printable_name (bfd *abfd);
2556+
2557+const bfd_arch_info_type *bfd_scan_arch (const char *string);
2558+
2559+const char **bfd_arch_list (void);
2560+
2561+const bfd_arch_info_type *bfd_arch_get_compatible
2562+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
2563+
2564+void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
2565+
2566+enum bfd_architecture bfd_get_arch (bfd *abfd);
2567+
2568+unsigned long bfd_get_mach (bfd *abfd);
2569+
2570+unsigned int bfd_arch_bits_per_byte (bfd *abfd);
2571+
2572+unsigned int bfd_arch_bits_per_address (bfd *abfd);
2573+
2574+const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
2575+
2576+const bfd_arch_info_type *bfd_lookup_arch
2577+ (enum bfd_architecture arch, unsigned long machine);
2578+
2579+const char *bfd_printable_arch_mach
2580+ (enum bfd_architecture arch, unsigned long machine);
2581+
2582+unsigned int bfd_octets_per_byte (bfd *abfd);
2583+
2584+unsigned int bfd_arch_mach_octets_per_byte
2585+ (enum bfd_architecture arch, unsigned long machine);
2586+
2587+/* Extracted from reloc.c. */
2588+typedef enum bfd_reloc_status
2589+{
2590+ /* No errors detected. */
2591+ bfd_reloc_ok,
2592+
2593+ /* The relocation was performed, but there was an overflow. */
2594+ bfd_reloc_overflow,
2595+
2596+ /* The address to relocate was not within the section supplied. */
2597+ bfd_reloc_outofrange,
2598+
2599+ /* Used by special functions. */
2600+ bfd_reloc_continue,
2601+
2602+ /* Unsupported relocation size requested. */
2603+ bfd_reloc_notsupported,
2604+
2605+ /* Unused. */
2606+ bfd_reloc_other,
2607+
2608+ /* The symbol to relocate against was undefined. */
2609+ bfd_reloc_undefined,
2610+
2611+ /* The relocation was performed, but may not be ok - presently
2612+ generated only when linking i960 coff files with i960 b.out
2613+ symbols. If this type is returned, the error_message argument
2614+ to bfd_perform_relocation will be set. */
2615+ bfd_reloc_dangerous
2616+ }
2617+ bfd_reloc_status_type;
2618+
2619+
2620+typedef struct reloc_cache_entry
2621+{
2622+ /* A pointer into the canonical table of pointers. */
2623+ struct bfd_symbol **sym_ptr_ptr;
2624+
2625+ /* offset in section. */
2626+ bfd_size_type address;
2627+
2628+ /* addend for relocation value. */
2629+ bfd_vma addend;
2630+
2631+ /* Pointer to how to perform the required relocation. */
2632+ reloc_howto_type *howto;
2633+
2634+}
2635+arelent;
2636+
2637+enum complain_overflow
2638+{
2639+ /* Do not complain on overflow. */
2640+ complain_overflow_dont,
2641+
2642+ /* Complain if the value overflows when considered as a signed
2643+ number one bit larger than the field. ie. A bitfield of N bits
2644+ is allowed to represent -2**n to 2**n-1. */
2645+ complain_overflow_bitfield,
2646+
2647+ /* Complain if the value overflows when considered as a signed
2648+ number. */
2649+ complain_overflow_signed,
2650+
2651+ /* Complain if the value overflows when considered as an
2652+ unsigned number. */
2653+ complain_overflow_unsigned
2654+};
2655+
2656+struct reloc_howto_struct
2657+{
2658+ /* The type field has mainly a documentary use - the back end can
2659+ do what it wants with it, though normally the back end's
2660+ external idea of what a reloc number is stored
2661+ in this field. For example, a PC relative word relocation
2662+ in a coff environment has the type 023 - because that's
2663+ what the outside world calls a R_PCRWORD reloc. */
2664+ unsigned int type;
2665+
2666+ /* The value the final relocation is shifted right by. This drops
2667+ unwanted data from the relocation. */
2668+ unsigned int rightshift;
2669+
2670+ /* The size of the item to be relocated. This is *not* a
2671+ power-of-two measure. To get the number of bytes operated
2672+ on by a type of relocation, use bfd_get_reloc_size. */
2673+ int size;
2674+
2675+ /* The number of bits in the item to be relocated. This is used
2676+ when doing overflow checking. */
2677+ unsigned int bitsize;
2678+
2679+ /* Notes that the relocation is relative to the location in the
2680+ data section of the addend. The relocation function will
2681+ subtract from the relocation value the address of the location
2682+ being relocated. */
2683+ bfd_boolean pc_relative;
2684+
2685+ /* The bit position of the reloc value in the destination.
2686+ The relocated value is left shifted by this amount. */
2687+ unsigned int bitpos;
2688+
2689+ /* What type of overflow error should be checked for when
2690+ relocating. */
2691+ enum complain_overflow complain_on_overflow;
2692+
2693+ /* If this field is non null, then the supplied function is
2694+ called rather than the normal function. This allows really
2695+ strange relocation methods to be accommodated (e.g., i960 callj
2696+ instructions). */
2697+ bfd_reloc_status_type (*special_function)
2698+ (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
2699+ bfd *, char **);
2700+
2701+ /* The textual name of the relocation type. */
2702+ char *name;
2703+
2704+ /* Some formats record a relocation addend in the section contents
2705+ rather than with the relocation. For ELF formats this is the
2706+ distinction between USE_REL and USE_RELA (though the code checks
2707+ for USE_REL == 1/0). The value of this field is TRUE if the
2708+ addend is recorded with the section contents; when performing a
2709+ partial link (ld -r) the section contents (the data) will be
2710+ modified. The value of this field is FALSE if addends are
2711+ recorded with the relocation (in arelent.addend); when performing
2712+ a partial link the relocation will be modified.
2713+ All relocations for all ELF USE_RELA targets should set this field
2714+ to FALSE (values of TRUE should be looked on with suspicion).
2715+ However, the converse is not true: not all relocations of all ELF
2716+ USE_REL targets set this field to TRUE. Why this is so is peculiar
2717+ to each particular target. For relocs that aren't used in partial
2718+ links (e.g. GOT stuff) it doesn't matter what this is set to. */
2719+ bfd_boolean partial_inplace;
2720+
2721+ /* src_mask selects the part of the instruction (or data) to be used
2722+ in the relocation sum. If the target relocations don't have an
2723+ addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
2724+ dst_mask to extract the addend from the section contents. If
2725+ relocations do have an addend in the reloc, eg. ELF USE_RELA, this
2726+ field should be zero. Non-zero values for ELF USE_RELA targets are
2727+ bogus as in those cases the value in the dst_mask part of the
2728+ section contents should be treated as garbage. */
2729+ bfd_vma src_mask;
2730+
2731+ /* dst_mask selects which parts of the instruction (or data) are
2732+ replaced with a relocated value. */
2733+ bfd_vma dst_mask;
2734+
2735+ /* When some formats create PC relative instructions, they leave
2736+ the value of the pc of the place being relocated in the offset
2737+ slot of the instruction, so that a PC relative relocation can
2738+ be made just by adding in an ordinary offset (e.g., sun3 a.out).
2739+ Some formats leave the displacement part of an instruction
2740+ empty (e.g., m88k bcs); this flag signals the fact. */
2741+ bfd_boolean pcrel_offset;
2742+};
2743+
2744+#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
2745+ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
2746+#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
2747+ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
2748+ NAME, FALSE, 0, 0, IN)
2749+
2750+#define EMPTY_HOWTO(C) \
2751+ HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
2752+ NULL, FALSE, 0, 0, FALSE)
2753+
2754+#define HOWTO_PREPARE(relocation, symbol) \
2755+ { \
2756+ if (symbol != NULL) \
2757+ { \
2758+ if (bfd_is_com_section (symbol->section)) \
2759+ { \
2760+ relocation = 0; \
2761+ } \
2762+ else \
2763+ { \
2764+ relocation = symbol->value; \
2765+ } \
2766+ } \
2767+ }
2768+
2769+unsigned int bfd_get_reloc_size (reloc_howto_type *);
2770+
2771+typedef struct relent_chain
2772+{
2773+ arelent relent;
2774+ struct relent_chain *next;
2775+}
2776+arelent_chain;
2777+
2778+bfd_reloc_status_type bfd_check_overflow
2779+ (enum complain_overflow how,
2780+ unsigned int bitsize,
2781+ unsigned int rightshift,
2782+ unsigned int addrsize,
2783+ bfd_vma relocation);
2784+
2785+bfd_reloc_status_type bfd_perform_relocation
2786+ (bfd *abfd,
2787+ arelent *reloc_entry,
2788+ void *data,
2789+ asection *input_section,
2790+ bfd *output_bfd,
2791+ char **error_message);
2792+
2793+bfd_reloc_status_type bfd_install_relocation
2794+ (bfd *abfd,
2795+ arelent *reloc_entry,
2796+ void *data, bfd_vma data_start,
2797+ asection *input_section,
2798+ char **error_message);
2799+
2800+enum bfd_reloc_code_real {
2801+ _dummy_first_bfd_reloc_code_real,
2802+
2803+
2804+/* Basic absolute relocations of N bits. */
2805+ BFD_RELOC_64,
2806+ BFD_RELOC_32,
2807+ BFD_RELOC_26,
2808+ BFD_RELOC_24,
2809+ BFD_RELOC_16,
2810+ BFD_RELOC_14,
2811+ BFD_RELOC_8,
2812+
2813+/* PC-relative relocations. Sometimes these are relative to the address
2814+of the relocation itself; sometimes they are relative to the start of
2815+the section containing the relocation. It depends on the specific target.
2816+
2817+The 24-bit relocation is used in some Intel 960 configurations. */
2818+ BFD_RELOC_64_PCREL,
2819+ BFD_RELOC_32_PCREL,
2820+ BFD_RELOC_24_PCREL,
2821+ BFD_RELOC_16_PCREL,
2822+ BFD_RELOC_12_PCREL,
2823+ BFD_RELOC_8_PCREL,
2824+
2825+/* Section relative relocations. Some targets need this for DWARF2. */
2826+ BFD_RELOC_32_SECREL,
2827+
2828+/* For ELF. */
2829+ BFD_RELOC_32_GOT_PCREL,
2830+ BFD_RELOC_16_GOT_PCREL,
2831+ BFD_RELOC_8_GOT_PCREL,
2832+ BFD_RELOC_32_GOTOFF,
2833+ BFD_RELOC_16_GOTOFF,
2834+ BFD_RELOC_LO16_GOTOFF,
2835+ BFD_RELOC_HI16_GOTOFF,
2836+ BFD_RELOC_HI16_S_GOTOFF,
2837+ BFD_RELOC_8_GOTOFF,
2838+ BFD_RELOC_64_PLT_PCREL,
2839+ BFD_RELOC_32_PLT_PCREL,
2840+ BFD_RELOC_24_PLT_PCREL,
2841+ BFD_RELOC_16_PLT_PCREL,
2842+ BFD_RELOC_8_PLT_PCREL,
2843+ BFD_RELOC_64_PLTOFF,
2844+ BFD_RELOC_32_PLTOFF,
2845+ BFD_RELOC_16_PLTOFF,
2846+ BFD_RELOC_LO16_PLTOFF,
2847+ BFD_RELOC_HI16_PLTOFF,
2848+ BFD_RELOC_HI16_S_PLTOFF,
2849+ BFD_RELOC_8_PLTOFF,
2850+
2851+/* Relocations used by 68K ELF. */
2852+ BFD_RELOC_68K_GLOB_DAT,
2853+ BFD_RELOC_68K_JMP_SLOT,
2854+ BFD_RELOC_68K_RELATIVE,
2855+
2856+/* Linkage-table relative. */
2857+ BFD_RELOC_32_BASEREL,
2858+ BFD_RELOC_16_BASEREL,
2859+ BFD_RELOC_LO16_BASEREL,
2860+ BFD_RELOC_HI16_BASEREL,
2861+ BFD_RELOC_HI16_S_BASEREL,
2862+ BFD_RELOC_8_BASEREL,
2863+ BFD_RELOC_RVA,
2864+
2865+/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
2866+ BFD_RELOC_8_FFnn,
2867+
2868+/* These PC-relative relocations are stored as word displacements --
2869+i.e., byte displacements shifted right two bits. The 30-bit word
2870+displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
2871+SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
2872+signed 16-bit displacement is used on the MIPS, and the 23-bit
2873+displacement is used on the Alpha. */
2874+ BFD_RELOC_32_PCREL_S2,
2875+ BFD_RELOC_16_PCREL_S2,
2876+ BFD_RELOC_23_PCREL_S2,
2877+
2878+/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
2879+the target word. These are used on the SPARC. */
2880+ BFD_RELOC_HI22,
2881+ BFD_RELOC_LO10,
2882+
2883+/* For systems that allocate a Global Pointer register, these are
2884+displacements off that register. These relocation types are
2885+handled specially, because the value the register will have is
2886+decided relatively late. */
2887+ BFD_RELOC_GPREL16,
2888+ BFD_RELOC_GPREL32,
2889+
2890+/* Reloc types used for i960/b.out. */
2891+ BFD_RELOC_I960_CALLJ,
2892+
2893+/* SPARC ELF relocations. There is probably some overlap with other
2894+relocation types already defined. */
2895+ BFD_RELOC_NONE,
2896+ BFD_RELOC_SPARC_WDISP22,
2897+ BFD_RELOC_SPARC22,
2898+ BFD_RELOC_SPARC13,
2899+ BFD_RELOC_SPARC_GOT10,
2900+ BFD_RELOC_SPARC_GOT13,
2901+ BFD_RELOC_SPARC_GOT22,
2902+ BFD_RELOC_SPARC_PC10,
2903+ BFD_RELOC_SPARC_PC22,
2904+ BFD_RELOC_SPARC_WPLT30,
2905+ BFD_RELOC_SPARC_COPY,
2906+ BFD_RELOC_SPARC_GLOB_DAT,
2907+ BFD_RELOC_SPARC_JMP_SLOT,
2908+ BFD_RELOC_SPARC_RELATIVE,
2909+ BFD_RELOC_SPARC_UA16,
2910+ BFD_RELOC_SPARC_UA32,
2911+ BFD_RELOC_SPARC_UA64,
2912+
2913+/* I think these are specific to SPARC a.out (e.g., Sun 4). */
2914+ BFD_RELOC_SPARC_BASE13,
2915+ BFD_RELOC_SPARC_BASE22,
2916+
2917+/* SPARC64 relocations */
2918+#define BFD_RELOC_SPARC_64 BFD_RELOC_64
2919+ BFD_RELOC_SPARC_10,
2920+ BFD_RELOC_SPARC_11,
2921+ BFD_RELOC_SPARC_OLO10,
2922+ BFD_RELOC_SPARC_HH22,
2923+ BFD_RELOC_SPARC_HM10,
2924+ BFD_RELOC_SPARC_LM22,
2925+ BFD_RELOC_SPARC_PC_HH22,
2926+ BFD_RELOC_SPARC_PC_HM10,
2927+ BFD_RELOC_SPARC_PC_LM22,
2928+ BFD_RELOC_SPARC_WDISP16,
2929+ BFD_RELOC_SPARC_WDISP19,
2930+ BFD_RELOC_SPARC_7,
2931+ BFD_RELOC_SPARC_6,
2932+ BFD_RELOC_SPARC_5,
2933+#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
2934+ BFD_RELOC_SPARC_PLT32,
2935+ BFD_RELOC_SPARC_PLT64,
2936+ BFD_RELOC_SPARC_HIX22,
2937+ BFD_RELOC_SPARC_LOX10,
2938+ BFD_RELOC_SPARC_H44,
2939+ BFD_RELOC_SPARC_M44,
2940+ BFD_RELOC_SPARC_L44,
2941+ BFD_RELOC_SPARC_REGISTER,
2942+
2943+/* SPARC little endian relocation */
2944+ BFD_RELOC_SPARC_REV32,
2945+
2946+/* SPARC TLS relocations */
2947+ BFD_RELOC_SPARC_TLS_GD_HI22,
2948+ BFD_RELOC_SPARC_TLS_GD_LO10,
2949+ BFD_RELOC_SPARC_TLS_GD_ADD,
2950+ BFD_RELOC_SPARC_TLS_GD_CALL,
2951+ BFD_RELOC_SPARC_TLS_LDM_HI22,
2952+ BFD_RELOC_SPARC_TLS_LDM_LO10,
2953+ BFD_RELOC_SPARC_TLS_LDM_ADD,
2954+ BFD_RELOC_SPARC_TLS_LDM_CALL,
2955+ BFD_RELOC_SPARC_TLS_LDO_HIX22,
2956+ BFD_RELOC_SPARC_TLS_LDO_LOX10,
2957+ BFD_RELOC_SPARC_TLS_LDO_ADD,
2958+ BFD_RELOC_SPARC_TLS_IE_HI22,
2959+ BFD_RELOC_SPARC_TLS_IE_LO10,
2960+ BFD_RELOC_SPARC_TLS_IE_LD,
2961+ BFD_RELOC_SPARC_TLS_IE_LDX,
2962+ BFD_RELOC_SPARC_TLS_IE_ADD,
2963+ BFD_RELOC_SPARC_TLS_LE_HIX22,
2964+ BFD_RELOC_SPARC_TLS_LE_LOX10,
2965+ BFD_RELOC_SPARC_TLS_DTPMOD32,
2966+ BFD_RELOC_SPARC_TLS_DTPMOD64,
2967+ BFD_RELOC_SPARC_TLS_DTPOFF32,
2968+ BFD_RELOC_SPARC_TLS_DTPOFF64,
2969+ BFD_RELOC_SPARC_TLS_TPOFF32,
2970+ BFD_RELOC_SPARC_TLS_TPOFF64,
2971+
2972+/* Alpha ECOFF and ELF relocations. Some of these treat the symbol or
2973+"addend" in some special way.
2974+For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
2975+writing; when reading, it will be the absolute section symbol. The
2976+addend is the displacement in bytes of the "lda" instruction from
2977+the "ldah" instruction (which is at the address of this reloc). */
2978+ BFD_RELOC_ALPHA_GPDISP_HI16,
2979+
2980+/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
2981+with GPDISP_HI16 relocs. The addend is ignored when writing the
2982+relocations out, and is filled in with the file's GP value on
2983+reading, for convenience. */
2984+ BFD_RELOC_ALPHA_GPDISP_LO16,
2985+
2986+/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
2987+relocation except that there is no accompanying GPDISP_LO16
2988+relocation. */
2989+ BFD_RELOC_ALPHA_GPDISP,
2990+
2991+/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
2992+the assembler turns it into a LDQ instruction to load the address of
2993+the symbol, and then fills in a register in the real instruction.
2994+
2995+The LITERAL reloc, at the LDQ instruction, refers to the .lita
2996+section symbol. The addend is ignored when writing, but is filled
2997+in with the file's GP value on reading, for convenience, as with the
2998+GPDISP_LO16 reloc.
2999+
3000+The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
3001+It should refer to the symbol to be referenced, as with 16_GOTOFF,
3002+but it generates output not based on the position within the .got
3003+section, but relative to the GP value chosen for the file during the
3004+final link stage.
3005+
3006+The LITUSE reloc, on the instruction using the loaded address, gives
3007+information to the linker that it might be able to use to optimize
3008+away some literal section references. The symbol is ignored (read
3009+as the absolute section symbol), and the "addend" indicates the type
3010+of instruction using the register:
3011+1 - "memory" fmt insn
3012+2 - byte-manipulation (byte offset reg)
3013+3 - jsr (target of branch) */
3014+ BFD_RELOC_ALPHA_LITERAL,
3015+ BFD_RELOC_ALPHA_ELF_LITERAL,
3016+ BFD_RELOC_ALPHA_LITUSE,
3017+
3018+/* The HINT relocation indicates a value that should be filled into the
3019+"hint" field of a jmp/jsr/ret instruction, for possible branch-
3020+prediction logic which may be provided on some processors. */
3021+ BFD_RELOC_ALPHA_HINT,
3022+
3023+/* The LINKAGE relocation outputs a linkage pair in the object file,
3024+which is filled by the linker. */
3025+ BFD_RELOC_ALPHA_LINKAGE,
3026+
3027+/* The CODEADDR relocation outputs a STO_CA in the object file,
3028+which is filled by the linker. */
3029+ BFD_RELOC_ALPHA_CODEADDR,
3030+
3031+/* The GPREL_HI/LO relocations together form a 32-bit offset from the
3032+GP register. */
3033+ BFD_RELOC_ALPHA_GPREL_HI16,
3034+ BFD_RELOC_ALPHA_GPREL_LO16,
3035+
3036+/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
3037+share a common GP, and the target address is adjusted for
3038+STO_ALPHA_STD_GPLOAD. */
3039+ BFD_RELOC_ALPHA_BRSGP,
3040+
3041+/* Alpha thread-local storage relocations. */
3042+ BFD_RELOC_ALPHA_TLSGD,
3043+ BFD_RELOC_ALPHA_TLSLDM,
3044+ BFD_RELOC_ALPHA_DTPMOD64,
3045+ BFD_RELOC_ALPHA_GOTDTPREL16,
3046+ BFD_RELOC_ALPHA_DTPREL64,
3047+ BFD_RELOC_ALPHA_DTPREL_HI16,
3048+ BFD_RELOC_ALPHA_DTPREL_LO16,
3049+ BFD_RELOC_ALPHA_DTPREL16,
3050+ BFD_RELOC_ALPHA_GOTTPREL16,
3051+ BFD_RELOC_ALPHA_TPREL64,
3052+ BFD_RELOC_ALPHA_TPREL_HI16,
3053+ BFD_RELOC_ALPHA_TPREL_LO16,
3054+ BFD_RELOC_ALPHA_TPREL16,
3055+
3056+/* Bits 27..2 of the relocation address shifted right 2 bits;
3057+simple reloc otherwise. */
3058+ BFD_RELOC_MIPS_JMP,
3059+
3060+/* The MIPS16 jump instruction. */
3061+ BFD_RELOC_MIPS16_JMP,
3062+
3063+/* MIPS16 GP relative reloc. */
3064+ BFD_RELOC_MIPS16_GPREL,
3065+
3066+/* High 16 bits of 32-bit value; simple reloc. */
3067+ BFD_RELOC_HI16,
3068+
3069+/* High 16 bits of 32-bit value but the low 16 bits will be sign
3070+extended and added to form the final result. If the low 16
3071+bits form a negative number, we need to add one to the high value
3072+to compensate for the borrow when the low bits are added. */
3073+ BFD_RELOC_HI16_S,
3074+
3075+/* Low 16 bits. */
3076+ BFD_RELOC_LO16,
3077+
3078+/* High 16 bits of 32-bit pc-relative value */
3079+ BFD_RELOC_HI16_PCREL,
3080+
3081+/* High 16 bits of 32-bit pc-relative value, adjusted */
3082+ BFD_RELOC_HI16_S_PCREL,
3083+
3084+/* Low 16 bits of pc-relative value */
3085+ BFD_RELOC_LO16_PCREL,
3086+
3087+/* MIPS16 high 16 bits of 32-bit value. */
3088+ BFD_RELOC_MIPS16_HI16,
3089+
3090+/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
3091+extended and added to form the final result. If the low 16
3092+bits form a negative number, we need to add one to the high value
3093+to compensate for the borrow when the low bits are added. */
3094+ BFD_RELOC_MIPS16_HI16_S,
3095+
3096+/* MIPS16 low 16 bits. */
3097+ BFD_RELOC_MIPS16_LO16,
3098+
3099+/* Relocation against a MIPS literal section. */
3100+ BFD_RELOC_MIPS_LITERAL,
3101+
3102+/* MIPS ELF relocations. */
3103+ BFD_RELOC_MIPS_GOT16,
3104+ BFD_RELOC_MIPS_CALL16,
3105+ BFD_RELOC_MIPS_GOT_HI16,
3106+ BFD_RELOC_MIPS_GOT_LO16,
3107+ BFD_RELOC_MIPS_CALL_HI16,
3108+ BFD_RELOC_MIPS_CALL_LO16,
3109+ BFD_RELOC_MIPS_SUB,
3110+ BFD_RELOC_MIPS_GOT_PAGE,
3111+ BFD_RELOC_MIPS_GOT_OFST,
3112+ BFD_RELOC_MIPS_GOT_DISP,
3113+ BFD_RELOC_MIPS_SHIFT5,
3114+ BFD_RELOC_MIPS_SHIFT6,
3115+ BFD_RELOC_MIPS_INSERT_A,
3116+ BFD_RELOC_MIPS_INSERT_B,
3117+ BFD_RELOC_MIPS_DELETE,
3118+ BFD_RELOC_MIPS_HIGHEST,
3119+ BFD_RELOC_MIPS_HIGHER,
3120+ BFD_RELOC_MIPS_SCN_DISP,
3121+ BFD_RELOC_MIPS_REL16,
3122+ BFD_RELOC_MIPS_RELGOT,
3123+ BFD_RELOC_MIPS_JALR,
3124+ BFD_RELOC_MIPS_TLS_DTPMOD32,
3125+ BFD_RELOC_MIPS_TLS_DTPREL32,
3126+ BFD_RELOC_MIPS_TLS_DTPMOD64,
3127+ BFD_RELOC_MIPS_TLS_DTPREL64,
3128+ BFD_RELOC_MIPS_TLS_GD,
3129+ BFD_RELOC_MIPS_TLS_LDM,
3130+ BFD_RELOC_MIPS_TLS_DTPREL_HI16,
3131+ BFD_RELOC_MIPS_TLS_DTPREL_LO16,
3132+ BFD_RELOC_MIPS_TLS_GOTTPREL,
3133+ BFD_RELOC_MIPS_TLS_TPREL32,
3134+ BFD_RELOC_MIPS_TLS_TPREL64,
3135+ BFD_RELOC_MIPS_TLS_TPREL_HI16,
3136+ BFD_RELOC_MIPS_TLS_TPREL_LO16,
3137+
3138+
3139+/* Fujitsu Frv Relocations. */
3140+ BFD_RELOC_FRV_LABEL16,
3141+ BFD_RELOC_FRV_LABEL24,
3142+ BFD_RELOC_FRV_LO16,
3143+ BFD_RELOC_FRV_HI16,
3144+ BFD_RELOC_FRV_GPREL12,
3145+ BFD_RELOC_FRV_GPRELU12,
3146+ BFD_RELOC_FRV_GPREL32,
3147+ BFD_RELOC_FRV_GPRELHI,
3148+ BFD_RELOC_FRV_GPRELLO,
3149+ BFD_RELOC_FRV_GOT12,
3150+ BFD_RELOC_FRV_GOTHI,
3151+ BFD_RELOC_FRV_GOTLO,
3152+ BFD_RELOC_FRV_FUNCDESC,
3153+ BFD_RELOC_FRV_FUNCDESC_GOT12,
3154+ BFD_RELOC_FRV_FUNCDESC_GOTHI,
3155+ BFD_RELOC_FRV_FUNCDESC_GOTLO,
3156+ BFD_RELOC_FRV_FUNCDESC_VALUE,
3157+ BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
3158+ BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
3159+ BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
3160+ BFD_RELOC_FRV_GOTOFF12,
3161+ BFD_RELOC_FRV_GOTOFFHI,
3162+ BFD_RELOC_FRV_GOTOFFLO,
3163+ BFD_RELOC_FRV_GETTLSOFF,
3164+ BFD_RELOC_FRV_TLSDESC_VALUE,
3165+ BFD_RELOC_FRV_GOTTLSDESC12,
3166+ BFD_RELOC_FRV_GOTTLSDESCHI,
3167+ BFD_RELOC_FRV_GOTTLSDESCLO,
3168+ BFD_RELOC_FRV_TLSMOFF12,
3169+ BFD_RELOC_FRV_TLSMOFFHI,
3170+ BFD_RELOC_FRV_TLSMOFFLO,
3171+ BFD_RELOC_FRV_GOTTLSOFF12,
3172+ BFD_RELOC_FRV_GOTTLSOFFHI,
3173+ BFD_RELOC_FRV_GOTTLSOFFLO,
3174+ BFD_RELOC_FRV_TLSOFF,
3175+ BFD_RELOC_FRV_TLSDESC_RELAX,
3176+ BFD_RELOC_FRV_GETTLSOFF_RELAX,
3177+ BFD_RELOC_FRV_TLSOFF_RELAX,
3178+ BFD_RELOC_FRV_TLSMOFF,
3179+
3180+
3181+/* This is a 24bit GOT-relative reloc for the mn10300. */
3182+ BFD_RELOC_MN10300_GOTOFF24,
3183+
3184+/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
3185+in the instruction. */
3186+ BFD_RELOC_MN10300_GOT32,
3187+
3188+/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
3189+in the instruction. */
3190+ BFD_RELOC_MN10300_GOT24,
3191+
3192+/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
3193+in the instruction. */
3194+ BFD_RELOC_MN10300_GOT16,
3195+
3196+/* Copy symbol at runtime. */
3197+ BFD_RELOC_MN10300_COPY,
3198+
3199+/* Create GOT entry. */
3200+ BFD_RELOC_MN10300_GLOB_DAT,
3201+
3202+/* Create PLT entry. */
3203+ BFD_RELOC_MN10300_JMP_SLOT,
3204+
3205+/* Adjust by program base. */
3206+ BFD_RELOC_MN10300_RELATIVE,
3207+
3208+
3209+/* i386/elf relocations */
3210+ BFD_RELOC_386_GOT32,
3211+ BFD_RELOC_386_PLT32,
3212+ BFD_RELOC_386_COPY,
3213+ BFD_RELOC_386_GLOB_DAT,
3214+ BFD_RELOC_386_JUMP_SLOT,
3215+ BFD_RELOC_386_RELATIVE,
3216+ BFD_RELOC_386_GOTOFF,
3217+ BFD_RELOC_386_GOTPC,
3218+ BFD_RELOC_386_TLS_TPOFF,
3219+ BFD_RELOC_386_TLS_IE,
3220+ BFD_RELOC_386_TLS_GOTIE,
3221+ BFD_RELOC_386_TLS_LE,
3222+ BFD_RELOC_386_TLS_GD,
3223+ BFD_RELOC_386_TLS_LDM,
3224+ BFD_RELOC_386_TLS_LDO_32,
3225+ BFD_RELOC_386_TLS_IE_32,
3226+ BFD_RELOC_386_TLS_LE_32,
3227+ BFD_RELOC_386_TLS_DTPMOD32,
3228+ BFD_RELOC_386_TLS_DTPOFF32,
3229+ BFD_RELOC_386_TLS_TPOFF32,
3230+
3231+/* x86-64/elf relocations */
3232+ BFD_RELOC_X86_64_GOT32,
3233+ BFD_RELOC_X86_64_PLT32,
3234+ BFD_RELOC_X86_64_COPY,
3235+ BFD_RELOC_X86_64_GLOB_DAT,
3236+ BFD_RELOC_X86_64_JUMP_SLOT,
3237+ BFD_RELOC_X86_64_RELATIVE,
3238+ BFD_RELOC_X86_64_GOTPCREL,
3239+ BFD_RELOC_X86_64_32S,
3240+ BFD_RELOC_X86_64_DTPMOD64,
3241+ BFD_RELOC_X86_64_DTPOFF64,
3242+ BFD_RELOC_X86_64_TPOFF64,
3243+ BFD_RELOC_X86_64_TLSGD,
3244+ BFD_RELOC_X86_64_TLSLD,
3245+ BFD_RELOC_X86_64_DTPOFF32,
3246+ BFD_RELOC_X86_64_GOTTPOFF,
3247+ BFD_RELOC_X86_64_TPOFF32,
3248+ BFD_RELOC_X86_64_GOTOFF64,
3249+ BFD_RELOC_X86_64_GOTPC32,
3250+ BFD_RELOC_X86_64_GOT64,
3251+ BFD_RELOC_X86_64_GOTPCREL64,
3252+ BFD_RELOC_X86_64_GOTPC64,
3253+ BFD_RELOC_X86_64_GOTPLT64,
3254+ BFD_RELOC_X86_64_PLTOFF64,
3255+
3256+/* ns32k relocations */
3257+ BFD_RELOC_NS32K_IMM_8,
3258+ BFD_RELOC_NS32K_IMM_16,
3259+ BFD_RELOC_NS32K_IMM_32,
3260+ BFD_RELOC_NS32K_IMM_8_PCREL,
3261+ BFD_RELOC_NS32K_IMM_16_PCREL,
3262+ BFD_RELOC_NS32K_IMM_32_PCREL,
3263+ BFD_RELOC_NS32K_DISP_8,
3264+ BFD_RELOC_NS32K_DISP_16,
3265+ BFD_RELOC_NS32K_DISP_32,
3266+ BFD_RELOC_NS32K_DISP_8_PCREL,
3267+ BFD_RELOC_NS32K_DISP_16_PCREL,
3268+ BFD_RELOC_NS32K_DISP_32_PCREL,
3269+
3270+/* PDP11 relocations */
3271+ BFD_RELOC_PDP11_DISP_8_PCREL,
3272+ BFD_RELOC_PDP11_DISP_6_PCREL,
3273+
3274+/* Picojava relocs. Not all of these appear in object files. */
3275+ BFD_RELOC_PJ_CODE_HI16,
3276+ BFD_RELOC_PJ_CODE_LO16,
3277+ BFD_RELOC_PJ_CODE_DIR16,
3278+ BFD_RELOC_PJ_CODE_DIR32,
3279+ BFD_RELOC_PJ_CODE_REL16,
3280+ BFD_RELOC_PJ_CODE_REL32,
3281+
3282+/* Power(rs6000) and PowerPC relocations. */
3283+ BFD_RELOC_PPC_B26,
3284+ BFD_RELOC_PPC_BA26,
3285+ BFD_RELOC_PPC_TOC16,
3286+ BFD_RELOC_PPC_B16,
3287+ BFD_RELOC_PPC_B16_BRTAKEN,
3288+ BFD_RELOC_PPC_B16_BRNTAKEN,
3289+ BFD_RELOC_PPC_BA16,
3290+ BFD_RELOC_PPC_BA16_BRTAKEN,
3291+ BFD_RELOC_PPC_BA16_BRNTAKEN,
3292+ BFD_RELOC_PPC_COPY,
3293+ BFD_RELOC_PPC_GLOB_DAT,
3294+ BFD_RELOC_PPC_JMP_SLOT,
3295+ BFD_RELOC_PPC_RELATIVE,
3296+ BFD_RELOC_PPC_LOCAL24PC,
3297+ BFD_RELOC_PPC_EMB_NADDR32,
3298+ BFD_RELOC_PPC_EMB_NADDR16,
3299+ BFD_RELOC_PPC_EMB_NADDR16_LO,
3300+ BFD_RELOC_PPC_EMB_NADDR16_HI,
3301+ BFD_RELOC_PPC_EMB_NADDR16_HA,
3302+ BFD_RELOC_PPC_EMB_SDAI16,
3303+ BFD_RELOC_PPC_EMB_SDA2I16,
3304+ BFD_RELOC_PPC_EMB_SDA2REL,
3305+ BFD_RELOC_PPC_EMB_SDA21,
3306+ BFD_RELOC_PPC_EMB_MRKREF,
3307+ BFD_RELOC_PPC_EMB_RELSEC16,
3308+ BFD_RELOC_PPC_EMB_RELST_LO,
3309+ BFD_RELOC_PPC_EMB_RELST_HI,
3310+ BFD_RELOC_PPC_EMB_RELST_HA,
3311+ BFD_RELOC_PPC_EMB_BIT_FLD,
3312+ BFD_RELOC_PPC_EMB_RELSDA,
3313+ BFD_RELOC_PPC64_HIGHER,
3314+ BFD_RELOC_PPC64_HIGHER_S,
3315+ BFD_RELOC_PPC64_HIGHEST,
3316+ BFD_RELOC_PPC64_HIGHEST_S,
3317+ BFD_RELOC_PPC64_TOC16_LO,
3318+ BFD_RELOC_PPC64_TOC16_HI,
3319+ BFD_RELOC_PPC64_TOC16_HA,
3320+ BFD_RELOC_PPC64_TOC,
3321+ BFD_RELOC_PPC64_PLTGOT16,
3322+ BFD_RELOC_PPC64_PLTGOT16_LO,
3323+ BFD_RELOC_PPC64_PLTGOT16_HI,
3324+ BFD_RELOC_PPC64_PLTGOT16_HA,
3325+ BFD_RELOC_PPC64_ADDR16_DS,
3326+ BFD_RELOC_PPC64_ADDR16_LO_DS,
3327+ BFD_RELOC_PPC64_GOT16_DS,
3328+ BFD_RELOC_PPC64_GOT16_LO_DS,
3329+ BFD_RELOC_PPC64_PLT16_LO_DS,
3330+ BFD_RELOC_PPC64_SECTOFF_DS,
3331+ BFD_RELOC_PPC64_SECTOFF_LO_DS,
3332+ BFD_RELOC_PPC64_TOC16_DS,
3333+ BFD_RELOC_PPC64_TOC16_LO_DS,
3334+ BFD_RELOC_PPC64_PLTGOT16_DS,
3335+ BFD_RELOC_PPC64_PLTGOT16_LO_DS,
3336+
3337+/* PowerPC and PowerPC64 thread-local storage relocations. */
3338+ BFD_RELOC_PPC_TLS,
3339+ BFD_RELOC_PPC_DTPMOD,
3340+ BFD_RELOC_PPC_TPREL16,
3341+ BFD_RELOC_PPC_TPREL16_LO,
3342+ BFD_RELOC_PPC_TPREL16_HI,
3343+ BFD_RELOC_PPC_TPREL16_HA,
3344+ BFD_RELOC_PPC_TPREL,
3345+ BFD_RELOC_PPC_DTPREL16,
3346+ BFD_RELOC_PPC_DTPREL16_LO,
3347+ BFD_RELOC_PPC_DTPREL16_HI,
3348+ BFD_RELOC_PPC_DTPREL16_HA,
3349+ BFD_RELOC_PPC_DTPREL,
3350+ BFD_RELOC_PPC_GOT_TLSGD16,
3351+ BFD_RELOC_PPC_GOT_TLSGD16_LO,
3352+ BFD_RELOC_PPC_GOT_TLSGD16_HI,
3353+ BFD_RELOC_PPC_GOT_TLSGD16_HA,
3354+ BFD_RELOC_PPC_GOT_TLSLD16,
3355+ BFD_RELOC_PPC_GOT_TLSLD16_LO,
3356+ BFD_RELOC_PPC_GOT_TLSLD16_HI,
3357+ BFD_RELOC_PPC_GOT_TLSLD16_HA,
3358+ BFD_RELOC_PPC_GOT_TPREL16,
3359+ BFD_RELOC_PPC_GOT_TPREL16_LO,
3360+ BFD_RELOC_PPC_GOT_TPREL16_HI,
3361+ BFD_RELOC_PPC_GOT_TPREL16_HA,
3362+ BFD_RELOC_PPC_GOT_DTPREL16,
3363+ BFD_RELOC_PPC_GOT_DTPREL16_LO,
3364+ BFD_RELOC_PPC_GOT_DTPREL16_HI,
3365+ BFD_RELOC_PPC_GOT_DTPREL16_HA,
3366+ BFD_RELOC_PPC64_TPREL16_DS,
3367+ BFD_RELOC_PPC64_TPREL16_LO_DS,
3368+ BFD_RELOC_PPC64_TPREL16_HIGHER,
3369+ BFD_RELOC_PPC64_TPREL16_HIGHERA,
3370+ BFD_RELOC_PPC64_TPREL16_HIGHEST,
3371+ BFD_RELOC_PPC64_TPREL16_HIGHESTA,
3372+ BFD_RELOC_PPC64_DTPREL16_DS,
3373+ BFD_RELOC_PPC64_DTPREL16_LO_DS,
3374+ BFD_RELOC_PPC64_DTPREL16_HIGHER,
3375+ BFD_RELOC_PPC64_DTPREL16_HIGHERA,
3376+ BFD_RELOC_PPC64_DTPREL16_HIGHEST,
3377+ BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
3378+
3379+/* IBM 370/390 relocations */
3380+ BFD_RELOC_I370_D12,
3381+
3382+/* The type of reloc used to build a constructor table - at the moment
3383+probably a 32 bit wide absolute relocation, but the target can choose.
3384+It generally does map to one of the other relocation types. */
3385+ BFD_RELOC_CTOR,
3386+
3387+/* ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
3388+not stored in the instruction. */
3389+ BFD_RELOC_ARM_PCREL_BRANCH,
3390+
3391+/* ARM 26 bit pc-relative branch. The lowest bit must be zero and is
3392+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
3393+field in the instruction. */
3394+ BFD_RELOC_ARM_PCREL_BLX,
3395+
3396+/* Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
3397+not stored in the instruction. The 2nd lowest bit comes from a 1 bit
3398+field in the instruction. */
3399+ BFD_RELOC_THUMB_PCREL_BLX,
3400+
3401+/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction. */
3402+ BFD_RELOC_ARM_PCREL_CALL,
3403+
3404+/* ARM 26-bit pc-relative branch for B or conditional BL instruction. */
3405+ BFD_RELOC_ARM_PCREL_JUMP,
3406+
3407+/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
3408+The lowest bit must be zero and is not stored in the instruction.
3409+Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
3410+"nn" one smaller in all cases. Note further that BRANCH23
3411+corresponds to R_ARM_THM_CALL. */
3412+ BFD_RELOC_THUMB_PCREL_BRANCH7,
3413+ BFD_RELOC_THUMB_PCREL_BRANCH9,
3414+ BFD_RELOC_THUMB_PCREL_BRANCH12,
3415+ BFD_RELOC_THUMB_PCREL_BRANCH20,
3416+ BFD_RELOC_THUMB_PCREL_BRANCH23,
3417+ BFD_RELOC_THUMB_PCREL_BRANCH25,
3418+
3419+/* 12-bit immediate offset, used in ARM-format ldr and str instructions. */
3420+ BFD_RELOC_ARM_OFFSET_IMM,
3421+
3422+/* 5-bit immediate offset, used in Thumb-format ldr and str instructions. */
3423+ BFD_RELOC_ARM_THUMB_OFFSET,
3424+
3425+/* Pc-relative or absolute relocation depending on target. Used for
3426+entries in .init_array sections. */
3427+ BFD_RELOC_ARM_TARGET1,
3428+
3429+/* Read-only segment base relative address. */
3430+ BFD_RELOC_ARM_ROSEGREL32,
3431+
3432+/* Data segment base relative address. */
3433+ BFD_RELOC_ARM_SBREL32,
3434+
3435+/* This reloc is used for references to RTTI data from exception handling
3436+tables. The actual definition depends on the target. It may be a
3437+pc-relative or some form of GOT-indirect relocation. */
3438+ BFD_RELOC_ARM_TARGET2,
3439+
3440+/* 31-bit PC relative address. */
3441+ BFD_RELOC_ARM_PREL31,
3442+
3443+/* Relocations for setting up GOTs and PLTs for shared libraries. */
3444+ BFD_RELOC_ARM_JUMP_SLOT,
3445+ BFD_RELOC_ARM_GLOB_DAT,
3446+ BFD_RELOC_ARM_GOT32,
3447+ BFD_RELOC_ARM_PLT32,
3448+ BFD_RELOC_ARM_RELATIVE,
3449+ BFD_RELOC_ARM_GOTOFF,
3450+ BFD_RELOC_ARM_GOTPC,
3451+
3452+/* ARM thread-local storage relocations. */
3453+ BFD_RELOC_ARM_TLS_GD32,
3454+ BFD_RELOC_ARM_TLS_LDO32,
3455+ BFD_RELOC_ARM_TLS_LDM32,
3456+ BFD_RELOC_ARM_TLS_DTPOFF32,
3457+ BFD_RELOC_ARM_TLS_DTPMOD32,
3458+ BFD_RELOC_ARM_TLS_TPOFF32,
3459+ BFD_RELOC_ARM_TLS_IE32,
3460+ BFD_RELOC_ARM_TLS_LE32,
3461+
3462+/* These relocs are only used within the ARM assembler. They are not
3463+(at present) written to any object files. */
3464+ BFD_RELOC_ARM_IMMEDIATE,
3465+ BFD_RELOC_ARM_ADRL_IMMEDIATE,
3466+ BFD_RELOC_ARM_T32_IMMEDIATE,
3467+ BFD_RELOC_ARM_T32_IMM12,
3468+ BFD_RELOC_ARM_T32_ADD_PC12,
3469+ BFD_RELOC_ARM_SHIFT_IMM,
3470+ BFD_RELOC_ARM_SMC,
3471+ BFD_RELOC_ARM_SWI,
3472+ BFD_RELOC_ARM_MULTI,
3473+ BFD_RELOC_ARM_CP_OFF_IMM,
3474+ BFD_RELOC_ARM_CP_OFF_IMM_S2,
3475+ BFD_RELOC_ARM_T32_CP_OFF_IMM,
3476+ BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
3477+ BFD_RELOC_ARM_ADR_IMM,
3478+ BFD_RELOC_ARM_LDR_IMM,
3479+ BFD_RELOC_ARM_LITERAL,
3480+ BFD_RELOC_ARM_IN_POOL,
3481+ BFD_RELOC_ARM_OFFSET_IMM8,
3482+ BFD_RELOC_ARM_T32_OFFSET_U8,
3483+ BFD_RELOC_ARM_T32_OFFSET_IMM,
3484+ BFD_RELOC_ARM_HWLITERAL,
3485+ BFD_RELOC_ARM_THUMB_ADD,
3486+ BFD_RELOC_ARM_THUMB_IMM,
3487+ BFD_RELOC_ARM_THUMB_SHIFT,
3488+
3489+/* Renesas / SuperH SH relocs. Not all of these appear in object files. */
3490+ BFD_RELOC_SH_PCDISP8BY2,
3491+ BFD_RELOC_SH_PCDISP12BY2,
3492+ BFD_RELOC_SH_IMM3,
3493+ BFD_RELOC_SH_IMM3U,
3494+ BFD_RELOC_SH_DISP12,
3495+ BFD_RELOC_SH_DISP12BY2,
3496+ BFD_RELOC_SH_DISP12BY4,
3497+ BFD_RELOC_SH_DISP12BY8,
3498+ BFD_RELOC_SH_DISP20,
3499+ BFD_RELOC_SH_DISP20BY8,
3500+ BFD_RELOC_SH_IMM4,
3501+ BFD_RELOC_SH_IMM4BY2,
3502+ BFD_RELOC_SH_IMM4BY4,
3503+ BFD_RELOC_SH_IMM8,
3504+ BFD_RELOC_SH_IMM8BY2,
3505+ BFD_RELOC_SH_IMM8BY4,
3506+ BFD_RELOC_SH_PCRELIMM8BY2,
3507+ BFD_RELOC_SH_PCRELIMM8BY4,
3508+ BFD_RELOC_SH_SWITCH16,
3509+ BFD_RELOC_SH_SWITCH32,
3510+ BFD_RELOC_SH_USES,
3511+ BFD_RELOC_SH_COUNT,
3512+ BFD_RELOC_SH_ALIGN,
3513+ BFD_RELOC_SH_CODE,
3514+ BFD_RELOC_SH_DATA,
3515+ BFD_RELOC_SH_LABEL,
3516+ BFD_RELOC_SH_LOOP_START,
3517+ BFD_RELOC_SH_LOOP_END,
3518+ BFD_RELOC_SH_COPY,
3519+ BFD_RELOC_SH_GLOB_DAT,
3520+ BFD_RELOC_SH_JMP_SLOT,
3521+ BFD_RELOC_SH_RELATIVE,
3522+ BFD_RELOC_SH_GOTPC,
3523+ BFD_RELOC_SH_GOT_LOW16,
3524+ BFD_RELOC_SH_GOT_MEDLOW16,
3525+ BFD_RELOC_SH_GOT_MEDHI16,
3526+ BFD_RELOC_SH_GOT_HI16,
3527+ BFD_RELOC_SH_GOTPLT_LOW16,
3528+ BFD_RELOC_SH_GOTPLT_MEDLOW16,
3529+ BFD_RELOC_SH_GOTPLT_MEDHI16,
3530+ BFD_RELOC_SH_GOTPLT_HI16,
3531+ BFD_RELOC_SH_PLT_LOW16,
3532+ BFD_RELOC_SH_PLT_MEDLOW16,
3533+ BFD_RELOC_SH_PLT_MEDHI16,
3534+ BFD_RELOC_SH_PLT_HI16,
3535+ BFD_RELOC_SH_GOTOFF_LOW16,
3536+ BFD_RELOC_SH_GOTOFF_MEDLOW16,
3537+ BFD_RELOC_SH_GOTOFF_MEDHI16,
3538+ BFD_RELOC_SH_GOTOFF_HI16,
3539+ BFD_RELOC_SH_GOTPC_LOW16,
3540+ BFD_RELOC_SH_GOTPC_MEDLOW16,
3541+ BFD_RELOC_SH_GOTPC_MEDHI16,
3542+ BFD_RELOC_SH_GOTPC_HI16,
3543+ BFD_RELOC_SH_COPY64,
3544+ BFD_RELOC_SH_GLOB_DAT64,
3545+ BFD_RELOC_SH_JMP_SLOT64,
3546+ BFD_RELOC_SH_RELATIVE64,
3547+ BFD_RELOC_SH_GOT10BY4,
3548+ BFD_RELOC_SH_GOT10BY8,
3549+ BFD_RELOC_SH_GOTPLT10BY4,
3550+ BFD_RELOC_SH_GOTPLT10BY8,
3551+ BFD_RELOC_SH_GOTPLT32,
3552+ BFD_RELOC_SH_SHMEDIA_CODE,
3553+ BFD_RELOC_SH_IMMU5,
3554+ BFD_RELOC_SH_IMMS6,
3555+ BFD_RELOC_SH_IMMS6BY32,
3556+ BFD_RELOC_SH_IMMU6,
3557+ BFD_RELOC_SH_IMMS10,
3558+ BFD_RELOC_SH_IMMS10BY2,
3559+ BFD_RELOC_SH_IMMS10BY4,
3560+ BFD_RELOC_SH_IMMS10BY8,
3561+ BFD_RELOC_SH_IMMS16,
3562+ BFD_RELOC_SH_IMMU16,
3563+ BFD_RELOC_SH_IMM_LOW16,
3564+ BFD_RELOC_SH_IMM_LOW16_PCREL,
3565+ BFD_RELOC_SH_IMM_MEDLOW16,
3566+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
3567+ BFD_RELOC_SH_IMM_MEDHI16,
3568+ BFD_RELOC_SH_IMM_MEDHI16_PCREL,
3569+ BFD_RELOC_SH_IMM_HI16,
3570+ BFD_RELOC_SH_IMM_HI16_PCREL,
3571+ BFD_RELOC_SH_PT_16,
3572+ BFD_RELOC_SH_TLS_GD_32,
3573+ BFD_RELOC_SH_TLS_LD_32,
3574+ BFD_RELOC_SH_TLS_LDO_32,
3575+ BFD_RELOC_SH_TLS_IE_32,
3576+ BFD_RELOC_SH_TLS_LE_32,
3577+ BFD_RELOC_SH_TLS_DTPMOD32,
3578+ BFD_RELOC_SH_TLS_DTPOFF32,
3579+ BFD_RELOC_SH_TLS_TPOFF32,
3580+
3581+/* ARC Cores relocs.
3582+ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
3583+not stored in the instruction. The high 20 bits are installed in bits 26
3584+through 7 of the instruction. */
3585+ BFD_RELOC_ARC_B22_PCREL,
3586+
3587+/* ARC 26 bit absolute branch. The lowest two bits must be zero and are not
3588+stored in the instruction. The high 24 bits are installed in bits 23
3589+through 0. */
3590+ BFD_RELOC_ARC_B26,
3591+
3592+/* ADI Blackfin 16 bit immediate absolute reloc. */
3593+ BFD_RELOC_BFIN_16_IMM,
3594+
3595+/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. */
3596+ BFD_RELOC_BFIN_16_HIGH,
3597+
3598+/* ADI Blackfin 'a' part of LSETUP. */
3599+ BFD_RELOC_BFIN_4_PCREL,
3600+
3601+/* ADI Blackfin. */
3602+ BFD_RELOC_BFIN_5_PCREL,
3603+
3604+/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. */
3605+ BFD_RELOC_BFIN_16_LOW,
3606+
3607+/* ADI Blackfin. */
3608+ BFD_RELOC_BFIN_10_PCREL,
3609+
3610+/* ADI Blackfin 'b' part of LSETUP. */
3611+ BFD_RELOC_BFIN_11_PCREL,
3612+
3613+/* ADI Blackfin. */
3614+ BFD_RELOC_BFIN_12_PCREL_JUMP,
3615+
3616+/* ADI Blackfin Short jump, pcrel. */
3617+ BFD_RELOC_BFIN_12_PCREL_JUMP_S,
3618+
3619+/* ADI Blackfin Call.x not implemented. */
3620+ BFD_RELOC_BFIN_24_PCREL_CALL_X,
3621+
3622+/* ADI Blackfin Long Jump pcrel. */
3623+ BFD_RELOC_BFIN_24_PCREL_JUMP_L,
3624+
3625+/* ADI Blackfin GOT relocation. */
3626+ BFD_RELOC_BFIN_GOT,
3627+
3628+/* ADI Blackfin PLTPC relocation. */
3629+ BFD_RELOC_BFIN_PLTPC,
3630+
3631+/* ADI Blackfin arithmetic relocation. */
3632+ BFD_ARELOC_BFIN_PUSH,
3633+
3634+/* ADI Blackfin arithmetic relocation. */
3635+ BFD_ARELOC_BFIN_CONST,
3636+
3637+/* ADI Blackfin arithmetic relocation. */
3638+ BFD_ARELOC_BFIN_ADD,
3639+
3640+/* ADI Blackfin arithmetic relocation. */
3641+ BFD_ARELOC_BFIN_SUB,
3642+
3643+/* ADI Blackfin arithmetic relocation. */
3644+ BFD_ARELOC_BFIN_MULT,
3645+
3646+/* ADI Blackfin arithmetic relocation. */
3647+ BFD_ARELOC_BFIN_DIV,
3648+
3649+/* ADI Blackfin arithmetic relocation. */
3650+ BFD_ARELOC_BFIN_MOD,
3651+
3652+/* ADI Blackfin arithmetic relocation. */
3653+ BFD_ARELOC_BFIN_LSHIFT,
3654+
3655+/* ADI Blackfin arithmetic relocation. */
3656+ BFD_ARELOC_BFIN_RSHIFT,
3657+
3658+/* ADI Blackfin arithmetic relocation. */
3659+ BFD_ARELOC_BFIN_AND,
3660+
3661+/* ADI Blackfin arithmetic relocation. */
3662+ BFD_ARELOC_BFIN_OR,
3663+
3664+/* ADI Blackfin arithmetic relocation. */
3665+ BFD_ARELOC_BFIN_XOR,
3666+
3667+/* ADI Blackfin arithmetic relocation. */
3668+ BFD_ARELOC_BFIN_LAND,
3669+
3670+/* ADI Blackfin arithmetic relocation. */
3671+ BFD_ARELOC_BFIN_LOR,
3672+
3673+/* ADI Blackfin arithmetic relocation. */
3674+ BFD_ARELOC_BFIN_LEN,
3675+
3676+/* ADI Blackfin arithmetic relocation. */
3677+ BFD_ARELOC_BFIN_NEG,
3678+
3679+/* ADI Blackfin arithmetic relocation. */
3680+ BFD_ARELOC_BFIN_COMP,
3681+
3682+/* ADI Blackfin arithmetic relocation. */
3683+ BFD_ARELOC_BFIN_PAGE,
3684+
3685+/* ADI Blackfin arithmetic relocation. */
3686+ BFD_ARELOC_BFIN_HWPAGE,
3687+
3688+/* ADI Blackfin arithmetic relocation. */
3689+ BFD_ARELOC_BFIN_ADDR,
3690+
3691+/* Mitsubishi D10V relocs.
3692+This is a 10-bit reloc with the right 2 bits
3693+assumed to be 0. */
3694+ BFD_RELOC_D10V_10_PCREL_R,
3695+
3696+/* Mitsubishi D10V relocs.
3697+This is a 10-bit reloc with the right 2 bits
3698+assumed to be 0. This is the same as the previous reloc
3699+except it is in the left container, i.e.,
3700+shifted left 15 bits. */
3701+ BFD_RELOC_D10V_10_PCREL_L,
3702+
3703+/* This is an 18-bit reloc with the right 2 bits
3704+assumed to be 0. */
3705+ BFD_RELOC_D10V_18,
3706+
3707+/* This is an 18-bit reloc with the right 2 bits
3708+assumed to be 0. */
3709+ BFD_RELOC_D10V_18_PCREL,
3710+
3711+/* Mitsubishi D30V relocs.
3712+This is a 6-bit absolute reloc. */
3713+ BFD_RELOC_D30V_6,
3714+
3715+/* This is a 6-bit pc-relative reloc with
3716+the right 3 bits assumed to be 0. */
3717+ BFD_RELOC_D30V_9_PCREL,
3718+
3719+/* This is a 6-bit pc-relative reloc with
3720+the right 3 bits assumed to be 0. Same
3721+as the previous reloc but on the right side
3722+of the container. */
3723+ BFD_RELOC_D30V_9_PCREL_R,
3724+
3725+/* This is a 12-bit absolute reloc with the
3726+right 3 bitsassumed to be 0. */
3727+ BFD_RELOC_D30V_15,
3728+
3729+/* This is a 12-bit pc-relative reloc with
3730+the right 3 bits assumed to be 0. */
3731+ BFD_RELOC_D30V_15_PCREL,
3732+
3733+/* This is a 12-bit pc-relative reloc with
3734+the right 3 bits assumed to be 0. Same
3735+as the previous reloc but on the right side
3736+of the container. */
3737+ BFD_RELOC_D30V_15_PCREL_R,
3738+
3739+/* This is an 18-bit absolute reloc with
3740+the right 3 bits assumed to be 0. */
3741+ BFD_RELOC_D30V_21,
3742+
3743+/* This is an 18-bit pc-relative reloc with
3744+the right 3 bits assumed to be 0. */
3745+ BFD_RELOC_D30V_21_PCREL,
3746+
3747+/* This is an 18-bit pc-relative reloc with
3748+the right 3 bits assumed to be 0. Same
3749+as the previous reloc but on the right side
3750+of the container. */
3751+ BFD_RELOC_D30V_21_PCREL_R,
3752+
3753+/* This is a 32-bit absolute reloc. */
3754+ BFD_RELOC_D30V_32,
3755+
3756+/* This is a 32-bit pc-relative reloc. */
3757+ BFD_RELOC_D30V_32_PCREL,
3758+
3759+/* DLX relocs */
3760+ BFD_RELOC_DLX_HI16_S,
3761+
3762+/* DLX relocs */
3763+ BFD_RELOC_DLX_LO16,
3764+
3765+/* DLX relocs */
3766+ BFD_RELOC_DLX_JMP26,
3767+
3768+/* Renesas M16C/M32C Relocations. */
3769+ BFD_RELOC_M32C_HI8,
3770+
3771+/* Renesas M32R (formerly Mitsubishi M32R) relocs.
3772+This is a 24 bit absolute address. */
3773+ BFD_RELOC_M32R_24,
3774+
3775+/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
3776+ BFD_RELOC_M32R_10_PCREL,
3777+
3778+/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
3779+ BFD_RELOC_M32R_18_PCREL,
3780+
3781+/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
3782+ BFD_RELOC_M32R_26_PCREL,
3783+
3784+/* This is a 16-bit reloc containing the high 16 bits of an address
3785+used when the lower 16 bits are treated as unsigned. */
3786+ BFD_RELOC_M32R_HI16_ULO,
3787+
3788+/* This is a 16-bit reloc containing the high 16 bits of an address
3789+used when the lower 16 bits are treated as signed. */
3790+ BFD_RELOC_M32R_HI16_SLO,
3791+
3792+/* This is a 16-bit reloc containing the lower 16 bits of an address. */
3793+ BFD_RELOC_M32R_LO16,
3794+
3795+/* This is a 16-bit reloc containing the small data area offset for use in
3796+add3, load, and store instructions. */
3797+ BFD_RELOC_M32R_SDA16,
3798+
3799+/* For PIC. */
3800+ BFD_RELOC_M32R_GOT24,
3801+ BFD_RELOC_M32R_26_PLTREL,
3802+ BFD_RELOC_M32R_COPY,
3803+ BFD_RELOC_M32R_GLOB_DAT,
3804+ BFD_RELOC_M32R_JMP_SLOT,
3805+ BFD_RELOC_M32R_RELATIVE,
3806+ BFD_RELOC_M32R_GOTOFF,
3807+ BFD_RELOC_M32R_GOTOFF_HI_ULO,
3808+ BFD_RELOC_M32R_GOTOFF_HI_SLO,
3809+ BFD_RELOC_M32R_GOTOFF_LO,
3810+ BFD_RELOC_M32R_GOTPC24,
3811+ BFD_RELOC_M32R_GOT16_HI_ULO,
3812+ BFD_RELOC_M32R_GOT16_HI_SLO,
3813+ BFD_RELOC_M32R_GOT16_LO,
3814+ BFD_RELOC_M32R_GOTPC_HI_ULO,
3815+ BFD_RELOC_M32R_GOTPC_HI_SLO,
3816+ BFD_RELOC_M32R_GOTPC_LO,
3817+
3818+/* This is a 9-bit reloc */
3819+ BFD_RELOC_V850_9_PCREL,
3820+
3821+/* This is a 22-bit reloc */
3822+ BFD_RELOC_V850_22_PCREL,
3823+
3824+/* This is a 16 bit offset from the short data area pointer. */
3825+ BFD_RELOC_V850_SDA_16_16_OFFSET,
3826+
3827+/* This is a 16 bit offset (of which only 15 bits are used) from the
3828+short data area pointer. */
3829+ BFD_RELOC_V850_SDA_15_16_OFFSET,
3830+
3831+/* This is a 16 bit offset from the zero data area pointer. */
3832+ BFD_RELOC_V850_ZDA_16_16_OFFSET,
3833+
3834+/* This is a 16 bit offset (of which only 15 bits are used) from the
3835+zero data area pointer. */
3836+ BFD_RELOC_V850_ZDA_15_16_OFFSET,
3837+
3838+/* This is an 8 bit offset (of which only 6 bits are used) from the
3839+tiny data area pointer. */
3840+ BFD_RELOC_V850_TDA_6_8_OFFSET,
3841+
3842+/* This is an 8bit offset (of which only 7 bits are used) from the tiny
3843+data area pointer. */
3844+ BFD_RELOC_V850_TDA_7_8_OFFSET,
3845+
3846+/* This is a 7 bit offset from the tiny data area pointer. */
3847+ BFD_RELOC_V850_TDA_7_7_OFFSET,
3848+
3849+/* This is a 16 bit offset from the tiny data area pointer. */
3850+ BFD_RELOC_V850_TDA_16_16_OFFSET,
3851+
3852+/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
3853+data area pointer. */
3854+ BFD_RELOC_V850_TDA_4_5_OFFSET,
3855+
3856+/* This is a 4 bit offset from the tiny data area pointer. */
3857+ BFD_RELOC_V850_TDA_4_4_OFFSET,
3858+
3859+/* This is a 16 bit offset from the short data area pointer, with the
3860+bits placed non-contiguously in the instruction. */
3861+ BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
3862+
3863+/* This is a 16 bit offset from the zero data area pointer, with the
3864+bits placed non-contiguously in the instruction. */
3865+ BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
3866+
3867+/* This is a 6 bit offset from the call table base pointer. */
3868+ BFD_RELOC_V850_CALLT_6_7_OFFSET,
3869+
3870+/* This is a 16 bit offset from the call table base pointer. */
3871+ BFD_RELOC_V850_CALLT_16_16_OFFSET,
3872+
3873+/* Used for relaxing indirect function calls. */
3874+ BFD_RELOC_V850_LONGCALL,
3875+
3876+/* Used for relaxing indirect jumps. */
3877+ BFD_RELOC_V850_LONGJUMP,
3878+
3879+/* Used to maintain alignment whilst relaxing. */
3880+ BFD_RELOC_V850_ALIGN,
3881+
3882+/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
3883+instructions. */
3884+ BFD_RELOC_V850_LO16_SPLIT_OFFSET,
3885+
3886+/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
3887+instruction. */
3888+ BFD_RELOC_MN10300_32_PCREL,
3889+
3890+/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
3891+instruction. */
3892+ BFD_RELOC_MN10300_16_PCREL,
3893+
3894+/* This is a 8bit DP reloc for the tms320c30, where the most
3895+significant 8 bits of a 24 bit word are placed into the least
3896+significant 8 bits of the opcode. */
3897+ BFD_RELOC_TIC30_LDP,
3898+
3899+/* This is a 7bit reloc for the tms320c54x, where the least
3900+significant 7 bits of a 16 bit word are placed into the least
3901+significant 7 bits of the opcode. */
3902+ BFD_RELOC_TIC54X_PARTLS7,
3903+
3904+/* This is a 9bit DP reloc for the tms320c54x, where the most
3905+significant 9 bits of a 16 bit word are placed into the least
3906+significant 9 bits of the opcode. */
3907+ BFD_RELOC_TIC54X_PARTMS9,
3908+
3909+/* This is an extended address 23-bit reloc for the tms320c54x. */
3910+ BFD_RELOC_TIC54X_23,
3911+
3912+/* This is a 16-bit reloc for the tms320c54x, where the least
3913+significant 16 bits of a 23-bit extended address are placed into
3914+the opcode. */
3915+ BFD_RELOC_TIC54X_16_OF_23,
3916+
3917+/* This is a reloc for the tms320c54x, where the most
3918+significant 7 bits of a 23-bit extended address are placed into
3919+the opcode. */
3920+ BFD_RELOC_TIC54X_MS7_OF_23,
3921+
3922+/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
3923+ BFD_RELOC_FR30_48,
3924+
3925+/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
3926+two sections. */
3927+ BFD_RELOC_FR30_20,
3928+
3929+/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
3930+4 bits. */
3931+ BFD_RELOC_FR30_6_IN_4,
3932+
3933+/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
3934+into 8 bits. */
3935+ BFD_RELOC_FR30_8_IN_8,
3936+
3937+/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
3938+into 8 bits. */
3939+ BFD_RELOC_FR30_9_IN_8,
3940+
3941+/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
3942+into 8 bits. */
3943+ BFD_RELOC_FR30_10_IN_8,
3944+
3945+/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
3946+short offset into 8 bits. */
3947+ BFD_RELOC_FR30_9_PCREL,
3948+
3949+/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
3950+short offset into 11 bits. */
3951+ BFD_RELOC_FR30_12_PCREL,
3952+
3953+/* Motorola Mcore relocations. */
3954+ BFD_RELOC_MCORE_PCREL_IMM8BY4,
3955+ BFD_RELOC_MCORE_PCREL_IMM11BY2,
3956+ BFD_RELOC_MCORE_PCREL_IMM4BY2,
3957+ BFD_RELOC_MCORE_PCREL_32,
3958+ BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
3959+ BFD_RELOC_MCORE_RVA,
3960+
3961+/* These are relocations for the GETA instruction. */
3962+ BFD_RELOC_MMIX_GETA,
3963+ BFD_RELOC_MMIX_GETA_1,
3964+ BFD_RELOC_MMIX_GETA_2,
3965+ BFD_RELOC_MMIX_GETA_3,
3966+
3967+/* These are relocations for a conditional branch instruction. */
3968+ BFD_RELOC_MMIX_CBRANCH,
3969+ BFD_RELOC_MMIX_CBRANCH_J,
3970+ BFD_RELOC_MMIX_CBRANCH_1,
3971+ BFD_RELOC_MMIX_CBRANCH_2,
3972+ BFD_RELOC_MMIX_CBRANCH_3,
3973+
3974+/* These are relocations for the PUSHJ instruction. */
3975+ BFD_RELOC_MMIX_PUSHJ,
3976+ BFD_RELOC_MMIX_PUSHJ_1,
3977+ BFD_RELOC_MMIX_PUSHJ_2,
3978+ BFD_RELOC_MMIX_PUSHJ_3,
3979+ BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
3980+
3981+/* These are relocations for the JMP instruction. */
3982+ BFD_RELOC_MMIX_JMP,
3983+ BFD_RELOC_MMIX_JMP_1,
3984+ BFD_RELOC_MMIX_JMP_2,
3985+ BFD_RELOC_MMIX_JMP_3,
3986+
3987+/* This is a relocation for a relative address as in a GETA instruction or
3988+a branch. */
3989+ BFD_RELOC_MMIX_ADDR19,
3990+
3991+/* This is a relocation for a relative address as in a JMP instruction. */
3992+ BFD_RELOC_MMIX_ADDR27,
3993+
3994+/* This is a relocation for an instruction field that may be a general
3995+register or a value 0..255. */
3996+ BFD_RELOC_MMIX_REG_OR_BYTE,
3997+
3998+/* This is a relocation for an instruction field that may be a general
3999+register. */
4000+ BFD_RELOC_MMIX_REG,
4001+
4002+/* This is a relocation for two instruction fields holding a register and
4003+an offset, the equivalent of the relocation. */
4004+ BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
4005+
4006+/* This relocation is an assertion that the expression is not allocated as
4007+a global register. It does not modify contents. */
4008+ BFD_RELOC_MMIX_LOCAL,
4009+
4010+/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
4011+short offset into 7 bits. */
4012+ BFD_RELOC_AVR_7_PCREL,
4013+
4014+/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
4015+short offset into 12 bits. */
4016+ BFD_RELOC_AVR_13_PCREL,
4017+
4018+/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
4019+program memory address) into 16 bits. */
4020+ BFD_RELOC_AVR_16_PM,
4021+
4022+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4023+data memory address) into 8 bit immediate value of LDI insn. */
4024+ BFD_RELOC_AVR_LO8_LDI,
4025+
4026+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4027+of data memory address) into 8 bit immediate value of LDI insn. */
4028+ BFD_RELOC_AVR_HI8_LDI,
4029+
4030+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4031+of program memory address) into 8 bit immediate value of LDI insn. */
4032+ BFD_RELOC_AVR_HH8_LDI,
4033+
4034+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4035+(usually data memory address) into 8 bit immediate value of SUBI insn. */
4036+ BFD_RELOC_AVR_LO8_LDI_NEG,
4037+
4038+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4039+(high 8 bit of data memory address) into 8 bit immediate value of
4040+SUBI insn. */
4041+ BFD_RELOC_AVR_HI8_LDI_NEG,
4042+
4043+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4044+(most high 8 bit of program memory address) into 8 bit immediate value
4045+of LDI or SUBI insn. */
4046+ BFD_RELOC_AVR_HH8_LDI_NEG,
4047+
4048+/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4049+command address) into 8 bit immediate value of LDI insn. */
4050+ BFD_RELOC_AVR_LO8_LDI_PM,
4051+
4052+/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4053+of command address) into 8 bit immediate value of LDI insn. */
4054+ BFD_RELOC_AVR_HI8_LDI_PM,
4055+
4056+/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4057+of command address) into 8 bit immediate value of LDI insn. */
4058+ BFD_RELOC_AVR_HH8_LDI_PM,
4059+
4060+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4061+(usually command address) into 8 bit immediate value of SUBI insn. */
4062+ BFD_RELOC_AVR_LO8_LDI_PM_NEG,
4063+
4064+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4065+(high 8 bit of 16 bit command address) into 8 bit immediate value
4066+of SUBI insn. */
4067+ BFD_RELOC_AVR_HI8_LDI_PM_NEG,
4068+
4069+/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4070+(high 6 bit of 22 bit command address) into 8 bit immediate
4071+value of SUBI insn. */
4072+ BFD_RELOC_AVR_HH8_LDI_PM_NEG,
4073+
4074+/* This is a 32 bit reloc for the AVR that stores 23 bit value
4075+into 22 bits. */
4076+ BFD_RELOC_AVR_CALL,
4077+
4078+/* This is a 16 bit reloc for the AVR that stores all needed bits
4079+for absolute addressing with ldi with overflow check to linktime */
4080+ BFD_RELOC_AVR_LDI,
4081+
4082+/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
4083+instructions */
4084+ BFD_RELOC_AVR_6,
4085+
4086+/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
4087+instructions */
4088+ BFD_RELOC_AVR_6_ADIW,
4089+
4090+/* Direct 12 bit. */
4091+ BFD_RELOC_390_12,
4092+
4093+/* 12 bit GOT offset. */
4094+ BFD_RELOC_390_GOT12,
4095+
4096+/* 32 bit PC relative PLT address. */
4097+ BFD_RELOC_390_PLT32,
4098+
4099+/* Copy symbol at runtime. */
4100+ BFD_RELOC_390_COPY,
4101+
4102+/* Create GOT entry. */
4103+ BFD_RELOC_390_GLOB_DAT,
4104+
4105+/* Create PLT entry. */
4106+ BFD_RELOC_390_JMP_SLOT,
4107+
4108+/* Adjust by program base. */
4109+ BFD_RELOC_390_RELATIVE,
4110+
4111+/* 32 bit PC relative offset to GOT. */
4112+ BFD_RELOC_390_GOTPC,
4113+
4114+/* 16 bit GOT offset. */
4115+ BFD_RELOC_390_GOT16,
4116+
4117+/* PC relative 16 bit shifted by 1. */
4118+ BFD_RELOC_390_PC16DBL,
4119+
4120+/* 16 bit PC rel. PLT shifted by 1. */
4121+ BFD_RELOC_390_PLT16DBL,
4122+
4123+/* PC relative 32 bit shifted by 1. */
4124+ BFD_RELOC_390_PC32DBL,
4125+
4126+/* 32 bit PC rel. PLT shifted by 1. */
4127+ BFD_RELOC_390_PLT32DBL,
4128+
4129+/* 32 bit PC rel. GOT shifted by 1. */
4130+ BFD_RELOC_390_GOTPCDBL,
4131+
4132+/* 64 bit GOT offset. */
4133+ BFD_RELOC_390_GOT64,
4134+
4135+/* 64 bit PC relative PLT address. */
4136+ BFD_RELOC_390_PLT64,
4137+
4138+/* 32 bit rel. offset to GOT entry. */
4139+ BFD_RELOC_390_GOTENT,
4140+
4141+/* 64 bit offset to GOT. */
4142+ BFD_RELOC_390_GOTOFF64,
4143+
4144+/* 12-bit offset to symbol-entry within GOT, with PLT handling. */
4145+ BFD_RELOC_390_GOTPLT12,
4146+
4147+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
4148+ BFD_RELOC_390_GOTPLT16,
4149+
4150+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
4151+ BFD_RELOC_390_GOTPLT32,
4152+
4153+/* 64-bit offset to symbol-entry within GOT, with PLT handling. */
4154+ BFD_RELOC_390_GOTPLT64,
4155+
4156+/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling. */
4157+ BFD_RELOC_390_GOTPLTENT,
4158+
4159+/* 16-bit rel. offset from the GOT to a PLT entry. */
4160+ BFD_RELOC_390_PLTOFF16,
4161+
4162+/* 32-bit rel. offset from the GOT to a PLT entry. */
4163+ BFD_RELOC_390_PLTOFF32,
4164+
4165+/* 64-bit rel. offset from the GOT to a PLT entry. */
4166+ BFD_RELOC_390_PLTOFF64,
4167+
4168+/* s390 tls relocations. */
4169+ BFD_RELOC_390_TLS_LOAD,
4170+ BFD_RELOC_390_TLS_GDCALL,
4171+ BFD_RELOC_390_TLS_LDCALL,
4172+ BFD_RELOC_390_TLS_GD32,
4173+ BFD_RELOC_390_TLS_GD64,
4174+ BFD_RELOC_390_TLS_GOTIE12,
4175+ BFD_RELOC_390_TLS_GOTIE32,
4176+ BFD_RELOC_390_TLS_GOTIE64,
4177+ BFD_RELOC_390_TLS_LDM32,
4178+ BFD_RELOC_390_TLS_LDM64,
4179+ BFD_RELOC_390_TLS_IE32,
4180+ BFD_RELOC_390_TLS_IE64,
4181+ BFD_RELOC_390_TLS_IEENT,
4182+ BFD_RELOC_390_TLS_LE32,
4183+ BFD_RELOC_390_TLS_LE64,
4184+ BFD_RELOC_390_TLS_LDO32,
4185+ BFD_RELOC_390_TLS_LDO64,
4186+ BFD_RELOC_390_TLS_DTPMOD,
4187+ BFD_RELOC_390_TLS_DTPOFF,
4188+ BFD_RELOC_390_TLS_TPOFF,
4189+
4190+/* Long displacement extension. */
4191+ BFD_RELOC_390_20,
4192+ BFD_RELOC_390_GOT20,
4193+ BFD_RELOC_390_GOTPLT20,
4194+ BFD_RELOC_390_TLS_GOTIE20,
4195+
4196+/* Scenix IP2K - 9-bit register number / data address */
4197+ BFD_RELOC_IP2K_FR9,
4198+
4199+/* Scenix IP2K - 4-bit register/data bank number */
4200+ BFD_RELOC_IP2K_BANK,
4201+
4202+/* Scenix IP2K - low 13 bits of instruction word address */
4203+ BFD_RELOC_IP2K_ADDR16CJP,
4204+
4205+/* Scenix IP2K - high 3 bits of instruction word address */
4206+ BFD_RELOC_IP2K_PAGE3,
4207+
4208+/* Scenix IP2K - ext/low/high 8 bits of data address */
4209+ BFD_RELOC_IP2K_LO8DATA,
4210+ BFD_RELOC_IP2K_HI8DATA,
4211+ BFD_RELOC_IP2K_EX8DATA,
4212+
4213+/* Scenix IP2K - low/high 8 bits of instruction word address */
4214+ BFD_RELOC_IP2K_LO8INSN,
4215+ BFD_RELOC_IP2K_HI8INSN,
4216+
4217+/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0 */
4218+ BFD_RELOC_IP2K_PC_SKIP,
4219+
4220+/* Scenix IP2K - 16 bit word address in text section. */
4221+ BFD_RELOC_IP2K_TEXT,
4222+
4223+/* Scenix IP2K - 7-bit sp or dp offset */
4224+ BFD_RELOC_IP2K_FR_OFFSET,
4225+
4226+/* Scenix VPE4K coprocessor - data/insn-space addressing */
4227+ BFD_RELOC_VPE4KMATH_DATA,
4228+ BFD_RELOC_VPE4KMATH_INSN,
4229+
4230+/* These two relocations are used by the linker to determine which of
4231+the entries in a C++ virtual function table are actually used. When
4232+the --gc-sections option is given, the linker will zero out the entries
4233+that are not used, so that the code for those functions need not be
4234+included in the output.
4235+
4236+VTABLE_INHERIT is a zero-space relocation used to describe to the
4237+linker the inheritance tree of a C++ virtual function table. The
4238+relocation's symbol should be the parent class' vtable, and the
4239+relocation should be located at the child vtable.
4240+
4241+VTABLE_ENTRY is a zero-space relocation that describes the use of a
4242+virtual function table entry. The reloc's symbol should refer to the
4243+table of the class mentioned in the code. Off of that base, an offset
4244+describes the entry that is being used. For Rela hosts, this offset
4245+is stored in the reloc's addend. For Rel hosts, we are forced to put
4246+this offset in the reloc's section offset. */
4247+ BFD_RELOC_VTABLE_INHERIT,
4248+ BFD_RELOC_VTABLE_ENTRY,
4249+
4250+/* Intel IA64 Relocations. */
4251+ BFD_RELOC_IA64_IMM14,
4252+ BFD_RELOC_IA64_IMM22,
4253+ BFD_RELOC_IA64_IMM64,
4254+ BFD_RELOC_IA64_DIR32MSB,
4255+ BFD_RELOC_IA64_DIR32LSB,
4256+ BFD_RELOC_IA64_DIR64MSB,
4257+ BFD_RELOC_IA64_DIR64LSB,
4258+ BFD_RELOC_IA64_GPREL22,
4259+ BFD_RELOC_IA64_GPREL64I,
4260+ BFD_RELOC_IA64_GPREL32MSB,
4261+ BFD_RELOC_IA64_GPREL32LSB,
4262+ BFD_RELOC_IA64_GPREL64MSB,
4263+ BFD_RELOC_IA64_GPREL64LSB,
4264+ BFD_RELOC_IA64_LTOFF22,
4265+ BFD_RELOC_IA64_LTOFF64I,
4266+ BFD_RELOC_IA64_PLTOFF22,
4267+ BFD_RELOC_IA64_PLTOFF64I,
4268+ BFD_RELOC_IA64_PLTOFF64MSB,
4269+ BFD_RELOC_IA64_PLTOFF64LSB,
4270+ BFD_RELOC_IA64_FPTR64I,
4271+ BFD_RELOC_IA64_FPTR32MSB,
4272+ BFD_RELOC_IA64_FPTR32LSB,
4273+ BFD_RELOC_IA64_FPTR64MSB,
4274+ BFD_RELOC_IA64_FPTR64LSB,
4275+ BFD_RELOC_IA64_PCREL21B,
4276+ BFD_RELOC_IA64_PCREL21BI,
4277+ BFD_RELOC_IA64_PCREL21M,
4278+ BFD_RELOC_IA64_PCREL21F,
4279+ BFD_RELOC_IA64_PCREL22,
4280+ BFD_RELOC_IA64_PCREL60B,
4281+ BFD_RELOC_IA64_PCREL64I,
4282+ BFD_RELOC_IA64_PCREL32MSB,
4283+ BFD_RELOC_IA64_PCREL32LSB,
4284+ BFD_RELOC_IA64_PCREL64MSB,
4285+ BFD_RELOC_IA64_PCREL64LSB,
4286+ BFD_RELOC_IA64_LTOFF_FPTR22,
4287+ BFD_RELOC_IA64_LTOFF_FPTR64I,
4288+ BFD_RELOC_IA64_LTOFF_FPTR32MSB,
4289+ BFD_RELOC_IA64_LTOFF_FPTR32LSB,
4290+ BFD_RELOC_IA64_LTOFF_FPTR64MSB,
4291+ BFD_RELOC_IA64_LTOFF_FPTR64LSB,
4292+ BFD_RELOC_IA64_SEGREL32MSB,
4293+ BFD_RELOC_IA64_SEGREL32LSB,
4294+ BFD_RELOC_IA64_SEGREL64MSB,
4295+ BFD_RELOC_IA64_SEGREL64LSB,
4296+ BFD_RELOC_IA64_SECREL32MSB,
4297+ BFD_RELOC_IA64_SECREL32LSB,
4298+ BFD_RELOC_IA64_SECREL64MSB,
4299+ BFD_RELOC_IA64_SECREL64LSB,
4300+ BFD_RELOC_IA64_REL32MSB,
4301+ BFD_RELOC_IA64_REL32LSB,
4302+ BFD_RELOC_IA64_REL64MSB,
4303+ BFD_RELOC_IA64_REL64LSB,
4304+ BFD_RELOC_IA64_LTV32MSB,
4305+ BFD_RELOC_IA64_LTV32LSB,
4306+ BFD_RELOC_IA64_LTV64MSB,
4307+ BFD_RELOC_IA64_LTV64LSB,
4308+ BFD_RELOC_IA64_IPLTMSB,
4309+ BFD_RELOC_IA64_IPLTLSB,
4310+ BFD_RELOC_IA64_COPY,
4311+ BFD_RELOC_IA64_LTOFF22X,
4312+ BFD_RELOC_IA64_LDXMOV,
4313+ BFD_RELOC_IA64_TPREL14,
4314+ BFD_RELOC_IA64_TPREL22,
4315+ BFD_RELOC_IA64_TPREL64I,
4316+ BFD_RELOC_IA64_TPREL64MSB,
4317+ BFD_RELOC_IA64_TPREL64LSB,
4318+ BFD_RELOC_IA64_LTOFF_TPREL22,
4319+ BFD_RELOC_IA64_DTPMOD64MSB,
4320+ BFD_RELOC_IA64_DTPMOD64LSB,
4321+ BFD_RELOC_IA64_LTOFF_DTPMOD22,
4322+ BFD_RELOC_IA64_DTPREL14,
4323+ BFD_RELOC_IA64_DTPREL22,
4324+ BFD_RELOC_IA64_DTPREL64I,
4325+ BFD_RELOC_IA64_DTPREL32MSB,
4326+ BFD_RELOC_IA64_DTPREL32LSB,
4327+ BFD_RELOC_IA64_DTPREL64MSB,
4328+ BFD_RELOC_IA64_DTPREL64LSB,
4329+ BFD_RELOC_IA64_LTOFF_DTPREL22,
4330+
4331+/* Motorola 68HC11 reloc.
4332+This is the 8 bit high part of an absolute address. */
4333+ BFD_RELOC_M68HC11_HI8,
4334+
4335+/* Motorola 68HC11 reloc.
4336+This is the 8 bit low part of an absolute address. */
4337+ BFD_RELOC_M68HC11_LO8,
4338+
4339+/* Motorola 68HC11 reloc.
4340+This is the 3 bit of a value. */
4341+ BFD_RELOC_M68HC11_3B,
4342+
4343+/* Motorola 68HC11 reloc.
4344+This reloc marks the beginning of a jump/call instruction.
4345+It is used for linker relaxation to correctly identify beginning
4346+of instruction and change some branches to use PC-relative
4347+addressing mode. */
4348+ BFD_RELOC_M68HC11_RL_JUMP,
4349+
4350+/* Motorola 68HC11 reloc.
4351+This reloc marks a group of several instructions that gcc generates
4352+and for which the linker relaxation pass can modify and/or remove
4353+some of them. */
4354+ BFD_RELOC_M68HC11_RL_GROUP,
4355+
4356+/* Motorola 68HC11 reloc.
4357+This is the 16-bit lower part of an address. It is used for 'call'
4358+instruction to specify the symbol address without any special
4359+transformation (due to memory bank window). */
4360+ BFD_RELOC_M68HC11_LO16,
4361+
4362+/* Motorola 68HC11 reloc.
4363+This is a 8-bit reloc that specifies the page number of an address.
4364+It is used by 'call' instruction to specify the page number of
4365+the symbol. */
4366+ BFD_RELOC_M68HC11_PAGE,
4367+
4368+/* Motorola 68HC11 reloc.
4369+This is a 24-bit reloc that represents the address with a 16-bit
4370+value and a 8-bit page number. The symbol address is transformed
4371+to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */
4372+ BFD_RELOC_M68HC11_24,
4373+
4374+/* Motorola 68HC12 reloc.
4375+This is the 5 bits of a value. */
4376+ BFD_RELOC_M68HC12_5B,
4377+
4378+/* NS CR16C Relocations. */
4379+ BFD_RELOC_16C_NUM08,
4380+ BFD_RELOC_16C_NUM08_C,
4381+ BFD_RELOC_16C_NUM16,
4382+ BFD_RELOC_16C_NUM16_C,
4383+ BFD_RELOC_16C_NUM32,
4384+ BFD_RELOC_16C_NUM32_C,
4385+ BFD_RELOC_16C_DISP04,
4386+ BFD_RELOC_16C_DISP04_C,
4387+ BFD_RELOC_16C_DISP08,
4388+ BFD_RELOC_16C_DISP08_C,
4389+ BFD_RELOC_16C_DISP16,
4390+ BFD_RELOC_16C_DISP16_C,
4391+ BFD_RELOC_16C_DISP24,
4392+ BFD_RELOC_16C_DISP24_C,
4393+ BFD_RELOC_16C_DISP24a,
4394+ BFD_RELOC_16C_DISP24a_C,
4395+ BFD_RELOC_16C_REG04,
4396+ BFD_RELOC_16C_REG04_C,
4397+ BFD_RELOC_16C_REG04a,
4398+ BFD_RELOC_16C_REG04a_C,
4399+ BFD_RELOC_16C_REG14,
4400+ BFD_RELOC_16C_REG14_C,
4401+ BFD_RELOC_16C_REG16,
4402+ BFD_RELOC_16C_REG16_C,
4403+ BFD_RELOC_16C_REG20,
4404+ BFD_RELOC_16C_REG20_C,
4405+ BFD_RELOC_16C_ABS20,
4406+ BFD_RELOC_16C_ABS20_C,
4407+ BFD_RELOC_16C_ABS24,
4408+ BFD_RELOC_16C_ABS24_C,
4409+ BFD_RELOC_16C_IMM04,
4410+ BFD_RELOC_16C_IMM04_C,
4411+ BFD_RELOC_16C_IMM16,
4412+ BFD_RELOC_16C_IMM16_C,
4413+ BFD_RELOC_16C_IMM20,
4414+ BFD_RELOC_16C_IMM20_C,
4415+ BFD_RELOC_16C_IMM24,
4416+ BFD_RELOC_16C_IMM24_C,
4417+ BFD_RELOC_16C_IMM32,
4418+ BFD_RELOC_16C_IMM32_C,
4419+
4420+/* NS CRX Relocations. */
4421+ BFD_RELOC_CRX_REL4,
4422+ BFD_RELOC_CRX_REL8,
4423+ BFD_RELOC_CRX_REL8_CMP,
4424+ BFD_RELOC_CRX_REL16,
4425+ BFD_RELOC_CRX_REL24,
4426+ BFD_RELOC_CRX_REL32,
4427+ BFD_RELOC_CRX_REGREL12,
4428+ BFD_RELOC_CRX_REGREL22,
4429+ BFD_RELOC_CRX_REGREL28,
4430+ BFD_RELOC_CRX_REGREL32,
4431+ BFD_RELOC_CRX_ABS16,
4432+ BFD_RELOC_CRX_ABS32,
4433+ BFD_RELOC_CRX_NUM8,
4434+ BFD_RELOC_CRX_NUM16,
4435+ BFD_RELOC_CRX_NUM32,
4436+ BFD_RELOC_CRX_IMM16,
4437+ BFD_RELOC_CRX_IMM32,
4438+ BFD_RELOC_CRX_SWITCH8,
4439+ BFD_RELOC_CRX_SWITCH16,
4440+ BFD_RELOC_CRX_SWITCH32,
4441+
4442+/* These relocs are only used within the CRIS assembler. They are not
4443+(at present) written to any object files. */
4444+ BFD_RELOC_CRIS_BDISP8,
4445+ BFD_RELOC_CRIS_UNSIGNED_5,
4446+ BFD_RELOC_CRIS_SIGNED_6,
4447+ BFD_RELOC_CRIS_UNSIGNED_6,
4448+ BFD_RELOC_CRIS_SIGNED_8,
4449+ BFD_RELOC_CRIS_UNSIGNED_8,
4450+ BFD_RELOC_CRIS_SIGNED_16,
4451+ BFD_RELOC_CRIS_UNSIGNED_16,
4452+ BFD_RELOC_CRIS_LAPCQ_OFFSET,
4453+ BFD_RELOC_CRIS_UNSIGNED_4,
4454+
4455+/* Relocs used in ELF shared libraries for CRIS. */
4456+ BFD_RELOC_CRIS_COPY,
4457+ BFD_RELOC_CRIS_GLOB_DAT,
4458+ BFD_RELOC_CRIS_JUMP_SLOT,
4459+ BFD_RELOC_CRIS_RELATIVE,
4460+
4461+/* 32-bit offset to symbol-entry within GOT. */
4462+ BFD_RELOC_CRIS_32_GOT,
4463+
4464+/* 16-bit offset to symbol-entry within GOT. */
4465+ BFD_RELOC_CRIS_16_GOT,
4466+
4467+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
4468+ BFD_RELOC_CRIS_32_GOTPLT,
4469+
4470+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
4471+ BFD_RELOC_CRIS_16_GOTPLT,
4472+
4473+/* 32-bit offset to symbol, relative to GOT. */
4474+ BFD_RELOC_CRIS_32_GOTREL,
4475+
4476+/* 32-bit offset to symbol with PLT entry, relative to GOT. */
4477+ BFD_RELOC_CRIS_32_PLT_GOTREL,
4478+
4479+/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
4480+ BFD_RELOC_CRIS_32_PLT_PCREL,
4481+
4482+/* Intel i860 Relocations. */
4483+ BFD_RELOC_860_COPY,
4484+ BFD_RELOC_860_GLOB_DAT,
4485+ BFD_RELOC_860_JUMP_SLOT,
4486+ BFD_RELOC_860_RELATIVE,
4487+ BFD_RELOC_860_PC26,
4488+ BFD_RELOC_860_PLT26,
4489+ BFD_RELOC_860_PC16,
4490+ BFD_RELOC_860_LOW0,
4491+ BFD_RELOC_860_SPLIT0,
4492+ BFD_RELOC_860_LOW1,
4493+ BFD_RELOC_860_SPLIT1,
4494+ BFD_RELOC_860_LOW2,
4495+ BFD_RELOC_860_SPLIT2,
4496+ BFD_RELOC_860_LOW3,
4497+ BFD_RELOC_860_LOGOT0,
4498+ BFD_RELOC_860_SPGOT0,
4499+ BFD_RELOC_860_LOGOT1,
4500+ BFD_RELOC_860_SPGOT1,
4501+ BFD_RELOC_860_LOGOTOFF0,
4502+ BFD_RELOC_860_SPGOTOFF0,
4503+ BFD_RELOC_860_LOGOTOFF1,
4504+ BFD_RELOC_860_SPGOTOFF1,
4505+ BFD_RELOC_860_LOGOTOFF2,
4506+ BFD_RELOC_860_LOGOTOFF3,
4507+ BFD_RELOC_860_LOPC,
4508+ BFD_RELOC_860_HIGHADJ,
4509+ BFD_RELOC_860_HAGOT,
4510+ BFD_RELOC_860_HAGOTOFF,
4511+ BFD_RELOC_860_HAPC,
4512+ BFD_RELOC_860_HIGH,
4513+ BFD_RELOC_860_HIGOT,
4514+ BFD_RELOC_860_HIGOTOFF,
4515+
4516+/* OpenRISC Relocations. */
4517+ BFD_RELOC_OPENRISC_ABS_26,
4518+ BFD_RELOC_OPENRISC_REL_26,
4519+
4520+/* H8 elf Relocations. */
4521+ BFD_RELOC_H8_DIR16A8,
4522+ BFD_RELOC_H8_DIR16R8,
4523+ BFD_RELOC_H8_DIR24A8,
4524+ BFD_RELOC_H8_DIR24R8,
4525+ BFD_RELOC_H8_DIR32A16,
4526+
4527+/* Sony Xstormy16 Relocations. */
4528+ BFD_RELOC_XSTORMY16_REL_12,
4529+ BFD_RELOC_XSTORMY16_12,
4530+ BFD_RELOC_XSTORMY16_24,
4531+ BFD_RELOC_XSTORMY16_FPTR16,
4532+
4533+/* Relocations used by VAX ELF. */
4534+ BFD_RELOC_VAX_GLOB_DAT,
4535+ BFD_RELOC_VAX_JMP_SLOT,
4536+ BFD_RELOC_VAX_RELATIVE,
4537+
4538+/* Morpho MT - 16 bit immediate relocation. */
4539+ BFD_RELOC_MT_PC16,
4540+
4541+/* Morpho MT - Hi 16 bits of an address. */
4542+ BFD_RELOC_MT_HI16,
4543+
4544+/* Morpho MT - Low 16 bits of an address. */
4545+ BFD_RELOC_MT_LO16,
4546+
4547+/* Morpho MT - Used to tell the linker which vtable entries are used. */
4548+ BFD_RELOC_MT_GNU_VTINHERIT,
4549+
4550+/* Morpho MT - Used to tell the linker which vtable entries are used. */
4551+ BFD_RELOC_MT_GNU_VTENTRY,
4552+
4553+/* Morpho MT - 8 bit immediate relocation. */
4554+ BFD_RELOC_MT_PCINSN8,
4555+
4556+/* msp430 specific relocation codes */
4557+ BFD_RELOC_MSP430_10_PCREL,
4558+ BFD_RELOC_MSP430_16_PCREL,
4559+ BFD_RELOC_MSP430_16,
4560+ BFD_RELOC_MSP430_16_PCREL_BYTE,
4561+ BFD_RELOC_MSP430_16_BYTE,
4562+ BFD_RELOC_MSP430_2X_PCREL,
4563+ BFD_RELOC_MSP430_RL_PCREL,
4564+
4565+/* IQ2000 Relocations. */
4566+ BFD_RELOC_IQ2000_OFFSET_16,
4567+ BFD_RELOC_IQ2000_OFFSET_21,
4568+ BFD_RELOC_IQ2000_UHI16,
4569+
4570+/* Special Xtensa relocation used only by PLT entries in ELF shared
4571+objects to indicate that the runtime linker should set the value
4572+to one of its own internal functions or data structures. */
4573+ BFD_RELOC_XTENSA_RTLD,
4574+
4575+/* Xtensa relocations for ELF shared objects. */
4576+ BFD_RELOC_XTENSA_GLOB_DAT,
4577+ BFD_RELOC_XTENSA_JMP_SLOT,
4578+ BFD_RELOC_XTENSA_RELATIVE,
4579+
4580+/* Xtensa relocation used in ELF object files for symbols that may require
4581+PLT entries. Otherwise, this is just a generic 32-bit relocation. */
4582+ BFD_RELOC_XTENSA_PLT,
4583+
4584+/* Xtensa relocations to mark the difference of two local symbols.
4585+These are only needed to support linker relaxation and can be ignored
4586+when not relaxing. The field is set to the value of the difference
4587+assuming no relaxation. The relocation encodes the position of the
4588+first symbol so the linker can determine whether to adjust the field
4589+value. */
4590+ BFD_RELOC_XTENSA_DIFF8,
4591+ BFD_RELOC_XTENSA_DIFF16,
4592+ BFD_RELOC_XTENSA_DIFF32,
4593+
4594+/* Generic Xtensa relocations for instruction operands. Only the slot
4595+number is encoded in the relocation. The relocation applies to the
4596+last PC-relative immediate operand, or if there are no PC-relative
4597+immediates, to the last immediate operand. */
4598+ BFD_RELOC_XTENSA_SLOT0_OP,
4599+ BFD_RELOC_XTENSA_SLOT1_OP,
4600+ BFD_RELOC_XTENSA_SLOT2_OP,
4601+ BFD_RELOC_XTENSA_SLOT3_OP,
4602+ BFD_RELOC_XTENSA_SLOT4_OP,
4603+ BFD_RELOC_XTENSA_SLOT5_OP,
4604+ BFD_RELOC_XTENSA_SLOT6_OP,
4605+ BFD_RELOC_XTENSA_SLOT7_OP,
4606+ BFD_RELOC_XTENSA_SLOT8_OP,
4607+ BFD_RELOC_XTENSA_SLOT9_OP,
4608+ BFD_RELOC_XTENSA_SLOT10_OP,
4609+ BFD_RELOC_XTENSA_SLOT11_OP,
4610+ BFD_RELOC_XTENSA_SLOT12_OP,
4611+ BFD_RELOC_XTENSA_SLOT13_OP,
4612+ BFD_RELOC_XTENSA_SLOT14_OP,
4613+
4614+/* Alternate Xtensa relocations. Only the slot is encoded in the
4615+relocation. The meaning of these relocations is opcode-specific. */
4616+ BFD_RELOC_XTENSA_SLOT0_ALT,
4617+ BFD_RELOC_XTENSA_SLOT1_ALT,
4618+ BFD_RELOC_XTENSA_SLOT2_ALT,
4619+ BFD_RELOC_XTENSA_SLOT3_ALT,
4620+ BFD_RELOC_XTENSA_SLOT4_ALT,
4621+ BFD_RELOC_XTENSA_SLOT5_ALT,
4622+ BFD_RELOC_XTENSA_SLOT6_ALT,
4623+ BFD_RELOC_XTENSA_SLOT7_ALT,
4624+ BFD_RELOC_XTENSA_SLOT8_ALT,
4625+ BFD_RELOC_XTENSA_SLOT9_ALT,
4626+ BFD_RELOC_XTENSA_SLOT10_ALT,
4627+ BFD_RELOC_XTENSA_SLOT11_ALT,
4628+ BFD_RELOC_XTENSA_SLOT12_ALT,
4629+ BFD_RELOC_XTENSA_SLOT13_ALT,
4630+ BFD_RELOC_XTENSA_SLOT14_ALT,
4631+
4632+/* Xtensa relocations for backward compatibility. These have all been
4633+replaced by BFD_RELOC_XTENSA_SLOT0_OP. */
4634+ BFD_RELOC_XTENSA_OP0,
4635+ BFD_RELOC_XTENSA_OP1,
4636+ BFD_RELOC_XTENSA_OP2,
4637+
4638+/* Xtensa relocation to mark that the assembler expanded the
4639+instructions from an original target. The expansion size is
4640+encoded in the reloc size. */
4641+ BFD_RELOC_XTENSA_ASM_EXPAND,
4642+
4643+/* Xtensa relocation to mark that the linker should simplify
4644+assembler-expanded instructions. This is commonly used
4645+internally by the linker after analysis of a
4646+BFD_RELOC_XTENSA_ASM_EXPAND. */
4647+ BFD_RELOC_XTENSA_ASM_SIMPLIFY,
4648+
4649+/* 8 bit signed offset in (ix+d) or (iy+d). */
4650+ BFD_RELOC_Z80_DISP8,
4651+
4652+/* DJNZ offset. */
4653+ BFD_RELOC_Z8K_DISP7,
4654+
4655+/* CALR offset. */
4656+ BFD_RELOC_Z8K_CALLR,
4657+
4658+/* 4 bit value. */
4659+ BFD_RELOC_Z8K_IMM4L,
4660+ BFD_RELOC_UNUSED };
4661+typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
4662+reloc_howto_type *bfd_reloc_type_lookup
4663+ (bfd *abfd, bfd_reloc_code_real_type code);
4664+
4665+const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
4666+
4667+/* Extracted from syms.c. */
4668+
4669+typedef struct bfd_symbol
4670+{
4671+ /* A pointer to the BFD which owns the symbol. This information
4672+ is necessary so that a back end can work out what additional
4673+ information (invisible to the application writer) is carried
4674+ with the symbol.
4675+
4676+ This field is *almost* redundant, since you can use section->owner
4677+ instead, except that some symbols point to the global sections
4678+ bfd_{abs,com,und}_section. This could be fixed by making
4679+ these globals be per-bfd (or per-target-flavor). FIXME. */
4680+ struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
4681+
4682+ /* The text of the symbol. The name is left alone, and not copied; the
4683+ application may not alter it. */
4684+ const char *name;
4685+
4686+ /* The value of the symbol. This really should be a union of a
4687+ numeric value with a pointer, since some flags indicate that
4688+ a pointer to another symbol is stored here. */
4689+ symvalue value;
4690+
4691+ /* Attributes of a symbol. */
4692+#define BSF_NO_FLAGS 0x00
4693+
4694+ /* The symbol has local scope; <<static>> in <<C>>. The value
4695+ is the offset into the section of the data. */
4696+#define BSF_LOCAL 0x01
4697+
4698+ /* The symbol has global scope; initialized data in <<C>>. The
4699+ value is the offset into the section of the data. */
4700+#define BSF_GLOBAL 0x02
4701+
4702+ /* The symbol has global scope and is exported. The value is
4703+ the offset into the section of the data. */
4704+#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
4705+
4706+ /* A normal C symbol would be one of:
4707+ <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
4708+ <<BSF_GLOBAL>>. */
4709+
4710+ /* The symbol is a debugging record. The value has an arbitrary
4711+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
4712+#define BSF_DEBUGGING 0x08
4713+
4714+ /* The symbol denotes a function entry point. Used in ELF,
4715+ perhaps others someday. */
4716+#define BSF_FUNCTION 0x10
4717+
4718+ /* Used by the linker. */
4719+#define BSF_KEEP 0x20
4720+#define BSF_KEEP_G 0x40
4721+
4722+ /* A weak global symbol, overridable without warnings by
4723+ a regular global symbol of the same name. */
4724+#define BSF_WEAK 0x80
4725+
4726+ /* This symbol was created to point to a section, e.g. ELF's
4727+ STT_SECTION symbols. */
4728+#define BSF_SECTION_SYM 0x100
4729+
4730+ /* The symbol used to be a common symbol, but now it is
4731+ allocated. */
4732+#define BSF_OLD_COMMON 0x200
4733+
4734+ /* The default value for common data. */
4735+#define BFD_FORT_COMM_DEFAULT_VALUE 0
4736+
4737+ /* In some files the type of a symbol sometimes alters its
4738+ location in an output file - ie in coff a <<ISFCN>> symbol
4739+ which is also <<C_EXT>> symbol appears where it was
4740+ declared and not at the end of a section. This bit is set
4741+ by the target BFD part to convey this information. */
4742+#define BSF_NOT_AT_END 0x400
4743+
4744+ /* Signal that the symbol is the label of constructor section. */
4745+#define BSF_CONSTRUCTOR 0x800
4746+
4747+ /* Signal that the symbol is a warning symbol. The name is a
4748+ warning. The name of the next symbol is the one to warn about;
4749+ if a reference is made to a symbol with the same name as the next
4750+ symbol, a warning is issued by the linker. */
4751+#define BSF_WARNING 0x1000
4752+
4753+ /* Signal that the symbol is indirect. This symbol is an indirect
4754+ pointer to the symbol with the same name as the next symbol. */
4755+#define BSF_INDIRECT 0x2000
4756+
4757+ /* BSF_FILE marks symbols that contain a file name. This is used
4758+ for ELF STT_FILE symbols. */
4759+#define BSF_FILE 0x4000
4760+
4761+ /* Symbol is from dynamic linking information. */
4762+#define BSF_DYNAMIC 0x8000
4763+
4764+ /* The symbol denotes a data object. Used in ELF, and perhaps
4765+ others someday. */
4766+#define BSF_OBJECT 0x10000
4767+
4768+ /* This symbol is a debugging symbol. The value is the offset
4769+ into the section of the data. BSF_DEBUGGING should be set
4770+ as well. */
4771+#define BSF_DEBUGGING_RELOC 0x20000
4772+
4773+ /* This symbol is thread local. Used in ELF. */
4774+#define BSF_THREAD_LOCAL 0x40000
4775+
4776+ flagword flags;
4777+
4778+ /* A pointer to the section to which this symbol is
4779+ relative. This will always be non NULL, there are special
4780+ sections for undefined and absolute symbols. */
4781+ struct bfd_section *section;
4782+
4783+ /* Back end special data. */
4784+ union
4785+ {
4786+ void *p;
4787+ bfd_vma i;
4788+ }
4789+ udata;
4790+}
4791+asymbol;
4792+
4793+#define bfd_get_symtab_upper_bound(abfd) \
4794+ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
4795+
4796+bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
4797+
4798+bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
4799+
4800+#define bfd_is_local_label_name(abfd, name) \
4801+ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
4802+
4803+bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
4804+
4805+#define bfd_is_target_special_symbol(abfd, sym) \
4806+ BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
4807+
4808+#define bfd_canonicalize_symtab(abfd, location) \
4809+ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
4810+
4811+bfd_boolean bfd_set_symtab
4812+ (bfd *abfd, asymbol **location, unsigned int count);
4813+
4814+void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
4815+
4816+#define bfd_make_empty_symbol(abfd) \
4817+ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
4818+
4819+asymbol *_bfd_generic_make_empty_symbol (bfd *);
4820+
4821+#define bfd_make_debug_symbol(abfd,ptr,size) \
4822+ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
4823+
4824+int bfd_decode_symclass (asymbol *symbol);
4825+
4826+bfd_boolean bfd_is_undefined_symclass (int symclass);
4827+
4828+void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
4829+
4830+bfd_boolean bfd_copy_private_symbol_data
4831+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
4832+
4833+#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
4834+ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
4835+ (ibfd, isymbol, obfd, osymbol))
4836+
4837+/* Extracted from bfd.c. */
4838+struct bfd
4839+{
4840+ /* A unique identifier of the BFD */
4841+ unsigned int id;
4842+
4843+ /* The filename the application opened the BFD with. */
4844+ const char *filename;
4845+
4846+ /* A pointer to the target jump table. */
4847+ const struct bfd_target *xvec;
4848+
4849+ /* The IOSTREAM, and corresponding IO vector that provide access
4850+ to the file backing the BFD. */
4851+ void *iostream;
4852+ const struct bfd_iovec *iovec;
4853+
4854+ /* Is the file descriptor being cached? That is, can it be closed as
4855+ needed, and re-opened when accessed later? */
4856+ bfd_boolean cacheable;
4857+
4858+ /* Marks whether there was a default target specified when the
4859+ BFD was opened. This is used to select which matching algorithm
4860+ to use to choose the back end. */
4861+ bfd_boolean target_defaulted;
4862+
4863+ /* The caching routines use these to maintain a
4864+ least-recently-used list of BFDs. */
4865+ struct bfd *lru_prev, *lru_next;
4866+
4867+ /* When a file is closed by the caching routines, BFD retains
4868+ state information on the file here... */
4869+ ufile_ptr where;
4870+
4871+ /* ... and here: (``once'' means at least once). */
4872+ bfd_boolean opened_once;
4873+
4874+ /* Set if we have a locally maintained mtime value, rather than
4875+ getting it from the file each time. */
4876+ bfd_boolean mtime_set;
4877+
4878+ /* File modified time, if mtime_set is TRUE. */
4879+ long mtime;
4880+
4881+ /* Reserved for an unimplemented file locking extension. */
4882+ int ifd;
4883+
4884+ /* The format which belongs to the BFD. (object, core, etc.) */
4885+ bfd_format format;
4886+
4887+ /* The direction with which the BFD was opened. */
4888+ enum bfd_direction
4889+ {
4890+ no_direction = 0,
4891+ read_direction = 1,
4892+ write_direction = 2,
4893+ both_direction = 3
4894+ }
4895+ direction;
4896+
4897+ /* Format_specific flags. */
4898+ flagword flags;
4899+
4900+ /* Currently my_archive is tested before adding origin to
4901+ anything. I believe that this can become always an add of
4902+ origin, with origin set to 0 for non archive files. */
4903+ ufile_ptr origin;
4904+
4905+ /* Remember when output has begun, to stop strange things
4906+ from happening. */
4907+ bfd_boolean output_has_begun;
4908+
4909+ /* A hash table for section names. */
4910+ struct bfd_hash_table section_htab;
4911+
4912+ /* Pointer to linked list of sections. */
4913+ struct bfd_section *sections;
4914+
4915+ /* The last section on the section list. */
4916+ struct bfd_section *section_last;
4917+
4918+ /* The number of sections. */
4919+ unsigned int section_count;
4920+
4921+ /* Stuff only useful for object files:
4922+ The start address. */
4923+ bfd_vma start_address;
4924+
4925+ /* Used for input and output. */
4926+ unsigned int symcount;
4927+
4928+ /* Symbol table for output BFD (with symcount entries). */
4929+ struct bfd_symbol **outsymbols;
4930+
4931+ /* Used for slurped dynamic symbol tables. */
4932+ unsigned int dynsymcount;
4933+
4934+ /* Pointer to structure which contains architecture information. */
4935+ const struct bfd_arch_info *arch_info;
4936+
4937+ /* Flag set if symbols from this BFD should not be exported. */
4938+ bfd_boolean no_export;
4939+
4940+ /* Stuff only useful for archives. */
4941+ void *arelt_data;
4942+ struct bfd *my_archive; /* The containing archive BFD. */
4943+ struct bfd *next; /* The next BFD in the archive. */
4944+ struct bfd *archive_head; /* The first BFD in the archive. */
4945+ bfd_boolean has_armap;
4946+
4947+ /* A chain of BFD structures involved in a link. */
4948+ struct bfd *link_next;
4949+
4950+ /* A field used by _bfd_generic_link_add_archive_symbols. This will
4951+ be used only for archive elements. */
4952+ int archive_pass;
4953+
4954+ /* Used by the back end to hold private data. */
4955+ union
4956+ {
4957+ struct aout_data_struct *aout_data;
4958+ struct artdata *aout_ar_data;
4959+ struct _oasys_data *oasys_obj_data;
4960+ struct _oasys_ar_data *oasys_ar_data;
4961+ struct coff_tdata *coff_obj_data;
4962+ struct pe_tdata *pe_obj_data;
4963+ struct xcoff_tdata *xcoff_obj_data;
4964+ struct ecoff_tdata *ecoff_obj_data;
4965+ struct ieee_data_struct *ieee_data;
4966+ struct ieee_ar_data_struct *ieee_ar_data;
4967+ struct srec_data_struct *srec_data;
4968+ struct ihex_data_struct *ihex_data;
4969+ struct tekhex_data_struct *tekhex_data;
4970+ struct elf_obj_tdata *elf_obj_data;
4971+ struct nlm_obj_tdata *nlm_obj_data;
4972+ struct bout_data_struct *bout_data;
4973+ struct mmo_data_struct *mmo_data;
4974+ struct sun_core_struct *sun_core_data;
4975+ struct sco5_core_struct *sco5_core_data;
4976+ struct trad_core_struct *trad_core_data;
4977+ struct som_data_struct *som_data;
4978+ struct hpux_core_struct *hpux_core_data;
4979+ struct hppabsd_core_struct *hppabsd_core_data;
4980+ struct sgi_core_struct *sgi_core_data;
4981+ struct lynx_core_struct *lynx_core_data;
4982+ struct osf_core_struct *osf_core_data;
4983+ struct cisco_core_struct *cisco_core_data;
4984+ struct versados_data_struct *versados_data;
4985+ struct netbsd_core_struct *netbsd_core_data;
4986+ struct mach_o_data_struct *mach_o_data;
4987+ struct mach_o_fat_data_struct *mach_o_fat_data;
4988+ struct bfd_pef_data_struct *pef_data;
4989+ struct bfd_pef_xlib_data_struct *pef_xlib_data;
4990+ struct bfd_sym_data_struct *sym_data;
4991+ void *any;
4992+ }
4993+ tdata;
4994+
4995+ /* Used by the application to hold private data. */
4996+ void *usrdata;
4997+
4998+ /* Where all the allocated stuff under this BFD goes. This is a
4999+ struct objalloc *, but we use void * to avoid requiring the inclusion
5000+ of objalloc.h. */
5001+ void *memory;
5002+};
5003+
5004+typedef enum bfd_error
5005+{
5006+ bfd_error_no_error = 0,
5007+ bfd_error_system_call,
5008+ bfd_error_invalid_target,
5009+ bfd_error_wrong_format,
5010+ bfd_error_wrong_object_format,
5011+ bfd_error_invalid_operation,
5012+ bfd_error_no_memory,
5013+ bfd_error_no_symbols,
5014+ bfd_error_no_armap,
5015+ bfd_error_no_more_archived_files,
5016+ bfd_error_malformed_archive,
5017+ bfd_error_file_not_recognized,
5018+ bfd_error_file_ambiguously_recognized,
5019+ bfd_error_no_contents,
5020+ bfd_error_nonrepresentable_section,
5021+ bfd_error_no_debug_section,
5022+ bfd_error_bad_value,
5023+ bfd_error_file_truncated,
5024+ bfd_error_file_too_big,
5025+ bfd_error_invalid_error_code
5026+}
5027+bfd_error_type;
5028+
5029+bfd_error_type bfd_get_error (void);
5030+
5031+void bfd_set_error (bfd_error_type error_tag);
5032+
5033+const char *bfd_errmsg (bfd_error_type error_tag);
5034+
5035+void bfd_perror (const char *message);
5036+
5037+typedef void (*bfd_error_handler_type) (const char *, ...);
5038+
5039+bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
5040+
5041+void bfd_set_error_program_name (const char *);
5042+
5043+bfd_error_handler_type bfd_get_error_handler (void);
5044+
5045+long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
5046+
5047+long bfd_canonicalize_reloc
5048+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
5049+
5050+void bfd_set_reloc
5051+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
5052+
5053+bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
5054+
5055+int bfd_get_arch_size (bfd *abfd);
5056+
5057+int bfd_get_sign_extend_vma (bfd *abfd);
5058+
5059+bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
5060+
5061+unsigned int bfd_get_gp_size (bfd *abfd);
5062+
5063+void bfd_set_gp_size (bfd *abfd, unsigned int i);
5064+
5065+bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
5066+
5067+bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
5068+
5069+#define bfd_copy_private_header_data(ibfd, obfd) \
5070+ BFD_SEND (obfd, _bfd_copy_private_header_data, \
5071+ (ibfd, obfd))
5072+bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
5073+
5074+#define bfd_copy_private_bfd_data(ibfd, obfd) \
5075+ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
5076+ (ibfd, obfd))
5077+bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
5078+
5079+#define bfd_merge_private_bfd_data(ibfd, obfd) \
5080+ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
5081+ (ibfd, obfd))
5082+bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
5083+
5084+#define bfd_set_private_flags(abfd, flags) \
5085+ BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
5086+#define bfd_sizeof_headers(abfd, reloc) \
5087+ BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
5088+
5089+#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
5090+ BFD_SEND (abfd, _bfd_find_nearest_line, \
5091+ (abfd, sec, syms, off, file, func, line))
5092+
5093+#define bfd_find_line(abfd, syms, sym, file, line) \
5094+ BFD_SEND (abfd, _bfd_find_line, \
5095+ (abfd, syms, sym, file, line))
5096+
5097+#define bfd_find_inliner_info(abfd, file, func, line) \
5098+ BFD_SEND (abfd, _bfd_find_inliner_info, \
5099+ (abfd, file, func, line))
5100+
5101+#define bfd_debug_info_start(abfd) \
5102+ BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
5103+
5104+#define bfd_debug_info_end(abfd) \
5105+ BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
5106+
5107+#define bfd_debug_info_accumulate(abfd, section) \
5108+ BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
5109+
5110+#define bfd_stat_arch_elt(abfd, stat) \
5111+ BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
5112+
5113+#define bfd_update_armap_timestamp(abfd) \
5114+ BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
5115+
5116+#define bfd_set_arch_mach(abfd, arch, mach)\
5117+ BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
5118+
5119+#define bfd_relax_section(abfd, section, link_info, again) \
5120+ BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
5121+
5122+#define bfd_gc_sections(abfd, link_info) \
5123+ BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
5124+
5125+#define bfd_merge_sections(abfd, link_info) \
5126+ BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
5127+
5128+#define bfd_is_group_section(abfd, sec) \
5129+ BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
5130+
5131+#define bfd_discard_group(abfd, sec) \
5132+ BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
5133+
5134+#define bfd_link_hash_table_create(abfd) \
5135+ BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
5136+
5137+#define bfd_link_hash_table_free(abfd, hash) \
5138+ BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
5139+
5140+#define bfd_link_add_symbols(abfd, info) \
5141+ BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
5142+
5143+#define bfd_link_just_syms(abfd, sec, info) \
5144+ BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
5145+
5146+#define bfd_final_link(abfd, info) \
5147+ BFD_SEND (abfd, _bfd_final_link, (abfd, info))
5148+
5149+#define bfd_free_cached_info(abfd) \
5150+ BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
5151+
5152+#define bfd_get_dynamic_symtab_upper_bound(abfd) \
5153+ BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
5154+
5155+#define bfd_print_private_bfd_data(abfd, file)\
5156+ BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
5157+
5158+#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
5159+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
5160+
5161+#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
5162+ BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
5163+ dyncount, dynsyms, ret))
5164+
5165+#define bfd_get_dynamic_reloc_upper_bound(abfd) \
5166+ BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
5167+
5168+#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
5169+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
5170+
5171+extern bfd_byte *bfd_get_relocated_section_contents
5172+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
5173+ bfd_boolean, asymbol **);
5174+
5175+bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
5176+
5177+struct bfd_preserve
5178+{
5179+ void *marker;
5180+ void *tdata;
5181+ flagword flags;
5182+ const struct bfd_arch_info *arch_info;
5183+ struct bfd_section *sections;
5184+ struct bfd_section *section_last;
5185+ unsigned int section_count;
5186+ struct bfd_hash_table section_htab;
5187+};
5188+
5189+bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
5190+
5191+void bfd_preserve_restore (bfd *, struct bfd_preserve *);
5192+
5193+void bfd_preserve_finish (bfd *, struct bfd_preserve *);
5194+
5195+/* Extracted from archive.c. */
5196+symindex bfd_get_next_mapent
5197+ (bfd *abfd, symindex previous, carsym **sym);
5198+
5199+bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
5200+
5201+bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
5202+
5203+/* Extracted from corefile.c. */
5204+const char *bfd_core_file_failing_command (bfd *abfd);
5205+
5206+int bfd_core_file_failing_signal (bfd *abfd);
5207+
5208+bfd_boolean core_file_matches_executable_p
5209+ (bfd *core_bfd, bfd *exec_bfd);
5210+
5211+/* Extracted from targets.c. */
5212+#define BFD_SEND(bfd, message, arglist) \
5213+ ((*((bfd)->xvec->message)) arglist)
5214+
5215+#ifdef DEBUG_BFD_SEND
5216+#undef BFD_SEND
5217+#define BFD_SEND(bfd, message, arglist) \
5218+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
5219+ ((*((bfd)->xvec->message)) arglist) : \
5220+ (bfd_assert (__FILE__,__LINE__), NULL))
5221+#endif
5222+#define BFD_SEND_FMT(bfd, message, arglist) \
5223+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
5224+
5225+#ifdef DEBUG_BFD_SEND
5226+#undef BFD_SEND_FMT
5227+#define BFD_SEND_FMT(bfd, message, arglist) \
5228+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
5229+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
5230+ (bfd_assert (__FILE__,__LINE__), NULL))
5231+#endif
5232+
5233+enum bfd_flavour
5234+{
5235+ bfd_target_unknown_flavour,
5236+ bfd_target_aout_flavour,
5237+ bfd_target_coff_flavour,
5238+ bfd_target_ecoff_flavour,
5239+ bfd_target_xcoff_flavour,
5240+ bfd_target_elf_flavour,
5241+ bfd_target_ieee_flavour,
5242+ bfd_target_nlm_flavour,
5243+ bfd_target_oasys_flavour,
5244+ bfd_target_tekhex_flavour,
5245+ bfd_target_srec_flavour,
5246+ bfd_target_ihex_flavour,
5247+ bfd_target_som_flavour,
5248+ bfd_target_os9k_flavour,
5249+ bfd_target_versados_flavour,
5250+ bfd_target_msdos_flavour,
5251+ bfd_target_ovax_flavour,
5252+ bfd_target_evax_flavour,
5253+ bfd_target_mmo_flavour,
5254+ bfd_target_mach_o_flavour,
5255+ bfd_target_pef_flavour,
5256+ bfd_target_pef_xlib_flavour,
5257+ bfd_target_sym_flavour
5258+};
5259+
5260+enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
5261+
5262+/* Forward declaration. */
5263+typedef struct bfd_link_info _bfd_link_info;
5264+
5265+typedef struct bfd_target
5266+{
5267+ /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
5268+ char *name;
5269+
5270+ /* The "flavour" of a back end is a general indication about
5271+ the contents of a file. */
5272+ enum bfd_flavour flavour;
5273+
5274+ /* The order of bytes within the data area of a file. */
5275+ enum bfd_endian byteorder;
5276+
5277+ /* The order of bytes within the header parts of a file. */
5278+ enum bfd_endian header_byteorder;
5279+
5280+ /* A mask of all the flags which an executable may have set -
5281+ from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. */
5282+ flagword object_flags;
5283+
5284+ /* A mask of all the flags which a section may have set - from
5285+ the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. */
5286+ flagword section_flags;
5287+
5288+ /* The character normally found at the front of a symbol.
5289+ (if any), perhaps `_'. */
5290+ char symbol_leading_char;
5291+
5292+ /* The pad character for file names within an archive header. */
5293+ char ar_pad_char;
5294+
5295+ /* The maximum number of characters in an archive header. */
5296+ unsigned short ar_max_namelen;
5297+
5298+ /* Entries for byte swapping for data. These are different from the
5299+ other entry points, since they don't take a BFD as the first argument.
5300+ Certain other handlers could do the same. */
5301+ bfd_uint64_t (*bfd_getx64) (const void *);
5302+ bfd_int64_t (*bfd_getx_signed_64) (const void *);
5303+ void (*bfd_putx64) (bfd_uint64_t, void *);
5304+ bfd_vma (*bfd_getx32) (const void *);
5305+ bfd_signed_vma (*bfd_getx_signed_32) (const void *);
5306+ void (*bfd_putx32) (bfd_vma, void *);
5307+ bfd_vma (*bfd_getx16) (const void *);
5308+ bfd_signed_vma (*bfd_getx_signed_16) (const void *);
5309+ void (*bfd_putx16) (bfd_vma, void *);
5310+
5311+ /* Byte swapping for the headers. */
5312+ bfd_uint64_t (*bfd_h_getx64) (const void *);
5313+ bfd_int64_t (*bfd_h_getx_signed_64) (const void *);
5314+ void (*bfd_h_putx64) (bfd_uint64_t, void *);
5315+ bfd_vma (*bfd_h_getx32) (const void *);
5316+ bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
5317+ void (*bfd_h_putx32) (bfd_vma, void *);
5318+ bfd_vma (*bfd_h_getx16) (const void *);
5319+ bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
5320+ void (*bfd_h_putx16) (bfd_vma, void *);
5321+
5322+ /* Format dependent routines: these are vectors of entry points
5323+ within the target vector structure, one for each format to check. */
5324+
5325+ /* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
5326+ const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
5327+
5328+ /* Set the format of a file being written. */
5329+ bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
5330+
5331+ /* Write cached information into a file being written, at <<bfd_close>>. */
5332+ bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
5333+
5334+
5335+ /* Generic entry points. */
5336+#define BFD_JUMP_TABLE_GENERIC(NAME) \
5337+ NAME##_close_and_cleanup, \
5338+ NAME##_bfd_free_cached_info, \
5339+ NAME##_new_section_hook, \
5340+ NAME##_get_section_contents, \
5341+ NAME##_get_section_contents_in_window
5342+
5343+ /* Called when the BFD is being closed to do any necessary cleanup. */
5344+ bfd_boolean (*_close_and_cleanup) (bfd *);
5345+ /* Ask the BFD to free all cached information. */
5346+ bfd_boolean (*_bfd_free_cached_info) (bfd *);
5347+ /* Called when a new section is created. */
5348+ bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
5349+ /* Read the contents of a section. */
5350+ bfd_boolean (*_bfd_get_section_contents)
5351+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
5352+ bfd_boolean (*_bfd_get_section_contents_in_window)
5353+ (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
5354+
5355+ /* Entry points to copy private data. */
5356+#define BFD_JUMP_TABLE_COPY(NAME) \
5357+ NAME##_bfd_copy_private_bfd_data, \
5358+ NAME##_bfd_merge_private_bfd_data, \
5359+ _bfd_generic_init_private_section_data, \
5360+ NAME##_bfd_copy_private_section_data, \
5361+ NAME##_bfd_copy_private_symbol_data, \
5362+ NAME##_bfd_copy_private_header_data, \
5363+ NAME##_bfd_set_private_flags, \
5364+ NAME##_bfd_print_private_bfd_data
5365+
5366+ /* Called to copy BFD general private data from one object file
5367+ to another. */
5368+ bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
5369+ /* Called to merge BFD general private data from one object file
5370+ to a common output file when linking. */
5371+ bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
5372+ /* Called to initialize BFD private section data from one object file
5373+ to another. */
5374+#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
5375+ BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
5376+ bfd_boolean (*_bfd_init_private_section_data)
5377+ (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
5378+ /* Called to copy BFD private section data from one object file
5379+ to another. */
5380+ bfd_boolean (*_bfd_copy_private_section_data)
5381+ (bfd *, sec_ptr, bfd *, sec_ptr);
5382+ /* Called to copy BFD private symbol data from one symbol
5383+ to another. */
5384+ bfd_boolean (*_bfd_copy_private_symbol_data)
5385+ (bfd *, asymbol *, bfd *, asymbol *);
5386+ /* Called to copy BFD private header data from one object file
5387+ to another. */
5388+ bfd_boolean (*_bfd_copy_private_header_data)
5389+ (bfd *, bfd *);
5390+ /* Called to set private backend flags. */
5391+ bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
5392+
5393+ /* Called to print private BFD data. */
5394+ bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
5395+
5396+ /* Core file entry points. */
5397+#define BFD_JUMP_TABLE_CORE(NAME) \
5398+ NAME##_core_file_failing_command, \
5399+ NAME##_core_file_failing_signal, \
5400+ NAME##_core_file_matches_executable_p
5401+
5402+ char * (*_core_file_failing_command) (bfd *);
5403+ int (*_core_file_failing_signal) (bfd *);
5404+ bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
5405+
5406+ /* Archive entry points. */
5407+#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
5408+ NAME##_slurp_armap, \
5409+ NAME##_slurp_extended_name_table, \
5410+ NAME##_construct_extended_name_table, \
5411+ NAME##_truncate_arname, \
5412+ NAME##_write_armap, \
5413+ NAME##_read_ar_hdr, \
5414+ NAME##_openr_next_archived_file, \
5415+ NAME##_get_elt_at_index, \
5416+ NAME##_generic_stat_arch_elt, \
5417+ NAME##_update_armap_timestamp
5418+
5419+ bfd_boolean (*_bfd_slurp_armap) (bfd *);
5420+ bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
5421+ bfd_boolean (*_bfd_construct_extended_name_table)
5422+ (bfd *, char **, bfd_size_type *, const char **);
5423+ void (*_bfd_truncate_arname) (bfd *, const char *, char *);
5424+ bfd_boolean (*write_armap)
5425+ (bfd *, unsigned int, struct orl *, unsigned int, int);
5426+ void * (*_bfd_read_ar_hdr_fn) (bfd *);
5427+ bfd * (*openr_next_archived_file) (bfd *, bfd *);
5428+#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
5429+ bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
5430+ int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
5431+ bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
5432+
5433+ /* Entry points used for symbols. */
5434+#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
5435+ NAME##_get_symtab_upper_bound, \
5436+ NAME##_canonicalize_symtab, \
5437+ NAME##_make_empty_symbol, \
5438+ NAME##_print_symbol, \
5439+ NAME##_get_symbol_info, \
5440+ NAME##_bfd_is_local_label_name, \
5441+ NAME##_bfd_is_target_special_symbol, \
5442+ NAME##_get_lineno, \
5443+ NAME##_find_nearest_line, \
5444+ _bfd_generic_find_line, \
5445+ NAME##_find_inliner_info, \
5446+ NAME##_bfd_make_debug_symbol, \
5447+ NAME##_read_minisymbols, \
5448+ NAME##_minisymbol_to_symbol
5449+
5450+ long (*_bfd_get_symtab_upper_bound) (bfd *);
5451+ long (*_bfd_canonicalize_symtab)
5452+ (bfd *, struct bfd_symbol **);
5453+ struct bfd_symbol *
5454+ (*_bfd_make_empty_symbol) (bfd *);
5455+ void (*_bfd_print_symbol)
5456+ (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
5457+#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
5458+ void (*_bfd_get_symbol_info)
5459+ (bfd *, struct bfd_symbol *, symbol_info *);
5460+#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
5461+ bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
5462+ bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
5463+ alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
5464+ bfd_boolean (*_bfd_find_nearest_line)
5465+ (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
5466+ const char **, const char **, unsigned int *);
5467+ bfd_boolean (*_bfd_find_line)
5468+ (bfd *, struct bfd_symbol **, struct bfd_symbol *,
5469+ const char **, unsigned int *);
5470+ bfd_boolean (*_bfd_find_inliner_info)
5471+ (bfd *, const char **, const char **, unsigned int *);
5472+ /* Back-door to allow format-aware applications to create debug symbols
5473+ while using BFD for everything else. Currently used by the assembler
5474+ when creating COFF files. */
5475+ asymbol * (*_bfd_make_debug_symbol)
5476+ (bfd *, void *, unsigned long size);
5477+#define bfd_read_minisymbols(b, d, m, s) \
5478+ BFD_SEND (b, _read_minisymbols, (b, d, m, s))
5479+ long (*_read_minisymbols)
5480+ (bfd *, bfd_boolean, void **, unsigned int *);
5481+#define bfd_minisymbol_to_symbol(b, d, m, f) \
5482+ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
5483+ asymbol * (*_minisymbol_to_symbol)
5484+ (bfd *, bfd_boolean, const void *, asymbol *);
5485+
5486+ /* Routines for relocs. */
5487+#define BFD_JUMP_TABLE_RELOCS(NAME) \
5488+ NAME##_get_reloc_upper_bound, \
5489+ NAME##_canonicalize_reloc, \
5490+ NAME##_bfd_reloc_type_lookup
5491+
5492+ long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
5493+ long (*_bfd_canonicalize_reloc)
5494+ (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
5495+ /* See documentation on reloc types. */
5496+ reloc_howto_type *
5497+ (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
5498+
5499+ /* Routines used when writing an object file. */
5500+#define BFD_JUMP_TABLE_WRITE(NAME) \
5501+ NAME##_set_arch_mach, \
5502+ NAME##_set_section_contents
5503+
5504+ bfd_boolean (*_bfd_set_arch_mach)
5505+ (bfd *, enum bfd_architecture, unsigned long);
5506+ bfd_boolean (*_bfd_set_section_contents)
5507+ (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
5508+
5509+ /* Routines used by the linker. */
5510+#define BFD_JUMP_TABLE_LINK(NAME) \
5511+ NAME##_sizeof_headers, \
5512+ NAME##_bfd_get_relocated_section_contents, \
5513+ NAME##_bfd_relax_section, \
5514+ NAME##_bfd_link_hash_table_create, \
5515+ NAME##_bfd_link_hash_table_free, \
5516+ NAME##_bfd_link_add_symbols, \
5517+ NAME##_bfd_link_just_syms, \
5518+ NAME##_bfd_final_link, \
5519+ NAME##_bfd_link_split_section, \
5520+ NAME##_bfd_gc_sections, \
5521+ NAME##_bfd_merge_sections, \
5522+ NAME##_bfd_is_group_section, \
5523+ NAME##_bfd_discard_group, \
5524+ NAME##_section_already_linked \
5525+
5526+ int (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
5527+ bfd_byte * (*_bfd_get_relocated_section_contents)
5528+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
5529+ bfd_byte *, bfd_boolean, struct bfd_symbol **);
5530+
5531+ bfd_boolean (*_bfd_relax_section)
5532+ (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
5533+
5534+ /* Create a hash table for the linker. Different backends store
5535+ different information in this table. */
5536+ struct bfd_link_hash_table *
5537+ (*_bfd_link_hash_table_create) (bfd *);
5538+
5539+ /* Release the memory associated with the linker hash table. */
5540+ void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
5541+
5542+ /* Add symbols from this object file into the hash table. */
5543+ bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
5544+
5545+ /* Indicate that we are only retrieving symbol values from this section. */
5546+ void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
5547+
5548+ /* Do a link based on the link_order structures attached to each
5549+ section of the BFD. */
5550+ bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
5551+
5552+ /* Should this section be split up into smaller pieces during linking. */
5553+ bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
5554+
5555+ /* Remove sections that are not referenced from the output. */
5556+ bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
5557+
5558+ /* Attempt to merge SEC_MERGE sections. */
5559+ bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
5560+
5561+ /* Is this section a member of a group? */
5562+ bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
5563+
5564+ /* Discard members of a group. */
5565+ bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
5566+
5567+ /* Check if SEC has been already linked during a reloceatable or
5568+ final link. */
5569+ void (*_section_already_linked) (bfd *, struct bfd_section *);
5570+
5571+ /* Routines to handle dynamic symbols and relocs. */
5572+#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
5573+ NAME##_get_dynamic_symtab_upper_bound, \
5574+ NAME##_canonicalize_dynamic_symtab, \
5575+ NAME##_get_synthetic_symtab, \
5576+ NAME##_get_dynamic_reloc_upper_bound, \
5577+ NAME##_canonicalize_dynamic_reloc
5578+
5579+ /* Get the amount of memory required to hold the dynamic symbols. */
5580+ long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
5581+ /* Read in the dynamic symbols. */
5582+ long (*_bfd_canonicalize_dynamic_symtab)
5583+ (bfd *, struct bfd_symbol **);
5584+ /* Create synthetized symbols. */
5585+ long (*_bfd_get_synthetic_symtab)
5586+ (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
5587+ struct bfd_symbol **);
5588+ /* Get the amount of memory required to hold the dynamic relocs. */
5589+ long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
5590+ /* Read in the dynamic relocs. */
5591+ long (*_bfd_canonicalize_dynamic_reloc)
5592+ (bfd *, arelent **, struct bfd_symbol **);
5593+
5594+ /* Opposite endian version of this target. */
5595+ const struct bfd_target * alternative_target;
5596+
5597+ /* Data for use by back-end routines, which isn't
5598+ generic enough to belong in this structure. */
5599+ const void *backend_data;
5600+
5601+} bfd_target;
5602+
5603+bfd_boolean bfd_set_default_target (const char *name);
5604+
5605+const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
5606+
5607+const char ** bfd_target_list (void);
5608+
5609+const bfd_target *bfd_search_for_target
5610+ (int (*search_func) (const bfd_target *, void *),
5611+ void *);
5612+
5613+/* Extracted from format.c. */
5614+bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
5615+
5616+bfd_boolean bfd_check_format_matches
5617+ (bfd *abfd, bfd_format format, char ***matching);
5618+
5619+bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
5620+
5621+const char *bfd_format_string (bfd_format format);
5622+
5623+/* Extracted from linker.c. */
5624+bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
5625+
5626+#define bfd_link_split_section(abfd, sec) \
5627+ BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
5628+
5629+void bfd_section_already_linked (bfd *abfd, asection *sec);
5630+
5631+#define bfd_section_already_linked(abfd, sec) \
5632+ BFD_SEND (abfd, _section_already_linked, (abfd, sec))
5633+
5634+/* Extracted from simple.c. */
5635+bfd_byte *bfd_simple_get_relocated_section_contents
5636+ (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
5637+
5638+#ifdef __cplusplus
5639+}
5640+#endif
5641+#endif
5642--- /dev/null
5643+++ b/arch/ia64/include/asm/kdb.h
5644@@ -0,0 +1,45 @@
5645+#ifndef _ASM_KDB_H
5646+#define _ASM_KDB_H
5647+
5648+/*
5649+ * Kernel Debugger Architecture Dependent Global Headers
5650+ *
5651+ * This file is subject to the terms and conditions of the GNU General Public
5652+ * License. See the file "COPYING" in the main directory of this archive
5653+ * for more details.
5654+ *
5655+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5656+ */
5657+
5658+/*
5659+ * KDB_ENTER() is a macro which causes entry into the kernel
5660+ * debugger from any point in the kernel code stream. If it
5661+ * is intended to be used from interrupt level, it must use
5662+ * a non-maskable entry method.
5663+ */
5664+#include <asm/kdb_break.h> /* break numbers are separated for CONFIG_KDB_LOCK */
5665+#define __KDB_ENTER2(b) asm("\tbreak.m "#b"\n")
5666+#define __KDB_ENTER1(b) __KDB_ENTER2(b)
5667+#define KDB_ENTER() do {if (kdb_on && !KDB_IS_RUNNING()) { __KDB_ENTER1(KDB_BREAK_ENTER); }} while(0)
5668+#define KDB_ENTER_SLAVE() do {if (kdb_on) { __KDB_ENTER1(KDB_BREAK_ENTER_SLAVE); }} while(0)
5669+
5670+ /*
5671+ * Needed for exported symbols.
5672+ */
5673+typedef unsigned long kdb_machreg_t;
5674+
5675+#define kdb_machreg_fmt "0x%lx"
5676+#define kdb_machreg_fmt0 "0x%016lx"
5677+#define kdb_bfd_vma_fmt "0x%lx"
5678+#define kdb_bfd_vma_fmt0 "0x%016lx"
5679+#define kdb_elfw_addr_fmt "0x%lx"
5680+#define kdb_elfw_addr_fmt0 "0x%016lx"
5681+
5682+static inline unsigned long
5683+kdba_funcptr_value(void *fp)
5684+{
5685+ /* ia64 function descriptor, first word is address of code */
5686+ return *(unsigned long *)fp;
5687+}
5688+
5689+#endif /* !_ASM_KDB_H */
5690--- /dev/null
5691+++ b/arch/ia64/include/asm/kdb_break.h
5692@@ -0,0 +1,24 @@
5693+#ifndef _ASM_KDB_BREAK_H
5694+#define _ASM_KDB_BREAK_H
5695+
5696+/*
5697+ * Kernel Debugger Architecture Dependent Global Headers
5698+ *
5699+ * This file is subject to the terms and conditions of the GNU General Public
5700+ * License. See the file "COPYING" in the main directory of this archive
5701+ * for more details.
5702+ *
5703+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5704+ */
5705+
5706+/*
5707+ * Break numbers are used by CONFIG_KDB_LOCK code. They need to be seperated
5708+ * from asm/kdb.h to let spinlock code build without pulling in all of the kdb
5709+ * headers.
5710+ */
5711+
5712+#define KDB_BREAK_BREAK 0x80100 /* kdb breakpoint in kernel */
5713+#define KDB_BREAK_ENTER 0x80101 /* KDB_ENTER(), single event or monarch */
5714+#define KDB_BREAK_ENTER_SLAVE 0x80102 /* KDB_ENTER_SLAVE(), concurrent slave events */
5715+
5716+#endif /* !_ASM_KDB_BREAK_H */
5717--- /dev/null
5718+++ b/arch/ia64/include/asm/kdbprivate.h
5719@@ -0,0 +1,124 @@
5720+#ifndef _ASM_KDBPRIVATE_H
5721+#define _ASM_KDBPRIVATE_H
5722+
5723+/*
5724+ * Kernel Debugger Architecture Dependent Private Headers
5725+ *
5726+ * This file is subject to the terms and conditions of the GNU General Public
5727+ * License. See the file "COPYING" in the main directory of this archive
5728+ * for more details.
5729+ *
5730+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5731+ */
5732+
5733+/* Definition of an machine instruction.
5734+ * Takes care of VLIW processors like Itanium
5735+ */
5736+
5737+typedef struct {
5738+ unsigned long inst[2];
5739+} kdb_machinst_t;
5740+
5741+/*
5742+ * KDB_MAXBPT describes the total number of breakpoints
5743+ * supported by this architecure.
5744+ */
5745+#define KDB_MAXBPT 16
5746+
5747+/*
5748+ * KDB_MAXHARDBPT describes the total number of hardware
5749+ * breakpoint registers that exist.
5750+ */
5751+#define KDB_MAXHARDBPT 4
5752+
5753+/*
5754+ * Platform specific environment entries
5755+ */
5756+#define KDB_PLATFORM_ENV "IDMODE=ia64", "BYTESPERWORD=4", "IDCOUNT=8"
5757+
5758+/*
5759+ * Support for IA64 debug registers
5760+ */
5761+typedef struct _kdbhard_bp {
5762+ kdb_machreg_t bph_reg; /* Register this breakpoint uses */
5763+
5764+ unsigned int bph_free:1; /* Register available for use */
5765+ unsigned int bph_data:1; /* Data Access breakpoint */
5766+
5767+ unsigned int bph_write:1; /* Write Data breakpoint */
5768+ unsigned int bph_mode:2; /* 0=inst, 1=write, 2=io, 3=read */
5769+ unsigned int bph_length:2; /* 0=1, 1=2, 2=BAD, 3=4 (bytes) */
5770+} kdbhard_bp_t;
5771+
5772+#define getprsregs(regs) ((struct switch_stack *)regs -1)
5773+
5774+/* bkpt support using break inst instead of IBP reg */
5775+
5776+/*
5777+ * Define certain specific instructions
5778+ */
5779+#define BREAK_INSTR (long)(KDB_BREAK_BREAK << (5+6))
5780+#define INST_SLOT0_MASK (0x1ffffffffffL << 5)
5781+
5782+#define BKPTMODE_DATAR 3
5783+#define BKPTMODE_IO 2
5784+#define BKPTMODE_DATAW 1
5785+#define BKPTMODE_INST 0
5786+
5787+/* Some of the fault registers needed by kdb but not passed with
5788+ * regs or switch stack.
5789+ */
5790+typedef struct fault_regs {
5791+ unsigned long isr ;
5792+ unsigned long ifa ;
5793+ unsigned long iim ;
5794+ unsigned long itir ;
5795+} fault_regs_t ;
5796+
5797+/*
5798+ * Support for setjmp/longjmp
5799+ */
5800+
5801+/* __jmp_buf definition copied from libc/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h */
5802+
5803+#define _JBLEN 70
5804+
5805+typedef struct __kdb_jmp_buf {
5806+ unsigned long __jmp_buf[_JBLEN];
5807+} kdb_jmp_buf __attribute__ ((aligned (16)));
5808+
5809+extern int kdba_setjmp(kdb_jmp_buf *);
5810+extern void kdba_longjmp(kdb_jmp_buf *, int);
5811+#define kdba_setjmp kdba_setjmp
5812+
5813+extern kdb_jmp_buf *kdbjmpbuf;
5814+
5815+/* Arch specific data saved for running processes */
5816+
5817+struct kdba_running_process {
5818+ struct switch_stack *sw;
5819+};
5820+
5821+extern void kdba_save_running(struct kdba_running_process *, struct pt_regs *);
5822+extern void kdba_unsave_running(struct kdba_running_process *, struct pt_regs *);
5823+
5824+/* kdba wrappers which want to save switch stack will call unw_init_running().
5825+ * That routine only takes a void* so pack the interrupt data into a structure.
5826+ */
5827+
5828+#include <linux/interrupt.h> /* for irqreturn_t */
5829+
5830+enum kdba_serial_console {
5831+ KDBA_SC_NONE = 0,
5832+ KDBA_SC_STANDARD,
5833+ KDBA_SC_SGI_L1,
5834+};
5835+
5836+extern enum kdba_serial_console kdba_serial_console;
5837+
5838+#define KDB_RUNNING_PROCESS_ORIGINAL kdb_running_process_save
5839+extern struct kdb_running_process *kdb_running_process_save; /* [NR_CPUS] */
5840+
5841+extern void kdba_wait_for_cpus(void);
5842+
5843+#endif /* !_ASM_KDBPRIVATE_H */
5844--- a/arch/ia64/include/asm/kmap_types.h
5845+++ b/arch/ia64/include/asm/kmap_types.h
5846@@ -22,7 +22,8 @@ D(9) KM_IRQ0,
5847 D(10) KM_IRQ1,
5848 D(11) KM_SOFTIRQ0,
5849 D(12) KM_SOFTIRQ1,
5850-D(13) KM_TYPE_NR
5851+D(13) KM_KDB,
5852+D(14) KM_TYPE_NR
5853 };
5854
5855 #undef D
5856--- a/arch/ia64/include/asm/kregs.h
5857+++ b/arch/ia64/include/asm/kregs.h
5858@@ -72,7 +72,7 @@
5859 /* A mask of PSR bits that we generally don't want to inherit across a clone2() or an
5860 execve(). Only list flags here that need to be cleared/set for BOTH clone2() and
5861 execve(). */
5862-#define IA64_PSR_BITS_TO_CLEAR (IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_DB | IA64_PSR_LP | \
5863+#define IA64_PSR_BITS_TO_CLEAR (IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_LP | \
5864 IA64_PSR_TB | IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \
5865 IA64_PSR_SS | IA64_PSR_ED | IA64_PSR_IA)
5866 #define IA64_PSR_BITS_TO_SET (IA64_PSR_DFH | IA64_PSR_SP)
5867--- /dev/null
5868+++ b/arch/ia64/kdb/ChangeLog
5869@@ -0,0 +1,1085 @@
5870+2008-09-30 Jay Lan <jlan@sgi.com>
5871+
5872+ * kdb-v4.4-2.6.27-rc8-ia64-1.
5873+
5874+2008-09-22 Jay Lan <jlan@sgi.com>
5875+
5876+ * kdb-v4.4-2.6.27-rc7-ia64-1.
5877+
5878+2008-09-03 Jay Lan <jlan@sgi.com>
5879+
5880+ * kdb-v4.4-2.6.27-rc5-ia64-1.
5881+
5882+2008-08-19 Jay Lan <jlan@sgi.com>
5883+
5884+ * kdb-v4.4-2.6.27-rc3-ia64-1.
5885+
5886+2008-08-15 Jay Lan <jlan@sgi.com>
5887+
5888+ * Fix a problem that slave cpus panic'ed during NMI.
5889+ Jay Lan <jlan@sgi.com>
5890+ * kdb-v4.4-2.6.27-rc2-ia64-2.1.
5891+
5892+2008-08-14 Jay Lan <jlan@sgi.com>
5893+
5894+ * Support 'kdump' command to take a kdump vmcore from KDB,
5895+ Dan Aloni (da-x@monatomic.org),
5896+ Jason Xiao (jidong.xiao@gmail.com),
5897+ Jay Lan (jlan@sgi.com)
5898+ * kdb-v4.4-2.6.27-rc2-ia64-2.
5899+
5900+2008-08-06 Jay Lan <jlan@sgi.com>
5901+
5902+ * Fix up the NULL pointer deference issue in ohci_kdb_poll_char,
5903+ Jason Xiao <jidong.xiao@gmail.com>
5904+ * kdb-v4.4-2.6.27-rc2-ia64-1.
5905+
5906+2008-07-18 Jay Lan <jlan@sgi.com>
5907+
5908+ * support Hardware Breakpoint (bph/bpha) commands
5909+ IA64: Greg Banks <gnb@sgi.com>
5910+ X86: Konstantin Baydarov <kbaidarov@ru.mvista.com>
5911+ * kdb-v4.4-2.6.26-ia64-2.
5912+
5913+2008-07-14 Jay Lan <jlan@sgi.com>
5914+
5915+ * kdb-v4.4-2.6.26-ia64-1.
5916+
5917+2008-07-11 Jay Lan <jlan@sgi.com>
5918+
5919+ * New commands and some fixups and enhancements,
5920+ Joe Korty <joe.korty@ccur.com>
5921+ John Blackwood <john.blackwood@ccur.com>
5922+ Jim Houston <jim.houston@ccur.com>
5923+ - Use the non-sleeping copy_from_user_atomic.
5924+ - Enhance kdb_cmderror diagnostic output.
5925+ - Expand the KDB 'duplicate command' error message.
5926+ - Touch NMI watchdog in various KDB busy-loops.
5927+ - Support IMB HS20 Blade 8843 platform.
5928+ - Display exactly which cpus needed an NMI to get them into kdb.
5929+ - Better document that kdb's 'ps A' command can be used to show
5930+ _all_ processes and threads
5931+ - Suppress KDB boottime INFO messages if quiet boot.
5932+ - Add a KDB breakpoint to the OOPs path.
5933+ - Add CONFIG_DISCONTIGMEM support to kdbm_memmap.
5934+ - Extend the KDB task command to handle CONFIG_NUMA fields.
5935+ - Extend the KDB vm command to support NUMA stuff.
5936+ - Create the KDB mempolicy command.
5937+ - Create a pgdat command for KDB.
5938+ - Fix a hang on boot on some i386 systems.
5939+ * kdb-v4.4-2.6.26-rc9-ia64-1.
5940+
5941+2008-06-30 Jay Lan <jlan@sgi.com>
5942+
5943+ * kdb-v4.4-2.6.26-rc8-ia64-1.
5944+
5945+2008-06-25 Jay Lan <jlan@sgi.com>
5946+
5947+ * kdb-v4.4-2.6.26-rc7-ia64-1.
5948+
5949+2008-06-06 Jay Lan <jlan@sgi.com>
5950+
5951+ * kdb-v4.4-2.6.26-rc5-ia64-1.
5952+
5953+2008-05-30 Jay Lan <jlan@sgi.com>
5954+
5955+ * kdb-v4.4-2.6.26-rc4-ia64-1.
5956+
5957+2008-05-20 Jay Lan <jlan@sgi.com>
5958+
5959+ * kdb-v4.4-2.6.26-rc3-ia64-1.
5960+
5961+2008-05-13 Jay Lan <jlan@sgi.com>
5962+
5963+ * XPC support removed from KDB due to XPC changes to 2.6.26-rc1.
5964+ * kdb-v4.4-2.6.26-rc1-ia64-1.
5965+
5966+2008-04-17 Jay Lan <jlan@sgi.com>
5967+
5968+ * kdb-v4.4-2.6.25-ia64-1.
5969+
5970+2008-03-16 Jay Lan <jlan@sgi.com>
5971+
5972+ * kdb-v4.4-2.6.25-rc6-ia64-1.
5973+
5974+2008-03-03 Jay Lan <jlan@sgi.com>
5975+
5976+ * kdb-v4.4-2.6.25-rc3-ia64-1.
5977+
5978+2008-02-26 Jay Lan <jlan@sgi.com>
5979+
5980+ * kdb-v4.4-2.6.25-rc2-ia64-1.
5981+
5982+2008-02-19 Jay Lan <jlan@sgi.com>
5983+
5984+ * kdb-v4.4-2.6.25-rc1-ia64-1.
5985+
5986+2008-02-01 Jay Lan <jlan@sgi.com>
5987+
5988+ * Backed out USB UHCI support since it caused dropped characters and
5989+ broke OHCI.
5990+ * Restored "archkdbcommon" commands for x86. It was lost at the x86
5991+ merge.
5992+ * Detecting if the HC was "busy", Aaron Young <ayoung@sgi.com>
5993+ * kdb-v4.4-2.6.24-ia64-2.
5994+
5995+2008-01-29 Jay Lan <jlan@sgi.com>
5996+
5997+ * kdb-v4.4-2.6.24-ia64-1.
5998+
5999+2008-01-22 Jay Lan <jlan@sgi.com>
6000+
6001+ * USB UHCI kdb support, Konstantin Baydarov <kbaidarov@ru.mvista.com>
6002+ * kdb-v4.4-2.6.24-rc8-ia64-3.
6003+
6004+2008-01-18 Jay Lan <jlan@sgi.com>
6005+
6006+ * USB EHCI kdb support, Aaron Young <ayoung@sgi.com>
6007+ * kdb-v4.4-2.6.24-rc8-ia64-2.
6008+
6009+2008-01-18 Jay Lan <jlan@sgi.com>
6010+
6011+ * kdb-v4.4-2.6.24-rc8-ia64-1.
6012+
6013+2008-01-07 Jay Lan <jlan@sgi.com>
6014+
6015+ * kdb-v4.4-2.6.24-rc7-ia64-1.
6016+
6017+2007-12-21 Jay Lan <jlan@sgi.com>
6018+
6019+ * kdb v4.4-2.6.24-rc6-ia64-1.
6020+
6021+2007-12-12 Jay Lan <jlan@sgi.com>
6022+
6023+ * kdb v4.4-2.6.24-rc5-ia64-1.
6024+
6025+2007-12-05 Jay Lan <jlan@sgi.com>
6026+
6027+ * Fixed a 'sysctl table check failed' problem.
6028+ * kdb v4.4-2.6.24-rc4-ia64-1.
6029+
6030+2007-11-26 Jay Lan <jlan@sgi.com>
6031+
6032+ * kdb v4.4-2.6.24-rc3-ia64-1.
6033+
6034+2007-11-13 Jay Lan <jlan@sgi.com>
6035+
6036+ * Back ported "New KDB USB interface" from Aaron Young in
6037+ v4.4-2.6.23-ia64-2 to 2.6.24 kdb patchset.
6038+ * kdb v4.4-2.6.24-rc2-ia64-2.
6039+
6040+2007-11-12 Jay Lan <jlan@sgi.com>
6041+
6042+ * kdb v4.4-2.6.24-rc2-ia64-1.
6043+
6044+2007-11-09 Jay Lan <jlan@sgi.com>
6045+
6046+ * Rebase to 2.6.24-rc1 kernel
6047+ * - merged kdb-v4.4-2.6.23-i386-1 and kdb-v4.4-2.6.23-x86_64-1
6048+ * into kdb-v4.4-2.6.24-rc1-x86-1
6049+ * - Fields "done", "sglist_len", and "pid" are removed from
6050+ * struct scsi_cmnd. Thus, these fields are no longer displayed
6051+ * on "sc" command.
6052+ * kdb v4.4-2.6.24-rc1-ia64-1.
6053+
6054+2007-11-08 Jay Lan <jlan@sgi.com>
6055+
6056+ * New KDB USB interface, Aaron Young <ayoung@sgi.com>
6057+ * 1. This patch allows KDB to work with any Host Contoller driver
6058+ * and call the correct HC driver poll routine (as long as the
6059+ * HC driver provides a .kdb_poll_char routine via it's
6060+ * associated hc_driver struct).
6061+ * 2. Hotplugged keyboards are now recognized by KDB.
6062+ * 3. Currently KDB can only make use of 1 USB type keyboard.
6063+ * New code can handle up to 8 attached keyboards - input is
6064+ * multiplexed from all of them while in kdb.
6065+ * kdb v4.4-2.6.23-ia64-2.
6066+
6067+2007-10-24 Jay Lan <jlan@sgi.com>
6068+
6069+ * kdb v4.4-2.6.23-ia64-1.
6070+
6071+2007-09-26 Jay Lan <jlan@sgi.com>
6072+
6073+ * kdb v4.4-2.6.23-rc8-ia64-1.
6074+
6075+2007-09-21 Jay Lan <jlan@sgi.com>
6076+
6077+ * kdb v4.4-2.6.23-rc7-ia64-1.
6078+
6079+2007-09-19 Jay Lan <jlan@sgi.com>
6080+
6081+ * Get into KDB successfully if multiple cpus are in MCA. <rja@sgi.com>
6082+ * kdb v4.4-2.6.23-rc6-ia64-2.
6083+
6084+2007-09-12 Jay Lan <jlan@sgi.com>
6085+
6086+ * kdb v4.4-2.6.23-rc6-ia64-1.
6087+
6088+2007-09-06 Jay Lan <jlan@sgi.com>
6089+
6090+ * kdb v4.4-2.6.23-rc5-ia64-1.
6091+
6092+2007-08-30 Keith Owens <kaos@sgi.com>
6093+
6094+ * New i386/x86_64 backtrace requires that kdb_save_running() does not
6095+ exit until after kdb_main_loop() has completed.
6096+ * kdb v4.4-2.6.23-rc4-ia64-2.
6097+
6098+2007-08-30 Jay Lan <jlan@sgi.com>
6099+
6100+ * kdb v4.4-2.6.23-rc4-ia64-1.
6101+
6102+2007-08-24 Keith Owens <kaos@sgi.com>
6103+
6104+ * kdb v4.4-2.6.23-rc3-ia64-1.
6105+
6106+2007-08-07 Jay Lan <jlan@sgi.com>
6107+
6108+ * kdb v4.4-2.6.23-rc2-ia64-1.
6109+
6110+2007-07-30 Keith Owens <kaos@sgi.com>
6111+
6112+ * kdb v4.4-2.6.23-rc1-ia64-1.
6113+
6114+2007-07-09 Keith Owens <kaos@sgi.com>
6115+
6116+ * kdb v4.4-2.6.22-ia64-1.
6117+
6118+2007-07-02 Keith Owens <kaos@sgi.com>
6119+
6120+ * kdb v4.4-2.6.22-rc7-ia64-1.
6121+
6122+2007-06-20 Keith Owens <kaos@sgi.com>
6123+
6124+ * kdb v4.4-2.6.22-rc5-ia64-1.
6125+
6126+2007-06-08 Keith Owens <kaos@sgi.com>
6127+
6128+ * kdb v4.4-2.6.22-rc4-ia64-1.
6129+
6130+2007-05-28 Keith Owens <kaos@sgi.com>
6131+
6132+ * kdb v4.4-2.6.22-rc3-ia64-1.
6133+
6134+2007-05-22 Keith Owens <kaos@sgi.com>
6135+
6136+ * kdb v4.4-2.6.22-rc2-ia64-1.
6137+
6138+2007-05-22 Keith Owens <kaos@sgi.com>
6139+
6140+ * kdb v4.4-2.6.22-rc1-ia64-1.
6141+
6142+2007-04-29 Keith Owens <kaos@sgi.com>
6143+
6144+ * kdb v4.4-2.6.21-ia64-1.
6145+
6146+2007-04-16 Keith Owens <kaos@sgi.com>
6147+
6148+ * kdb v4.4-2.6.21-rc7-ia64-1.
6149+
6150+2007-04-10 Keith Owens <kaos@sgi.com>
6151+
6152+ * kdb v4.4-2.6.21-rc6-ia64-1.
6153+
6154+2007-04-02 Keith Owens <kaos@sgi.com>
6155+
6156+ * kdb v4.4-2.6.21-rc5-ia64-1.
6157+
6158+2007-03-19 Keith Owens <kaos@sgi.com>
6159+
6160+ * kdb v4.4-2.6.21-rc4-ia64-1.
6161+
6162+2007-03-14 Keith Owens <kaos@sgi.com>
6163+
6164+ * kdb v4.4-2.6.21-rc3-ia64-1.
6165+
6166+2007-03-14 Keith Owens <kaos@sgi.com>
6167+
6168+ * kdb v4.4-2.6.21-rc2-ia64-1.
6169+
6170+2007-03-01 Keith Owens <kaos@sgi.com>
6171+
6172+ * kdb v4.4-2.6.21-rc1-ia64-1.
6173+
6174+2007-03-01 Keith Owens <kaos@sgi.com>
6175+
6176+ * Remove sparse warnings.
6177+ * kdb v4.4-2.6.20-ia64-3.
6178+
6179+2007-02-16 Keith Owens <kaos@sgi.com>
6180+
6181+ * Initialise variable bits of struct disassemble_info each time.
6182+ * kdb v4.4-2.6.20-ia64-2.
6183+
6184+2007-02-06 Keith Owens <kaos@sgi.com>
6185+
6186+ * kdb v4.4-2.6.20-ia64-1.
6187+
6188+2007-02-01 Keith Owens <kaos@sgi.com>
6189+
6190+ * kdb v4.4-2.6.20-rc7-ia64-1.
6191+
6192+2007-01-08 Keith Owens <kaos@sgi.com>
6193+
6194+ * Detect calls via PLT and decode the target address.
6195+ * kdb v4.4-2.6.20-rc4-ia64-2.
6196+
6197+2007-01-08 Keith Owens <kaos@sgi.com>
6198+
6199+ * kdb v4.4-2.6.20-rc4-ia64-1.
6200+
6201+2007-01-02 Keith Owens <kaos@sgi.com>
6202+
6203+ * kdb v4.4-2.6.20-rc3-ia64-1.
6204+
6205+2006-12-20 Keith Owens <kaos@sgi.com>
6206+
6207+ * kdb v4.4-2.6.20-rc1-ia64-1.
6208+
6209+2006-12-07 Keith Owens <kaos@sgi.com>
6210+
6211+ * Export kdba_dumpregs.
6212+ * kdb v4.4-2.6.19-ia64-2.
6213+
6214+2006-11-30 Keith Owens <kaos@sgi.com>
6215+
6216+ * kdb v4.4-2.6.19-ia64-1.
6217+
6218+2006-11-27 Keith Owens <kaos@sgi.com>
6219+
6220+ * Only use VT keyboard if the command line allows it and ACPI indicates
6221+ that there is an i8042.
6222+ * kdb v4.4-2.6.19-rc6-ia64-2.
6223+
6224+2006-11-20 Keith Owens <kaos@sgi.com>
6225+
6226+ * kdb v4.4-2.6.19-rc6-ia64-1.
6227+
6228+2006-11-09 Keith Owens <kaos@sgi.com>
6229+
6230+ * Only use VT console if the command line allows it.
6231+ * kdb v4.4-2.6.19-rc5-ia64-2.
6232+
6233+2006-11-08 Keith Owens <kaos@sgi.com>
6234+
6235+ * kdb v4.4-2.6.19-rc5-ia64-1.
6236+
6237+2006-11-01 Keith Owens <kaos@sgi.com>
6238+
6239+ * kdb v4.4-2.6.19-rc4-ia64-1.
6240+
6241+2006-10-24 Keith Owens <kaos@sgi.com>
6242+
6243+ * kdb v4.4-2.6.19-rc3-ia64-1.
6244+
6245+2006-10-24 Keith Owens <kaos@sgi.com>
6246+
6247+ * Remove redundant regs and envp parameters.
6248+ * kdb v4.4-2.6.19-rc2-ia64-2.
6249+
6250+2006-10-18 Keith Owens <kaos@sgi.com>
6251+
6252+ * kdb v4.4-2.6.19-rc2-ia64-1.
6253+
6254+2006-10-09 Keith Owens <kaos@sgi.com>
6255+
6256+ * kdb v4.4-2.6.19-rc1-ia64-1.
6257+
6258+2006-10-06 Keith Owens <kaos@sgi.com>
6259+
6260+ * Remove #include <linux/config.h>
6261+ * kdb v4.4-2.6.18-ia64-2.
6262+
6263+2006-09-20 Keith Owens <kaos@sgi.com>
6264+
6265+ * kdb v4.4-2.6.18-ia64-1.
6266+
6267+2006-09-15 Keith Owens <kaos@sgi.com>
6268+
6269+ * kdb v4.4-2.6.18-rc7-ia64-1.
6270+
6271+2006-08-29 Keith Owens <kaos@sgi.com>
6272+
6273+ * Rewrite all backtrace code.
6274+ * kdb v4.4-2.6.18-rc5-ia64-2.
6275+
6276+2006-08-28 Keith Owens <kaos@sgi.com>
6277+
6278+ * kdb v4.4-2.6.18-rc5-ia64-1.
6279+
6280+2006-08-08 Keith Owens <kaos@sgi.com>
6281+
6282+ * kdb v4.4-2.6.18-rc4-ia64-1.
6283+
6284+2006-08-04 Keith Owens <kaos@sgi.com>
6285+
6286+ * kdb v4.4-2.6.18-rc3-ia64-1.
6287+
6288+2006-07-18 Keith Owens <kaos@sgi.com>
6289+
6290+ * kdb v4.4-2.6.18-rc2-ia64-1.
6291+
6292+2006-07-12 Keith Owens <kaos@sgi.com>
6293+
6294+ * Remove dead KDB_REASON codes.
6295+ * sparse cleanups.
6296+ * kdb v4.4-2.6.18-rc1-ia64-2.
6297+
6298+2006-07-07 Keith Owens <kaos@sgi.com>
6299+
6300+ * kdb v4.4-2.6.18-rc1-ia64-1.
6301+
6302+2006-07-04 Keith Owens <kaos@sgi.com>
6303+
6304+ * Delete kdba_enable_lbr, kdba_disable_lbr, kdba_print_lbr,
6305+ page_fault_mca. Only ever implemented on x86, difficult to maintain
6306+ and rarely used in the field.
6307+ * Replace #ifdef KDB_HAVE_LONGJMP with #ifdef kdba_setjmp.
6308+ * kdb v4.4-2.6.17-ia64-2.
6309+
6310+2006-06-19 Keith Owens <kaos@sgi.com>
6311+
6312+ * kdb v4.4-2.6.17-ia64-1.
6313+
6314+2006-05-25 Keith Owens <kaos@sgi.com>
6315+
6316+ * kdb v4.4-2.6.17-rc5-ia64-1.
6317+
6318+2006-05-15 Keith Owens <kaos@sgi.com>
6319+
6320+ * Refresh bfd related files from binutils 2.16.91.0.2.
6321+ * kdb v4.4-2.6.17-rc4-ia64-2.
6322+
6323+2006-05-12 Keith Owens <kaos@sgi.com>
6324+
6325+ * kdb v4.4-2.6.17-rc4-ia64-1.
6326+
6327+2006-04-28 Keith Owens <kaos@sgi.com>
6328+
6329+ * kdb v4.4-2.6.17-rc3-ia64-1.
6330+
6331+2006-04-22 Keith Owens <kaos@sgi.com>
6332+
6333+ * kdb v4.4-2.6.17-rc2-ia64-1.
6334+
6335+2006-04-11 Keith Owens <kaos@sgi.com>
6336+
6337+ * kdb v4.4-2.6.17-rc1-ia64-1.
6338+
6339+2006-03-30 Keith Owens <kaos@sgi.com>
6340+
6341+ * Change CONFIG_LKCD to CONFIG_LKCD_DUMP.
6342+ * kdb v4.4-2.6.16-ia64-3.
6343+
6344+2006-03-24 Keith Owens <kaos@sgi.com>
6345+
6346+ * Use INIT to interrupt cpus that do not respond to a normal kdb IPI.
6347+ * Remove KDBA_MCA_TRACE from arch/ia64/kernel/mca.c.
6348+ * kdb v4.4-2.6.16-ia64-2.
6349+
6350+2006-03-21 Keith Owens <kaos@sgi.com>
6351+
6352+ * kdb v4.4-2.6.16-ia64-1.
6353+
6354+2006-03-14 Nathan Scott <nathans@sgi.com>
6355+
6356+ * kdb v4.4-2.6.16-rc6-ia64-1.
6357+
6358+2006-02-28 Nathan Scott <nathans@sgi.com>
6359+
6360+ * kdb v4.4-2.6.16-rc5-ia64-1.
6361+
6362+2006-02-20 Nathan Scott <nathans@sgi.com>
6363+
6364+ * kdb v4.4-2.6.16-rc4-ia64-1.
6365+
6366+2006-02-07 Keith Owens <kaos@sgi.com>
6367+
6368+ * Change kdb_running_process_save from a static array to a pointer.
6369+ gcc 4.0 objects to forward declarations for arrays with an incomplete
6370+ type.
6371+ * kdb v4.4-2.6.16-rc2-ia64-3.
6372+
6373+2006-02-06 Keith Owens <kaos@sgi.com>
6374+
6375+ * Change CONFIG_CRASH_DUMP to CONFIG_LKCD.
6376+ * kdb v4.4-2.6.16-rc2-ia64-2.
6377+
6378+2006-02-06 Keith Owens <kaos@sgi.com>
6379+
6380+ * kdb v4.4-2.6.16-rc2-ia64-1.
6381+
6382+2006-02-01 Keith Owens <kaos@sgi.com>
6383+
6384+ * Handlers: check that the task is in kernel space before looking at
6385+ the thread_info bits.
6386+ * Expose kdb_running_process_save[] so 'pid R' can get the original
6387+ process, even when the MCA/INIT handlers are being used.
6388+ * kdb v4.4-2.6.16-rc1-ia64-3.
6389+
6390+2006-01-19 Keith Owens <kaos@sgi.com>
6391+
6392+ * Add back some kdb changes to xpc_main that were lost due to a patch
6393+ conflict.
6394+ * kdb v4.4-2.6.16-rc1-ia64-2.
6395+
6396+2006-01-18 Keith Owens <kaos@sgi.com>
6397+
6398+ * kdb v4.4-2.6.16-rc1-ia64-1.
6399+
6400+2006-01-10 Keith Owens <kaos@sgi.com>
6401+
6402+ * Build kdba_pod for generic as well as sn2 kernels and test at run
6403+ time if the platform is sn2.
6404+ * kdb v4.4-2.6.15-ia64-3.
6405+
6406+2006-01-08 Keith Owens <kaos@sgi.com>
6407+
6408+ * Convert xpc to use DIE_KDEBUG_ENTER and DIE_KDEBUG_LEAVE.
6409+ * Add debug option for xpc.
6410+ * break.b always sets a debug trap number of 0 , so pass that to kdb as
6411+ well as the normal kdb traaps.
6412+ * kdb v4.4-2.6.15-ia64-2.
6413+
6414+2006-01-04 Keith Owens <kaos@sgi.com>
6415+
6416+ * Remove some inlines and the last vestige of CONFIG_NUMA_REPLICATE.
6417+ * Read the keyboard acknowledgment after sending a character. SuSE
6418+ Bugzilla 60240.
6419+ * kdb v4.4-2.6.15-ia64-1.
6420+
6421+2005-12-25 Keith Owens <kaos@sgi.com>
6422+
6423+ * kdb v4.4-2.6.15-rc7-ia64-1.
6424+
6425+2005-12-20 Keith Owens <kaos@sgi.com>
6426+
6427+ * kdb v4.4-2.6.15-rc6-ia64-1.
6428+
6429+2005-12-06 Keith Owens <kaos@sgi.com>
6430+
6431+ * Use RECOVERY flag in MCA handler.
6432+ * kdb v4.4-2.6.15-rc5-ia64-2.
6433+
6434+2005-12-05 Keith Owens <kaos@sgi.com>
6435+
6436+ * kdb v4.4-2.6.15-rc5-ia64-1.
6437+
6438+2005-12-02 Keith Owens <kaos@sgi.com>
6439+
6440+ * Reinstate hook for debug trap, the patch chunk was accidentally
6441+ dropped in 2.6.15-rc1.
6442+ * kdb v4.4-2.6.15-rc4-ia64-1.
6443+
6444+2005-11-30 Keith Owens <kaos@sgi.com>
6445+
6446+ * kdb v4.4-2.6.15-rc3-ia64-1.
6447+
6448+2005-11-21 Keith Owens <kaos@sgi.com>
6449+
6450+ * kdb v4.4-2.6.15-rc2-ia64-1.
6451+
6452+2005-11-15 Keith Owens <kaos@sgi.com>
6453+
6454+ * kdb v4.4-2.6.15-rc1-ia64-1.
6455+
6456+2005-10-28 Keith Owens <kaos@sgi.com>
6457+
6458+ * kdb v4.4-2.6.14-ia64-1.
6459+
6460+2005-10-21 Keith Owens <kaos@sgi.com>
6461+
6462+ * kdb v4.4-2.6.14-rc5-ia64-1.
6463+
6464+2005-10-11 Keith Owens <kaos@sgi.com>
6465+
6466+ * Handle removal of USB keyboard. Aaron Young, SGI
6467+ * kdb v4.4-2.6.14-rc4-ia64-1.
6468+
6469+2005-10-04 Keith Owens <kaos@sgi.com>
6470+
6471+ * kdb v4.4-2.6.14-rc3-ia64-1.
6472+
6473+2005-09-21 Keith Owens <kaos@sgi.com>
6474+
6475+ * Support kdb_current_task in register display and modify commands.
6476+ * kdb v4.4-2.6.14-rc2-ia64-1.
6477+
6478+2005-09-20 Keith Owens <kaos@sgi.com>
6479+
6480+ * Coexist with kprobes.
6481+ * Coexist with MCA/INIT rewrite.
6482+ * Add KDB_ENTER_SLAVE to handle concurrent entry to kdb from multiple
6483+ cpus.
6484+ * Add handlers command to control whether the MCA/INIT task or the
6485+ original task is displayed.
6486+ * Namespace clean up, remove unused kdba_sw_interrupt.
6487+ * kdb v4.4-2.6.14-rc1-ia64-1.
6488+
6489+2005-08-29 Keith Owens <kaos@sgi.com>
6490+
6491+ * kdb v4.4-2.6.13-ia64-1.
6492+
6493+2005-08-24 Keith Owens <kaos@sgi.com>
6494+
6495+ * kdb v4.4-2.6.13-rc7-ia64-1.
6496+
6497+2005-08-08 Keith Owens <kaos@sgi.com>
6498+
6499+ * Add minstate command.
6500+ * kdb v4.4-2.6.13-rc6-ia64-1.
6501+
6502+2005-08-02 Keith Owens <kaos@sgi.com>
6503+
6504+ * Replace hard coded kdb declarations with #include <asm/sections>.
6505+ * kdb v4.4-2.6.13-rc5-ia64-1.
6506+
6507+2005-07-30 Keith Owens <kaos@sgi.com>
6508+
6509+ * kdb v4.4-2.6.13-rc4-ia64-1.
6510+
6511+2005-07-22 Keith Owens <kaos@sgi.com>
6512+
6513+ * Handle INIT delivered while in physical mode.
6514+ * kdb v4.4-2.6.13-rc3-ia64-2.
6515+
6516+2005-07-19 Keith Owens <kaos@sgi.com>
6517+
6518+ * Add support for USB keyboard (OHCI only). Aaron Young, SGI.
6519+ * kdb v4.4-2.6.13-rc3-ia64-1.
6520+
6521+2005-07-08 Keith Owens <kaos@sgi.com>
6522+
6523+ * kdb v4.4-2.6.13-rc2-ia64-1.
6524+
6525+2005-07-01 Keith Owens <kaos@sgi.com>
6526+
6527+ * kdb v4.4-2.6.13-rc1-ia64-1.
6528+
6529+2005-06-18 Keith Owens <kaos@sgi.com>
6530+
6531+ * Standard IA64 code now works around break.b setting cr.iim to 0
6532+ instead of the break number. Remove the kdb workaround.
6533+ * kdb v4.4-2.6.12-ia64-1.
6534+
6535+2005-06-08 Keith Owens <kaos@sgi.com>
6536+
6537+ * kdb v4.4-2.6.12-rc6-ia64-1.
6538+
6539+2005-05-25 Keith Owens <kaos@sgi.com>
6540+
6541+ * kdb v4.4-2.6.12-rc5-ia64-1.
6542+
6543+2005-05-24 Keith Owens <kaos@sgi.com>
6544+
6545+ * break.b sets cr.iim to 0 instead of the break number. Deal with it.
6546+ * kdb v4.4-2.6.12-rc4-ia64-3.
6547+
6548+2005-05-14 Keith Owens <kaos@sgi.com>
6549+
6550+ * Correct MCA path after calling kdba_mca_bspstore_fixup().
6551+ Mark Larson, SGI.
6552+ * Tell the user that MCA/INIT is recoverable so kdb is not entered.
6553+ * kdb v4.4-2.6.12-rc4-ia64-2.
6554+
6555+2005-05-08 Keith Owens <kaos@sgi.com>
6556+
6557+ * kdb v4.4-2.6.12-rc4-ia64-1.
6558+
6559+2005-04-21 Keith Owens <kaos@sgi.com>
6560+
6561+ * kdb v4.4-2.6.12-rc3-ia64-1.
6562+
6563+2005-04-06 Keith Owens <kaos@sgi.com>
6564+
6565+ * kdb v4.4-2.6.12-rc2-ia64-1.
6566+
6567+2005-04-04 Keith Owens <kaos@sgi.com>
6568+
6569+ * More tweaks to cope with invalid old bspstore in MCA handler.
6570+ * kdb v4.4-2.6.12-rc1-ia64-2.
6571+
6572+2005-03-29 Keith Owens <kaos@sgi.com>
6573+
6574+ * Replace __copy_to_user with __copy_to_user_inatomic.
6575+ * MCA handler, do not use old_bspstore if it is in region 4 or below.
6576+ * kdb v4.4-2.6.12-rc1-ia64-1.
6577+
6578+2005-03-08 Keith Owens <kaos@sgi.com>
6579+
6580+ * Coexistence patches for lkcd. Jason Uhlenkott, SGI.
6581+ * kdb v4.4-2.6.11-ia64-2.
6582+
6583+2005-03-03 Keith Owens <kaos@sgi.com>
6584+
6585+ * kdb-v4.4-2.6.11-ia64-1.
6586+
6587+2005-02-14 Keith Owens <kaos@sgi.com>
6588+
6589+ * kdb-v4.4-2.6.11-rc4-ia64-1.
6590+
6591+2005-02-08 Keith Owens <kaos@sgi.com>
6592+
6593+ * kdb-v4.4-2.6.11-rc3-bk4-ia64-1.
6594+
6595+2005-02-03 Keith Owens <kaos@sgi.com>
6596+
6597+ * kdb-v4.4-2.6.11-rc3-ia64-1.
6598+
6599+2005-01-27 Keith Owens <kaos@sgi.com>
6600+
6601+ * kdb-v4.4-2.6.11-rc2-ia64-1.
6602+
6603+2005-01-20 Keith Owens <kaos@sgi.com>
6604+
6605+ * MCA and INIT stacks moved to per-cpu area.
6606+ * kdb-v4.4-2.6.11-rc1-bk7-ia64-1.
6607+
6608+2005-01-12 Keith Owens <kaos@sgi.com>
6609+
6610+ * ia64_spinlock_contention_pre3_4_end is in base kernel, remove from kdb.
6611+ * Use last ditch allocator if unwind cannot allocate memory.
6612+ * kdb-v4.4-2.6.11-rc1-ia64-1.
6613+
6614+2004-12-25 Keith Owens <kaos@sgi.com>
6615+
6616+ * Add cpuinfo command.
6617+ * kdb-v4.4-2.6.10-ia64-1.
6618+
6619+2004-12-07 Keith Owens <kaos@sgi.com>
6620+
6621+ * Clean up error path in kdba_mca_init.
6622+ * kdb-v4.4-2.6.10-rc3-ia64-1.
6623+
6624+2004-11-15 Keith Owens <kaos@sgi.com>
6625+
6626+ * kdb-v4.4-2.6.10-rc2-ia64-1.
6627+
6628+2004-10-29 Keith Owens <kaos@sgi.com>
6629+
6630+ * kdb-v4.4-2.6.10-rc1-ia64-1.
6631+
6632+2004-10-19 Keith Owens <kaos@sgi.com>
6633+
6634+ * kdb-v4.4-2.6.9-ia64-1.
6635+
6636+2004-10-12 Keith Owens <kaos@sgi.com>
6637+
6638+ * kdb-v4.4-2.6.9-rc4-ia64-1.
6639+
6640+2004-10-01 Keith Owens <kaos@sgi.com>
6641+
6642+ * kdb-v4.4-2.6.9-rc3-ia64-1.
6643+
6644+2004-09-30 Keith Owens <kaos@sgi.com>
6645+
6646+ * Add stackdepth command.
6647+ * kdb-v4.4-2.6.9-rc2-ia64-3.
6648+
6649+2004-09-16 Keith Owens <kaos@sgi.com>
6650+
6651+ * Fixes for current in region 5 instead of 7 (idle task on cpu 0).
6652+ * kdb-v4.4-2.6.9-rc2-ia64-2.
6653+
6654+2004-09-14 Keith Owens <kaos@sgi.com>
6655+
6656+ * kdb-v4.4-2.6.9-rc2-ia64-1.
6657+
6658+2004-08-27 Keith Owens <kaos@sgi.com>
6659+
6660+ * kdb-v4.4-2.6.9-rc1-ia64-1.
6661+
6662+2004-08-14 Keith Owens <kaos@sgi.com>
6663+
6664+ * kdb-v4.4-2.6.8-ia64-1.
6665+
6666+2004-08-12 Keith Owens <kaos@sgi.com>
6667+
6668+ * kdb-v4.4-2.6.8-rc4-ia64-1.
6669+
6670+2004-08-04 Keith Owens <kaos@sgi.com>
6671+
6672+ * kdb-v4.4-2.6.8-rc3-ia64-1.
6673+
6674+2004-07-18 Keith Owens <kaos@sgi.com>
6675+
6676+ * New config name for SN serial console.
6677+ * kdb-v4.4-2.6.8-rc2-ia64-1.
6678+
6679+2004-07-12 Keith Owens <kaos@sgi.com>
6680+
6681+ * kdb-v4.4-2.6.8-rc1-ia64-1.
6682+
6683+2004-06-30 Keith Owens <kaos@sgi.com>
6684+
6685+ * kdb-v4.4-2.6.7-ia64-040629-1.
6686+
6687+2004-06-16 Keith Owens <kaos@sgi.com>
6688+
6689+ * Coexist with 2.6.7-ia64-040619.
6690+ * kdb-v4.4-2.6.7-ia64-040619-1.
6691+
6692+2004-06-16 Keith Owens <kaos@sgi.com>
6693+
6694+ * kdb v4.4-2.6.7-ia64-1.
6695+
6696+2004-06-10 Keith Owens <kaos@sgi.com>
6697+
6698+ * kdb v4.4-2.6.7-rc3-ia64-1.
6699+
6700+2004-06-09 Keith Owens <kaos@sgi.com>
6701+
6702+ * Namespace clean up. Mark code/variables as static when it is only
6703+ used in one file, delete dead code/variables.
6704+ * Saved interrupt state requires long, not int.
6705+ * kdb v4.4-2.6.7-rc2-ia64-3.
6706+
6707+2004-06-08 Keith Owens <kaos@sgi.com>
6708+
6709+ * Whitespace clean up, no code changes.
6710+ * kdb v4.4-2.6.7-rc2-2.
6711+
6712+2004-06-07 Keith Owens <kaos@sgi.com>
6713+
6714+ * Force KALLSYMS and KALLSYMS_ALL for CONFIG_KDB.
6715+ * kdb v4.4-2.6.7-rc2-1.
6716+
6717+2004-06-06 Keith Owens <kaos@sgi.com>
6718+
6719+ * Add standard archkdb commands.
6720+ * Move kdb_{get,put}userarea_size definitions to linux/kdb.h.
6721+ * kdb v4.4-2.6.6-ia64-040521-2.
6722+
6723+2004-05-25 Keith Owens <kaos@sgi.com>
6724+
6725+ * Update Kconfig text.
6726+ * kdb v4.4-2.6.6-ia64-040521-1.
6727+
6728+2004-05-23 Keith Owens <kaos@sgi.com>
6729+
6730+ * Move bfd.h and ansidecl.h from arch/$(ARCH)/kdb to include/asm-$(ARCH).
6731+ * ia64-opc.c needs kdbprivate.h after common reorganisation.
6732+ * Update copyright notices.
6733+ * kdb v4.4-2.6.6-ia64-1.
6734+
6735+2004-05-60 Keith Owens <kaos@sgi.com>
6736+
6737+ * kdb v4.3-2.6.6-rc3-ia64-1.
6738+
6739+2004-05-60 Keith Owens <kaos@sgi.com>
6740+
6741+ * Tweak WAR for backtrace through contended spinlocks.
6742+ * kdb v4.3-2.6.6-rc2-ia64-1.
6743+
6744+2004-04-30 Keith Owens <kaos@sgi.com>
6745+
6746+ * kdb v4.3-2.6.6-rc1-ia64-1.
6747+
6748+2004-04-15 Keith Owens <kaos@sgi.com>
6749+
6750+ * kdb v4.3-2.6.5-ia64-040413-1.
6751+
6752+2004-03-06 Keith Owens <kaos@sgi.com>
6753+
6754+ * Use kdb_print for unwind debugging.
6755+ * kdb v4.3-2.6.4-rc2-ia64-1.
6756+
6757+2004-02-29 Keith Owens <kaos@sgi.com>
6758+
6759+ * kdb v4.3-2.6.4-rc1-ia64-1.
6760+
6761+2004-02-18 Keith Owens <kaos@sgi.com>
6762+
6763+ * kdb v4.3-2.6.3-ia64-1.
6764+
6765+2004-02-17 Keith Owens <kaos@sgi.com>
6766+
6767+ * Reconcile 2.6-test versions from Xavier Bru (Bull), Greg Banks (SGI),
6768+ Jim Houston (Concurrent Computer Corp).
6769+ * Reconcile with kdb v4.3-2.4.23-ia64-0312??-1.
6770+ * Reconcile with salinfo changes.
6771+ * Port WAR for backtrace from spinlock contention from 2.4 to 2.6.
6772+ * Merge PGS FIFO tweak with SERIAL_IO_MEM and concurrent support for
6773+ multiple consoles (no USB consoles yet).
6774+ * Update pt_regs output to match the order of struct pt_regs.
6775+ * KDB wrappers for interrupts handlers now return the handler's return code.
6776+ * tpa and tpav commands from Anonymous.
6777+ * Reconcile with mca changes.
6778+ * Upgrade to 2.6.3-rc3.
6779+ * kdb v4.3-2.6.3-rc3-ia64-1.
6780+
6781+2003-10-22 Xavier Bru <xavier.bru@bull.net>
6782+ * Merge to 2.6.0-test7
6783+2003-10-20 Philippe Garrigues <Philippe.Garrigues@bull.net>
6784+ * Enable FIFO in UART
6785+2003-09-08 Xavier Bru <xavier.bru@bull.net>
6786+ * Merge to 2.6.0-test4
6787+2003-03-21 Xavier Bru <xavier.bru@bull.net>
6788+ * Merge kdb v4.0 on 2.5.64 ia64
6789+ * new kernel parameters support
6790+ * new kallsyms support
6791+
6792+2003-10-24 Keith Owens <kaos@sgi.com>
6793+
6794+ * kdb v4.3-2.4.23-pre8-cset-1.1069.1.143-to-1.1108-ia64-1.
6795+
6796+2003-10-03 Keith Owens <kaos@sgi.com>
6797+
6798+ * After MCA, copy the saved RSE registers from ia64_mca_bspstore to the
6799+ stack of the failing process.
6800+ * Abort backtrace when we hit IVT, no unwind data which confuses
6801+ unw_unwind().
6802+ * Workaround for backtrace through spinlock contention called from leaf
6803+ functions.
6804+ * kdb v4.3-2.4.22-ia64-030909-1.
6805+
6806+2003-07-20 Keith Owens <kaos@sgi.com>
6807+
6808+ * MCA rendezvous timeout affects kdb_wait_for_cpus_secs.
6809+ * Support SGI L1 console.
6810+ * kdb v4.3-2.4.21-ia64-030702-2.
6811+
6812+2003-07-08 Keith Owens <kaos@sgi.com>
6813+
6814+ * print_symbol() in mca.c does something useful when kdb is installed.
6815+ * Unwind and SAL changes removed from kdb, they are in the base kernel.
6816+ * kdb v4.3-2.4.21-ia64-030702-1.
6817+
6818+2003-06-20 Keith Owens <kaos@sgi.com>
6819+
6820+ * Add CONFIG_KDB_CONTINUE_CATASTROPHIC.
6821+ * Do not send IPI if the machine state does not require them.
6822+ * Correct definition of KDB_ENTER().
6823+ * Workaround for broken init monarch handler.
6824+ * Monarch cpu must get to kdb, even if it was interrupted in user space.
6825+ * Unwind fixes.
6826+ * Generalize ia64_spinlock_contention name.
6827+ * Add kdba_fru for SN machines.
6828+ * Correct test for cpu number.
6829+ * kdb v4.3-2.4.20-ia64-020821-1.
6830+
6831+2003-05-02 Keith Owens <kaos@sgi.com>
6832+
6833+ * Add kdba_fp_value().
6834+ * Limit backtrace size to catch loops.
6835+ * Print spinlock name in ia64_spinlock_contention.
6836+ * Tweak INIT slave stack lock and handler.
6837+ * Add read/write access to user pages. Vamsi Krishna S., IBM
6838+ * Rename cpu_is_online to cpu_online, as in 2.5.
6839+ * Clean up USB keyboard support.
6840+ * Clean up serial console support.
6841+ * kdb v4.2-2.4.20-ia64-020821-1.
6842+
6843+2003-04-04 Keith Owens <kaos@sgi.com>
6844+
6845+ * Add support for INIT slave interrupts.
6846+ * Tell SAL to always rendezvous on MCA.
6847+ * No lock on SAL rendezvous call.
6848+ * Include unwind.c from 2.4.21-pre5.
6849+ * Rename cpu_online to cpu_is_online.
6850+ * Workarounds for scheduler bugs.
6851+ * kdb v4.1-2.4.20-ia64-020821-1.
6852+
6853+2003-03-16 Keith Owens <kaos@sgi.com>
6854+
6855+ * Each cpu saves its state as it enters kdb or before it enters code
6856+ which cannot call kdb, converting kdb from a pull to a push model.
6857+ * Clean up kdb interaction with CONFIG_SERIAL_CONSOLE.
6858+ * Removal of special cases for i386 backtrace from common code
6859+ simplifies the architecture code.
6860+ * Add support for MCA events (both main and rendezvous) plus INIT
6861+ monarch event.
6862+ * Correct decode of brl.
6863+ * Move kdba_print_nameval to common code.
6864+ * Generalize kdba unwind handlers.
6865+ * Fix decode of sal records (fix included in later ia64 kernels).
6866+ * Handle multiple pt_regs in stack (fix included in later ia64 kernels).
6867+ * Clean up debug code in unwind (fix included in later ia64 kernels).
6868+ * Move kdb break numbers to their own file so it can be used in asm.
6869+ * kdb v4.0-2.4.20-ia64-021210-1.
6870+
6871+2003-02-03 Keith Owens <kaos@sgi.com>
6872+
6873+ * Register kdb commands early.
6874+ * Handle KDB_ENTER() when kdb=off.
6875+ * Optimize __kdba_getarea_size when width is a constant.
6876+ * Decode oops via kallsyms if it is available.
6877+ * Update copyright notices to 2003.
6878+ * Add commands to dump struct pt_regs and switch_stack.
6879+ * Handle padding from unw_init_running for switch_stack.
6880+ * Add dummy kdba_local_arch_setup/kdba_local_arch_cleanup.
6881+ * Warning for pod mode.
6882+ * Add command history and editing. Sonic Zhang.
6883+ * kdb_toggleled is conditional on KDB_BLINK_LED. Bernhard Fischer.
6884+ * Allow tab on serial line for symbol completion.
6885+ * Ignore KDB_ENTER() when kdb is already running.
6886+ * kdb v3.0-2.4.20-ia64-021210-1.
6887+
6888+2003-01-23 Keith Owens <kaos@sgi.com>
6889+
6890+ * Upgrade to 2.4.20-ia64-021210.
6891+ * kdb v2.5-2.4.20-ia64-021210-1.
6892+
6893+2002-11-14 Keith Owens <kaos@sgi.com>
6894+
6895+ * General clean up of handling for breakpoints and single stepping over
6896+ software breakpoints.
6897+ * kdb v2.5-2.4.19-ia64-020821-1.
6898+
6899+2002-10-31 Keith Owens <kaos@sgi.com>
6900+
6901+ * Remove kdb_eframe_t.
6902+ * Sanity check if we have pt_regs.
6903+ * Remove kdba_getcurrentframe().
6904+ * Comments for coexistence with O(1) scheduler.
6905+ * kdb v2.4-2.4.19-ia64-020821-1.
6906+
6907+2002-10-15 Keith Owens <kaos@sgi.com>
6908+
6909+ * Minimize differences between patches for 2.4 and 2.5 kernels.
6910+ * kdb v2.3-2.4.19-ia64-020821-2.
6911+
6912+2002-08-10 Keith Owens <kaos@sgi.com>
6913+
6914+ * Verify rw address for instruction breakpoint.
6915+ * Replace kdb_port with kdb_serial to support memory mapped I/O.
6916+ David Mosberger.
6917+ Note: This needs kdb v2.3-2.4.18-common-2 or later.
6918+ * kdb v2.3-2.4.18-ia64-020722-2.
6919+
6920+2002-08-07 Keith Owens <kaos@sgi.com>
6921+
6922+ * Upgrade to 2.4.18-ia64-020722.
6923+ * Remove individual SGI copyrights, the general SGI copyright applies.
6924+ * Clean up disassembly layout. Hugh Dickins, Keith Owens.
6925+ * Remove fixed KDB_MAX_COMMANDS size.
6926+ * Add set_fs() around __copy_to_user on kernel addresses.
6927+ Randolph Chung.
6928+ * Position ia64 for CONFIG_NUMA_REPLICATE.
6929+ * Stacked registers modification support. Sebastien Lelarge.
6930+ * USB keyboard support. Sebastien Lelarge.
6931+ * kdb v2.3-2.4.18-ia64-020722-1.
6932+
6933+2002-03-20 Keith Owens <kaos@sgi.com>
6934+
6935+ * Sync with 2.4.17-sn2.
6936+ * Add pod command.
6937+
6938+2002-02-20 Keith Owens <kaos@sgi.com>
6939+
6940+ * Call kdb from mca handler. Jenna S. Hall, Intel.
6941+ * kdb v2.1-2.4.17-ia64-011226-2.
6942+
6943+2002-01-18 Keith Owens <kaos@sgi.com>
6944+
6945+ * Replace kdb_get/putword with kdb_get/putarea functions.
6946+ * Wrap kdb references in #ifdef CONFIG_KDB.
6947+ * Delete sample i386 code.
6948+ * Refuse to update kernel text on NUMA systems.
6949+ * Reject hardware breakpoints, not supported yet.
6950+ * kdb v2.1-2.4.17-ia64-011226-1.
6951+
6952+2002-01-07 Keith Owens <kaos@sgi.com>
6953+
6954+ * Split kdb for ia64 as kdb v2.0-2.4.17-ia64-011226-1.
6955--- /dev/null
6956+++ b/arch/ia64/kdb/Makefile
6957@@ -0,0 +1,21 @@
6958+#
6959+# This file is subject to the terms and conditions of the GNU General Public
6960+# License. See the file "COPYING" in the main directory of this archive
6961+# for more details.
6962+#
6963+# Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
6964+#
6965+
6966+obj-y := kdba_bt.o kdba_bp.o kdba_io.o kdba_support.o \
6967+ cpu-ia64-opc.o ia64-dis.o ia64-opc.o kdba_id.o kdba_jmp.o
6968+
6969+# fru does not compile on 2.6.
6970+# obj-$(CONFIG_IA64_SGI_SN2) += kdba_fru.o
6971+obj-$(CONFIG_IA64_SGI_SN2) += kdba_pod.o
6972+obj-$(CONFIG_IA64_GENERIC) += kdba_pod.o
6973+
6974+override CFLAGS := $(CFLAGS:%-pg=% )
6975+
6976+AFLAGS_kdba_jmp.o += $(AFLAGS_KERNEL)
6977+
6978+USE_STANDARD_AS_RULE := true
6979--- /dev/null
6980+++ b/arch/ia64/kdb/cpu-ia64-opc.c
6981@@ -0,0 +1,598 @@
6982+/* Copyright 1998, 1999, 2000, 2001, 2002, 2003
6983+ Free Software Foundation, Inc.
6984+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
6985+
6986+This file is part of BFD, the Binary File Descriptor library.
6987+
6988+This program is free software; you can redistribute it and/or modify
6989+it under the terms of the GNU General Public License as published by
6990+the Free Software Foundation; either version 2 of the License, or
6991+(at your option) any later version.
6992+
6993+This program is distributed in the hope that it will be useful,
6994+but WITHOUT ANY WARRANTY; without even the implied warranty of
6995+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6996+GNU General Public License for more details.
6997+
6998+You should have received a copy of the GNU General Public License
6999+along with this program; if not, write to the Free Software
7000+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
7001+
7002+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
7003+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
7004+ * required.
7005+ * Keith Owens <kaos@sgi.com> 15 May 2006
7006+ */
7007+
7008+/* Logically, this code should be part of libopcode but since some of
7009+ the operand insertion/extraction functions help bfd to implement
7010+ relocations, this code is included as part of cpu-ia64.c. This
7011+ avoids circular dependencies between libopcode and libbfd and also
7012+ obviates the need for applications to link in libopcode when all
7013+ they really want is libbfd.
7014+
7015+ --davidm Mon Apr 13 22:14:02 1998 */
7016+
7017+#ifdef __KERNEL__
7018+#include "ia64-opc.h"
7019+#else /* __KERNEL__ */
7020+#include "../opcodes/ia64-opc.h"
7021+#endif /* __KERNEL__ */
7022+
7023+#define NELEMS(a) ((int) (sizeof (a) / sizeof ((a)[0])))
7024+
7025+static const char*
7026+ins_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7027+ ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
7028+{
7029+ return "internal error---this shouldn't happen";
7030+}
7031+
7032+static const char*
7033+ext_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7034+ ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
7035+{
7036+ return "internal error---this shouldn't happen";
7037+}
7038+
7039+static const char*
7040+ins_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7041+ ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
7042+{
7043+ return 0;
7044+}
7045+
7046+static const char*
7047+ext_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7048+ ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
7049+{
7050+ return 0;
7051+}
7052+
7053+static const char*
7054+ins_reg (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7055+{
7056+ if (value >= 1u << self->field[0].bits)
7057+ return "register number out of range";
7058+
7059+ *code |= value << self->field[0].shift;
7060+ return 0;
7061+}
7062+
7063+static const char*
7064+ext_reg (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7065+{
7066+ *valuep = ((code >> self->field[0].shift)
7067+ & ((1u << self->field[0].bits) - 1));
7068+ return 0;
7069+}
7070+
7071+static const char*
7072+ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7073+{
7074+ ia64_insn new = 0;
7075+ int i;
7076+
7077+ for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7078+ {
7079+ new |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
7080+ << self->field[i].shift);
7081+ value >>= self->field[i].bits;
7082+ }
7083+ if (value)
7084+ return "integer operand out of range";
7085+
7086+ *code |= new;
7087+ return 0;
7088+}
7089+
7090+static const char*
7091+ext_immu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7092+{
7093+ BFD_HOST_U_64_BIT value = 0;
7094+ int i, bits = 0, total = 0;
7095+
7096+ for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7097+ {
7098+ bits = self->field[i].bits;
7099+ value |= ((code >> self->field[i].shift)
7100+ & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
7101+ total += bits;
7102+ }
7103+ *valuep = value;
7104+ return 0;
7105+}
7106+
7107+static const char*
7108+ins_immus8 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7109+{
7110+ if (value & 0x7)
7111+ return "value not an integer multiple of 8";
7112+ return ins_immu (self, value >> 3, code);
7113+}
7114+
7115+static const char*
7116+ext_immus8 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7117+{
7118+ const char *result;
7119+
7120+ result = ext_immu (self, code, valuep);
7121+ if (result)
7122+ return result;
7123+
7124+ *valuep = *valuep << 3;
7125+ return 0;
7126+}
7127+
7128+static const char*
7129+ins_imms_scaled (const struct ia64_operand *self, ia64_insn value,
7130+ ia64_insn *code, int scale)
7131+{
7132+ BFD_HOST_64_BIT svalue = value, sign_bit = 0;
7133+ ia64_insn new = 0;
7134+ int i;
7135+
7136+ svalue >>= scale;
7137+
7138+ for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7139+ {
7140+ new |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
7141+ << self->field[i].shift);
7142+ sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
7143+ svalue >>= self->field[i].bits;
7144+ }
7145+ if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
7146+ return "integer operand out of range";
7147+
7148+ *code |= new;
7149+ return 0;
7150+}
7151+
7152+static const char*
7153+ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
7154+ ia64_insn *valuep, int scale)
7155+{
7156+ int i, bits = 0, total = 0;
7157+ BFD_HOST_64_BIT val = 0, sign;
7158+
7159+ for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7160+ {
7161+ bits = self->field[i].bits;
7162+ val |= ((code >> self->field[i].shift)
7163+ & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
7164+ total += bits;
7165+ }
7166+ /* sign extend: */
7167+ sign = (BFD_HOST_64_BIT) 1 << (total - 1);
7168+ val = (val ^ sign) - sign;
7169+
7170+ *valuep = (val << scale);
7171+ return 0;
7172+}
7173+
7174+static const char*
7175+ins_imms (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7176+{
7177+ return ins_imms_scaled (self, value, code, 0);
7178+}
7179+
7180+static const char*
7181+ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7182+{
7183+ value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
7184+
7185+ return ins_imms_scaled (self, value, code, 0);
7186+}
7187+
7188+static const char*
7189+ext_imms (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7190+{
7191+ return ext_imms_scaled (self, code, valuep, 0);
7192+}
7193+
7194+static const char*
7195+ins_immsm1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7196+{
7197+ --value;
7198+ return ins_imms_scaled (self, value, code, 0);
7199+}
7200+
7201+static const char*
7202+ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value,
7203+ ia64_insn *code)
7204+{
7205+ value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
7206+
7207+ --value;
7208+ return ins_imms_scaled (self, value, code, 0);
7209+}
7210+
7211+static const char*
7212+ext_immsm1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7213+{
7214+ const char *res = ext_imms_scaled (self, code, valuep, 0);
7215+
7216+ ++*valuep;
7217+ return res;
7218+}
7219+
7220+static const char*
7221+ins_imms1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7222+{
7223+ return ins_imms_scaled (self, value, code, 1);
7224+}
7225+
7226+static const char*
7227+ext_imms1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7228+{
7229+ return ext_imms_scaled (self, code, valuep, 1);
7230+}
7231+
7232+static const char*
7233+ins_imms4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7234+{
7235+ return ins_imms_scaled (self, value, code, 4);
7236+}
7237+
7238+static const char*
7239+ext_imms4 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7240+{
7241+ return ext_imms_scaled (self, code, valuep, 4);
7242+}
7243+
7244+static const char*
7245+ins_imms16 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7246+{
7247+ return ins_imms_scaled (self, value, code, 16);
7248+}
7249+
7250+static const char*
7251+ext_imms16 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7252+{
7253+ return ext_imms_scaled (self, code, valuep, 16);
7254+}
7255+
7256+static const char*
7257+ins_cimmu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7258+{
7259+ ia64_insn mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7260+ return ins_immu (self, value ^ mask, code);
7261+}
7262+
7263+static const char*
7264+ext_cimmu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7265+{
7266+ const char *result;
7267+ ia64_insn mask;
7268+
7269+ mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7270+ result = ext_immu (self, code, valuep);
7271+ if (!result)
7272+ {
7273+ mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7274+ *valuep ^= mask;
7275+ }
7276+ return result;
7277+}
7278+
7279+static const char*
7280+ins_cnt (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7281+{
7282+ --value;
7283+ if (value >= ((BFD_HOST_U_64_BIT) 1) << self->field[0].bits)
7284+ return "count out of range";
7285+
7286+ *code |= value << self->field[0].shift;
7287+ return 0;
7288+}
7289+
7290+static const char*
7291+ext_cnt (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7292+{
7293+ *valuep = ((code >> self->field[0].shift)
7294+ & ((((BFD_HOST_U_64_BIT) 1) << self->field[0].bits) - 1)) + 1;
7295+ return 0;
7296+}
7297+
7298+static const char*
7299+ins_cnt2b (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7300+{
7301+ --value;
7302+
7303+ if (value > 2)
7304+ return "count must be in range 1..3";
7305+
7306+ *code |= value << self->field[0].shift;
7307+ return 0;
7308+}
7309+
7310+static const char*
7311+ext_cnt2b (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7312+{
7313+ *valuep = ((code >> self->field[0].shift) & 0x3) + 1;
7314+ return 0;
7315+}
7316+
7317+static const char*
7318+ins_cnt2c (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7319+{
7320+ switch (value)
7321+ {
7322+ case 0: value = 0; break;
7323+ case 7: value = 1; break;
7324+ case 15: value = 2; break;
7325+ case 16: value = 3; break;
7326+ default: return "count must be 0, 7, 15, or 16";
7327+ }
7328+ *code |= value << self->field[0].shift;
7329+ return 0;
7330+}
7331+
7332+static const char*
7333+ext_cnt2c (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7334+{
7335+ ia64_insn value;
7336+
7337+ value = (code >> self->field[0].shift) & 0x3;
7338+ switch (value)
7339+ {
7340+ case 0: value = 0; break;
7341+ case 1: value = 7; break;
7342+ case 2: value = 15; break;
7343+ case 3: value = 16; break;
7344+ }
7345+ *valuep = value;
7346+ return 0;
7347+}
7348+
7349+static const char*
7350+ins_inc3 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7351+{
7352+ BFD_HOST_64_BIT val = value;
7353+ BFD_HOST_U_64_BIT sign = 0;
7354+
7355+ if (val < 0)
7356+ {
7357+ sign = 0x4;
7358+ value = -value;
7359+ }
7360+ switch (value)
7361+ {
7362+ case 1: value = 3; break;
7363+ case 4: value = 2; break;
7364+ case 8: value = 1; break;
7365+ case 16: value = 0; break;
7366+ default: return "count must be +/- 1, 4, 8, or 16";
7367+ }
7368+ *code |= (sign | value) << self->field[0].shift;
7369+ return 0;
7370+}
7371+
7372+static const char*
7373+ext_inc3 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7374+{
7375+ BFD_HOST_64_BIT val;
7376+ int negate;
7377+
7378+ val = (code >> self->field[0].shift) & 0x7;
7379+ negate = val & 0x4;
7380+ switch (val & 0x3)
7381+ {
7382+ case 0: val = 16; break;
7383+ case 1: val = 8; break;
7384+ case 2: val = 4; break;
7385+ case 3: val = 1; break;
7386+ }
7387+ if (negate)
7388+ val = -val;
7389+
7390+ *valuep = val;
7391+ return 0;
7392+}
7393+
7394+#define CST IA64_OPND_CLASS_CST
7395+#define REG IA64_OPND_CLASS_REG
7396+#define IND IA64_OPND_CLASS_IND
7397+#define ABS IA64_OPND_CLASS_ABS
7398+#define REL IA64_OPND_CLASS_REL
7399+
7400+#define SDEC IA64_OPND_FLAG_DECIMAL_SIGNED
7401+#define UDEC IA64_OPND_FLAG_DECIMAL_UNSIGNED
7402+
7403+const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
7404+ {
7405+ /* constants: */
7406+ { CST, ins_const, ext_const, "NIL", {{ 0, 0}}, 0, "<none>" },
7407+ { CST, ins_const, ext_const, "ar.csd", {{ 0, 0}}, 0, "ar.csd" },
7408+ { CST, ins_const, ext_const, "ar.ccv", {{ 0, 0}}, 0, "ar.ccv" },
7409+ { CST, ins_const, ext_const, "ar.pfs", {{ 0, 0}}, 0, "ar.pfs" },
7410+ { CST, ins_const, ext_const, "1", {{ 0, 0}}, 0, "1" },
7411+ { CST, ins_const, ext_const, "8", {{ 0, 0}}, 0, "8" },
7412+ { CST, ins_const, ext_const, "16", {{ 0, 0}}, 0, "16" },
7413+ { CST, ins_const, ext_const, "r0", {{ 0, 0}}, 0, "r0" },
7414+ { CST, ins_const, ext_const, "ip", {{ 0, 0}}, 0, "ip" },
7415+ { CST, ins_const, ext_const, "pr", {{ 0, 0}}, 0, "pr" },
7416+ { CST, ins_const, ext_const, "pr.rot", {{ 0, 0}}, 0, "pr.rot" },
7417+ { CST, ins_const, ext_const, "psr", {{ 0, 0}}, 0, "psr" },
7418+ { CST, ins_const, ext_const, "psr.l", {{ 0, 0}}, 0, "psr.l" },
7419+ { CST, ins_const, ext_const, "psr.um", {{ 0, 0}}, 0, "psr.um" },
7420+
7421+ /* register operands: */
7422+ { REG, ins_reg, ext_reg, "ar", {{ 7, 20}}, 0, /* AR3 */
7423+ "an application register" },
7424+ { REG, ins_reg, ext_reg, "b", {{ 3, 6}}, 0, /* B1 */
7425+ "a branch register" },
7426+ { REG, ins_reg, ext_reg, "b", {{ 3, 13}}, 0, /* B2 */
7427+ "a branch register"},
7428+ { REG, ins_reg, ext_reg, "cr", {{ 7, 20}}, 0, /* CR */
7429+ "a control register"},
7430+ { REG, ins_reg, ext_reg, "f", {{ 7, 6}}, 0, /* F1 */
7431+ "a floating-point register" },
7432+ { REG, ins_reg, ext_reg, "f", {{ 7, 13}}, 0, /* F2 */
7433+ "a floating-point register" },
7434+ { REG, ins_reg, ext_reg, "f", {{ 7, 20}}, 0, /* F3 */
7435+ "a floating-point register" },
7436+ { REG, ins_reg, ext_reg, "f", {{ 7, 27}}, 0, /* F4 */
7437+ "a floating-point register" },
7438+ { REG, ins_reg, ext_reg, "p", {{ 6, 6}}, 0, /* P1 */
7439+ "a predicate register" },
7440+ { REG, ins_reg, ext_reg, "p", {{ 6, 27}}, 0, /* P2 */
7441+ "a predicate register" },
7442+ { REG, ins_reg, ext_reg, "r", {{ 7, 6}}, 0, /* R1 */
7443+ "a general register" },
7444+ { REG, ins_reg, ext_reg, "r", {{ 7, 13}}, 0, /* R2 */
7445+ "a general register" },
7446+ { REG, ins_reg, ext_reg, "r", {{ 7, 20}}, 0, /* R3 */
7447+ "a general register" },
7448+ { REG, ins_reg, ext_reg, "r", {{ 2, 20}}, 0, /* R3_2 */
7449+ "a general register r0-r3" },
7450+
7451+ /* indirect operands: */
7452+ { IND, ins_reg, ext_reg, "cpuid", {{7, 20}}, 0, /* CPUID_R3 */
7453+ "a cpuid register" },
7454+ { IND, ins_reg, ext_reg, "dbr", {{7, 20}}, 0, /* DBR_R3 */
7455+ "a dbr register" },
7456+ { IND, ins_reg, ext_reg, "dtr", {{7, 20}}, 0, /* DTR_R3 */
7457+ "a dtr register" },
7458+ { IND, ins_reg, ext_reg, "itr", {{7, 20}}, 0, /* ITR_R3 */
7459+ "an itr register" },
7460+ { IND, ins_reg, ext_reg, "ibr", {{7, 20}}, 0, /* IBR_R3 */
7461+ "an ibr register" },
7462+ { IND, ins_reg, ext_reg, "", {{7, 20}}, 0, /* MR3 */
7463+ "an indirect memory address" },
7464+ { IND, ins_reg, ext_reg, "msr", {{7, 20}}, 0, /* MSR_R3 */
7465+ "an msr register" },
7466+ { IND, ins_reg, ext_reg, "pkr", {{7, 20}}, 0, /* PKR_R3 */
7467+ "a pkr register" },
7468+ { IND, ins_reg, ext_reg, "pmc", {{7, 20}}, 0, /* PMC_R3 */
7469+ "a pmc register" },
7470+ { IND, ins_reg, ext_reg, "pmd", {{7, 20}}, 0, /* PMD_R3 */
7471+ "a pmd register" },
7472+ { IND, ins_reg, ext_reg, "rr", {{7, 20}}, 0, /* RR_R3 */
7473+ "an rr register" },
7474+
7475+ /* immediate operands: */
7476+ { ABS, ins_cimmu, ext_cimmu, 0, {{ 5, 20 }}, UDEC, /* CCNT5 */
7477+ "a 5-bit count (0-31)" },
7478+ { ABS, ins_cnt, ext_cnt, 0, {{ 2, 27 }}, UDEC, /* CNT2a */
7479+ "a 2-bit count (1-4)" },
7480+ { ABS, ins_cnt2b, ext_cnt2b, 0, {{ 2, 27 }}, UDEC, /* CNT2b */
7481+ "a 2-bit count (1-3)" },
7482+ { ABS, ins_cnt2c, ext_cnt2c, 0, {{ 2, 30 }}, UDEC, /* CNT2c */
7483+ "a count (0, 7, 15, or 16)" },
7484+ { ABS, ins_immu, ext_immu, 0, {{ 5, 14}}, UDEC, /* CNT5 */
7485+ "a 5-bit count (0-31)" },
7486+ { ABS, ins_immu, ext_immu, 0, {{ 6, 27}}, UDEC, /* CNT6 */
7487+ "a 6-bit count (0-63)" },
7488+ { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 20}}, UDEC, /* CPOS6a */
7489+ "a 6-bit bit pos (0-63)" },
7490+ { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 14}}, UDEC, /* CPOS6b */
7491+ "a 6-bit bit pos (0-63)" },
7492+ { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 31}}, UDEC, /* CPOS6c */
7493+ "a 6-bit bit pos (0-63)" },
7494+ { ABS, ins_imms, ext_imms, 0, {{ 1, 36}}, SDEC, /* IMM1 */
7495+ "a 1-bit integer (-1, 0)" },
7496+ { ABS, ins_immu, ext_immu, 0, {{ 2, 13}}, UDEC, /* IMMU2 */
7497+ "a 2-bit unsigned (0-3)" },
7498+ { ABS, ins_immu, ext_immu, 0, {{ 7, 13}}, 0, /* IMMU7a */
7499+ "a 7-bit unsigned (0-127)" },
7500+ { ABS, ins_immu, ext_immu, 0, {{ 7, 20}}, 0, /* IMMU7b */
7501+ "a 7-bit unsigned (0-127)" },
7502+ { ABS, ins_immu, ext_immu, 0, {{ 7, 13}}, UDEC, /* SOF */
7503+ "a frame size (register count)" },
7504+ { ABS, ins_immu, ext_immu, 0, {{ 7, 20}}, UDEC, /* SOL */
7505+ "a local register count" },
7506+ { ABS, ins_immus8,ext_immus8,0, {{ 4, 27}}, UDEC, /* SOR */
7507+ "a rotating register count (integer multiple of 8)" },
7508+ { ABS, ins_imms, ext_imms, 0, /* IMM8 */
7509+ {{ 7, 13}, { 1, 36}}, SDEC,
7510+ "an 8-bit integer (-128-127)" },
7511+ { ABS, ins_immsu4, ext_imms, 0, /* IMM8U4 */
7512+ {{ 7, 13}, { 1, 36}}, SDEC,
7513+ "an 8-bit signed integer for 32-bit unsigned compare (-128-127)" },
7514+ { ABS, ins_immsm1, ext_immsm1, 0, /* IMM8M1 */
7515+ {{ 7, 13}, { 1, 36}}, SDEC,
7516+ "an 8-bit integer (-127-128)" },
7517+ { ABS, ins_immsm1u4, ext_immsm1, 0, /* IMM8M1U4 */
7518+ {{ 7, 13}, { 1, 36}}, SDEC,
7519+ "an 8-bit integer for 32-bit unsigned compare (-127-(-1),1-128,0x100000000)" },
7520+ { ABS, ins_immsm1, ext_immsm1, 0, /* IMM8M1U8 */
7521+ {{ 7, 13}, { 1, 36}}, SDEC,
7522+ "an 8-bit integer for 64-bit unsigned compare (-127-(-1),1-128,0x10000000000000000)" },
7523+ { ABS, ins_immu, ext_immu, 0, {{ 2, 33}, { 7, 20}}, 0, /* IMMU9 */
7524+ "a 9-bit unsigned (0-511)" },
7525+ { ABS, ins_imms, ext_imms, 0, /* IMM9a */
7526+ {{ 7, 6}, { 1, 27}, { 1, 36}}, SDEC,
7527+ "a 9-bit integer (-256-255)" },
7528+ { ABS, ins_imms, ext_imms, 0, /* IMM9b */
7529+ {{ 7, 13}, { 1, 27}, { 1, 36}}, SDEC,
7530+ "a 9-bit integer (-256-255)" },
7531+ { ABS, ins_imms, ext_imms, 0, /* IMM14 */
7532+ {{ 7, 13}, { 6, 27}, { 1, 36}}, SDEC,
7533+ "a 14-bit integer (-8192-8191)" },
7534+ { ABS, ins_imms1, ext_imms1, 0, /* IMM17 */
7535+ {{ 7, 6}, { 8, 24}, { 1, 36}}, 0,
7536+ "a 17-bit integer (-65536-65535)" },
7537+ { ABS, ins_immu, ext_immu, 0, {{20, 6}, { 1, 36}}, 0, /* IMMU21 */
7538+ "a 21-bit unsigned" },
7539+ { ABS, ins_imms, ext_imms, 0, /* IMM22 */
7540+ {{ 7, 13}, { 9, 27}, { 5, 22}, { 1, 36}}, SDEC,
7541+ "a 22-bit signed integer" },
7542+ { ABS, ins_immu, ext_immu, 0, /* IMMU24 */
7543+ {{21, 6}, { 2, 31}, { 1, 36}}, 0,
7544+ "a 24-bit unsigned" },
7545+ { ABS, ins_imms16,ext_imms16,0, {{27, 6}, { 1, 36}}, 0, /* IMM44 */
7546+ "a 44-bit unsigned (least 16 bits ignored/zeroes)" },
7547+ { ABS, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* IMMU62 */
7548+ "a 62-bit unsigned" },
7549+ { ABS, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* IMMU64 */
7550+ "a 64-bit unsigned" },
7551+ { ABS, ins_inc3, ext_inc3, 0, {{ 3, 13}}, SDEC, /* INC3 */
7552+ "an increment (+/- 1, 4, 8, or 16)" },
7553+ { ABS, ins_cnt, ext_cnt, 0, {{ 4, 27}}, UDEC, /* LEN4 */
7554+ "a 4-bit length (1-16)" },
7555+ { ABS, ins_cnt, ext_cnt, 0, {{ 6, 27}}, UDEC, /* LEN6 */
7556+ "a 6-bit length (1-64)" },
7557+ { ABS, ins_immu, ext_immu, 0, {{ 4, 20}}, 0, /* MBTYPE4 */
7558+ "a mix type (@rev, @mix, @shuf, @alt, or @brcst)" },
7559+ { ABS, ins_immu, ext_immu, 0, {{ 8, 20}}, 0, /* MBTYPE8 */
7560+ "an 8-bit mix type" },
7561+ { ABS, ins_immu, ext_immu, 0, {{ 6, 14}}, UDEC, /* POS6 */
7562+ "a 6-bit bit pos (0-63)" },
7563+ { REL, ins_imms4, ext_imms4, 0, {{ 7, 6}, { 2, 33}}, 0, /* TAG13 */
7564+ "a branch tag" },
7565+ { REL, ins_imms4, ext_imms4, 0, {{ 9, 24}}, 0, /* TAG13b */
7566+ "a branch tag" },
7567+ { REL, ins_imms4, ext_imms4, 0, {{20, 6}, { 1, 36}}, 0, /* TGT25 */
7568+ "a branch target" },
7569+ { REL, ins_imms4, ext_imms4, 0, /* TGT25b */
7570+ {{ 7, 6}, {13, 20}, { 1, 36}}, 0,
7571+ "a branch target" },
7572+ { REL, ins_imms4, ext_imms4, 0, {{20, 13}, { 1, 36}}, 0, /* TGT25c */
7573+ "a branch target" },
7574+ { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* TGT64 */
7575+ "a branch target" },
7576+
7577+ { ABS, ins_const, ext_const, 0, {{0, 0}}, 0, /* LDXMOV */
7578+ "ldxmov target" },
7579+ };
7580--- /dev/null
7581+++ b/arch/ia64/kdb/ia64-asmtab.c
7582@@ -0,0 +1,8585 @@
7583+/* This file is automatically generated by ia64-gen. Do not edit! */
7584+
7585+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
7586+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
7587+ * required.
7588+ * Keith Owens <kaos@sgi.com> 15 May 2006
7589+ */
7590+
7591+static const char * const ia64_strings[] = {
7592+ "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and",
7593+ "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call",
7594+ "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16",
7595+ "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop",
7596+ "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl",
7597+ "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand",
7598+ "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt",
7599+ "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax",
7600+ "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma",
7601+ "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp",
7602+ "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg",
7603+ "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta",
7604+ "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu",
7605+ "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia",
7606+ "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8",
7607+ "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le",
7608+ "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many",
7609+ "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne",
7610+ "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1",
7611+ "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1",
7612+ "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1",
7613+ "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2",
7614+ "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2",
7615+ "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz",
7616+ "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3",
7617+ "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig",
7618+ "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2",
7619+ "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1",
7620+ "sxt2", "sxt4", "sync", "tak", "tbit", "thash", "tnat", "tpa", "trunc",
7621+ "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4", "uss",
7622+ "uus", "uuu", "w", "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4",
7623+ "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4",
7624+};
7625+
7626+static const struct ia64_dependency
7627+dependencies[] = {
7628+ { "ALAT", 0, 0, 0, -1, NULL, },
7629+ { "AR[BSP]", 26, 0, 2, 17, NULL, },
7630+ { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, },
7631+ { "AR[CFLG]", 26, 0, 2, 27, NULL, },
7632+ { "AR[CCV]", 26, 0, 2, 32, NULL, },
7633+ { "AR[CSD]", 26, 0, 2, 25, NULL, },
7634+ { "AR[EC]", 26, 0, 2, 66, NULL, },
7635+ { "AR[EFLAG]", 26, 0, 2, 24, NULL, },
7636+ { "AR[FCR]", 26, 0, 2, 21, NULL, },
7637+ { "AR[FDR]", 26, 0, 2, 30, NULL, },
7638+ { "AR[FIR]", 26, 0, 2, 29, NULL, },
7639+ { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, },
7640+ { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, },
7641+ { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, },
7642+ { "AR[FPSR].sf3.controls", 30, 0, 2, -1, NULL, },
7643+ { "AR[FPSR].sf0.flags", 30, 0, 2, -1, NULL, },
7644+ { "AR[FPSR].sf1.flags", 30, 0, 2, -1, NULL, },
7645+ { "AR[FPSR].sf2.flags", 30, 0, 2, -1, NULL, },
7646+ { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, },
7647+ { "AR[FPSR].traps", 30, 0, 2, -1, NULL, },
7648+ { "AR[FPSR].rv", 30, 0, 2, -1, NULL, },
7649+ { "AR[FSR]", 26, 0, 2, 28, NULL, },
7650+ { "AR[ITC]", 26, 0, 2, 44, NULL, },
7651+ { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, },
7652+ { "AR[LC]", 26, 0, 2, 65, NULL, },
7653+ { "AR[PFS]", 26, 0, 2, 64, NULL, },
7654+ { "AR[PFS]", 26, 0, 2, 64, NULL, },
7655+ { "AR[PFS]", 26, 0, 0, 64, NULL, },
7656+ { "AR[RNAT]", 26, 0, 2, 19, NULL, },
7657+ { "AR[RSC]", 26, 0, 2, 16, NULL, },
7658+ { "AR[SSD]", 26, 0, 2, 26, NULL, },
7659+ { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, },
7660+ { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 0, -1, NULL, },
7661+ { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, },
7662+ { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
7663+ { "BR%, % in 0 - 7", 5, 0, 0, -1, NULL, },
7664+ { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
7665+ { "CFM", 6, 0, 2, -1, NULL, },
7666+ { "CFM", 6, 0, 2, -1, NULL, },
7667+ { "CFM", 6, 0, 2, -1, NULL, },
7668+ { "CFM", 6, 0, 2, -1, NULL, },
7669+ { "CFM", 6, 0, 0, -1, NULL, },
7670+ { "CPUID#", 7, 0, 5, -1, NULL, },
7671+ { "CR[CMCV]", 27, 0, 3, 74, NULL, },
7672+ { "CR[DCR]", 27, 0, 3, 0, NULL, },
7673+ { "CR[EOI]", 27, 0, 7, 67, "SC Section 10.8.3.4", },
7674+ { "CR[GPTA]", 27, 0, 3, 9, NULL, },
7675+ { "CR[IFA]", 27, 0, 1, 20, NULL, },
7676+ { "CR[IFA]", 27, 0, 3, 20, NULL, },
7677+ { "CR[IFS]", 27, 0, 3, 23, NULL, },
7678+ { "CR[IFS]", 27, 0, 1, 23, NULL, },
7679+ { "CR[IFS]", 27, 0, 1, 23, NULL, },
7680+ { "CR[IHA]", 27, 0, 3, 25, NULL, },
7681+ { "CR[IIM]", 27, 0, 3, 24, NULL, },
7682+ { "CR[IIP]", 27, 0, 3, 19, NULL, },
7683+ { "CR[IIP]", 27, 0, 1, 19, NULL, },
7684+ { "CR[IIPA]", 27, 0, 3, 22, NULL, },
7685+ { "CR[IPSR]", 27, 0, 3, 16, NULL, },
7686+ { "CR[IPSR]", 27, 0, 1, 16, NULL, },
7687+ { "CR[IRR%], % in 0 - 3", 8, 0, 3, -1, NULL, },
7688+ { "CR[ISR]", 27, 0, 3, 17, NULL, },
7689+ { "CR[ITIR]", 27, 0, 3, 21, NULL, },
7690+ { "CR[ITIR]", 27, 0, 1, 21, NULL, },
7691+ { "CR[ITM]", 27, 0, 3, 1, NULL, },
7692+ { "CR[ITV]", 27, 0, 3, 72, NULL, },
7693+ { "CR[IVA]", 27, 0, 4, 2, NULL, },
7694+ { "CR[IVR]", 27, 0, 7, 65, "SC Section 10.8.3.2", },
7695+ { "CR[LID]", 27, 0, 7, 64, "SC Section 10.8.3.1", },
7696+ { "CR[LRR%], % in 0 - 1", 9, 0, 3, -1, NULL, },
7697+ { "CR[PMV]", 27, 0, 3, 73, NULL, },
7698+ { "CR[PTA]", 27, 0, 3, 8, NULL, },
7699+ { "CR[TPR]", 27, 0, 3, 66, NULL, },
7700+ { "CR[TPR]", 27, 0, 7, 66, "SC Section 10.8.3.3", },
7701+ { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 0, 0, -1, NULL, },
7702+ { "DBR#", 11, 0, 2, -1, NULL, },
7703+ { "DBR#", 11, 0, 3, -1, NULL, },
7704+ { "DTC", 0, 0, 3, -1, NULL, },
7705+ { "DTC", 0, 0, 2, -1, NULL, },
7706+ { "DTC", 0, 0, 0, -1, NULL, },
7707+ { "DTC", 0, 0, 2, -1, NULL, },
7708+ { "DTC_LIMIT*", 0, 0, 2, -1, NULL, },
7709+ { "DTR", 0, 0, 3, -1, NULL, },
7710+ { "DTR", 0, 0, 2, -1, NULL, },
7711+ { "DTR", 0, 0, 3, -1, NULL, },
7712+ { "DTR", 0, 0, 0, -1, NULL, },
7713+ { "DTR", 0, 0, 2, -1, NULL, },
7714+ { "FR%, % in 0 - 1", 12, 0, 0, -1, NULL, },
7715+ { "FR%, % in 2 - 127", 13, 0, 2, -1, NULL, },
7716+ { "FR%, % in 2 - 127", 13, 0, 0, -1, NULL, },
7717+ { "GR0", 14, 0, 0, -1, NULL, },
7718+ { "GR%, % in 1 - 127", 15, 0, 0, -1, NULL, },
7719+ { "GR%, % in 1 - 127", 15, 0, 2, -1, NULL, },
7720+ { "IBR#", 16, 0, 2, -1, NULL, },
7721+ { "InService*", 17, 0, 3, -1, NULL, },
7722+ { "InService*", 17, 0, 2, -1, NULL, },
7723+ { "InService*", 17, 0, 2, -1, NULL, },
7724+ { "IP", 0, 0, 0, -1, NULL, },
7725+ { "ITC", 0, 0, 4, -1, NULL, },
7726+ { "ITC", 0, 0, 2, -1, NULL, },
7727+ { "ITC", 0, 0, 0, -1, NULL, },
7728+ { "ITC", 0, 0, 4, -1, NULL, },
7729+ { "ITC", 0, 0, 2, -1, NULL, },
7730+ { "ITC_LIMIT*", 0, 0, 2, -1, NULL, },
7731+ { "ITR", 0, 0, 2, -1, NULL, },
7732+ { "ITR", 0, 0, 4, -1, NULL, },
7733+ { "ITR", 0, 0, 2, -1, NULL, },
7734+ { "ITR", 0, 0, 0, -1, NULL, },
7735+ { "ITR", 0, 0, 4, -1, NULL, },
7736+ { "memory", 0, 0, 0, -1, NULL, },
7737+ { "MSR#", 18, 0, 5, -1, NULL, },
7738+ { "PKR#", 19, 0, 3, -1, NULL, },
7739+ { "PKR#", 19, 0, 0, -1, NULL, },
7740+ { "PKR#", 19, 0, 2, -1, NULL, },
7741+ { "PKR#", 19, 0, 2, -1, NULL, },
7742+ { "PMC#", 20, 0, 2, -1, NULL, },
7743+ { "PMC#", 20, 0, 7, -1, "SC+3 Section 12.1.1", },
7744+ { "PMD#", 21, 0, 2, -1, NULL, },
7745+ { "PR0", 0, 0, 0, -1, NULL, },
7746+ { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
7747+ { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
7748+ { "PR%, % in 1 - 15", 22, 0, 0, -1, NULL, },
7749+ { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
7750+ { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
7751+ { "PR%, % in 16 - 62", 23, 0, 0, -1, NULL, },
7752+ { "PR63", 24, 0, 2, -1, NULL, },
7753+ { "PR63", 24, 0, 2, -1, NULL, },
7754+ { "PR63", 24, 0, 0, -1, NULL, },
7755+ { "PSR.ac", 28, 0, 1, 3, NULL, },
7756+ { "PSR.ac", 28, 0, 3, 3, NULL, },
7757+ { "PSR.ac", 28, 0, 2, 3, NULL, },
7758+ { "PSR.be", 28, 0, 1, 1, NULL, },
7759+ { "PSR.be", 28, 0, 3, 1, NULL, },
7760+ { "PSR.be", 28, 0, 2, 1, NULL, },
7761+ { "PSR.bn", 28, 0, 2, 44, NULL, },
7762+ { "PSR.cpl", 28, 0, 1, 32, NULL, },
7763+ { "PSR.da", 28, 0, 3, 38, NULL, },
7764+ { "PSR.db", 28, 0, 3, 24, NULL, },
7765+ { "PSR.db", 28, 0, 2, 24, NULL, },
7766+ { "PSR.db", 28, 0, 3, 24, NULL, },
7767+ { "PSR.dd", 28, 0, 3, 39, NULL, },
7768+ { "PSR.dfh", 28, 0, 3, 19, NULL, },
7769+ { "PSR.dfh", 28, 0, 2, 19, NULL, },
7770+ { "PSR.dfl", 28, 0, 3, 18, NULL, },
7771+ { "PSR.dfl", 28, 0, 2, 18, NULL, },
7772+ { "PSR.di", 28, 0, 3, 22, NULL, },
7773+ { "PSR.di", 28, 0, 2, 22, NULL, },
7774+ { "PSR.dt", 28, 0, 3, 17, NULL, },
7775+ { "PSR.dt", 28, 0, 2, 17, NULL, },
7776+ { "PSR.ed", 28, 0, 3, 43, NULL, },
7777+ { "PSR.i", 28, 0, 2, 14, NULL, },
7778+ { "PSR.i", 28, 0, 3, 14, NULL, },
7779+ { "PSR.ia", 28, 0, 0, 14, NULL, },
7780+ { "PSR.ic", 28, 0, 2, 13, NULL, },
7781+ { "PSR.ic", 28, 0, 3, 13, NULL, },
7782+ { "PSR.id", 28, 0, 0, 14, NULL, },
7783+ { "PSR.is", 28, 0, 0, 14, NULL, },
7784+ { "PSR.it", 28, 0, 3, 14, NULL, },
7785+ { "PSR.lp", 28, 0, 2, 25, NULL, },
7786+ { "PSR.lp", 28, 0, 3, 25, NULL, },
7787+ { "PSR.lp", 28, 0, 3, 25, NULL, },
7788+ { "PSR.mc", 28, 0, 0, 35, NULL, },
7789+ { "PSR.mfh", 28, 0, 2, 5, NULL, },
7790+ { "PSR.mfl", 28, 0, 2, 4, NULL, },
7791+ { "PSR.pk", 28, 0, 3, 15, NULL, },
7792+ { "PSR.pk", 28, 0, 2, 15, NULL, },
7793+ { "PSR.pp", 28, 0, 2, 21, NULL, },
7794+ { "PSR.ri", 28, 0, 0, 41, NULL, },
7795+ { "PSR.rt", 28, 0, 2, 27, NULL, },
7796+ { "PSR.rt", 28, 0, 3, 27, NULL, },
7797+ { "PSR.rt", 28, 0, 3, 27, NULL, },
7798+ { "PSR.si", 28, 0, 2, 23, NULL, },
7799+ { "PSR.si", 28, 0, 3, 23, NULL, },
7800+ { "PSR.sp", 28, 0, 2, 20, NULL, },
7801+ { "PSR.sp", 28, 0, 3, 20, NULL, },
7802+ { "PSR.ss", 28, 0, 3, 40, NULL, },
7803+ { "PSR.tb", 28, 0, 3, 26, NULL, },
7804+ { "PSR.tb", 28, 0, 2, 26, NULL, },
7805+ { "PSR.up", 28, 0, 2, 2, NULL, },
7806+ { "RR#", 25, 0, 3, -1, NULL, },
7807+ { "RR#", 25, 0, 2, -1, NULL, },
7808+ { "RSE", 29, 0, 2, -1, NULL, },
7809+ { "ALAT", 0, 1, 0, -1, NULL, },
7810+ { "AR[BSP]", 26, 1, 2, 17, NULL, },
7811+ { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, },
7812+ { "AR[CCV]", 26, 1, 2, 32, NULL, },
7813+ { "AR[CFLG]", 26, 1, 2, 27, NULL, },
7814+ { "AR[CSD]", 26, 1, 2, 25, NULL, },
7815+ { "AR[EC]", 26, 1, 2, 66, NULL, },
7816+ { "AR[EFLAG]", 26, 1, 2, 24, NULL, },
7817+ { "AR[FCR]", 26, 1, 2, 21, NULL, },
7818+ { "AR[FDR]", 26, 1, 2, 30, NULL, },
7819+ { "AR[FIR]", 26, 1, 2, 29, NULL, },
7820+ { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, },
7821+ { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, },
7822+ { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, },
7823+ { "AR[FPSR].sf3.controls", 30, 1, 2, -1, NULL, },
7824+ { "AR[FPSR].sf0.flags", 30, 1, 0, -1, NULL, },
7825+ { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
7826+ { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
7827+ { "AR[FPSR].sf1.flags", 30, 1, 0, -1, NULL, },
7828+ { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
7829+ { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
7830+ { "AR[FPSR].sf2.flags", 30, 1, 0, -1, NULL, },
7831+ { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
7832+ { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
7833+ { "AR[FPSR].sf3.flags", 30, 1, 0, -1, NULL, },
7834+ { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
7835+ { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
7836+ { "AR[FPSR].rv", 30, 1, 2, -1, NULL, },
7837+ { "AR[FPSR].traps", 30, 1, 2, -1, NULL, },
7838+ { "AR[FSR]", 26, 1, 2, 28, NULL, },
7839+ { "AR[ITC]", 26, 1, 2, 44, NULL, },
7840+ { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, },
7841+ { "AR[LC]", 26, 1, 2, 65, NULL, },
7842+ { "AR[PFS]", 26, 1, 0, 64, NULL, },
7843+ { "AR[PFS]", 26, 1, 2, 64, NULL, },
7844+ { "AR[PFS]", 26, 1, 2, 64, NULL, },
7845+ { "AR[RNAT]", 26, 1, 2, 19, NULL, },
7846+ { "AR[RSC]", 26, 1, 2, 16, NULL, },
7847+ { "AR[UNAT]{%}, % in 0 - 63", 2, 1, 2, -1, NULL, },
7848+ { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 1, 0, -1, NULL, },
7849+ { "AR%, % in 48 - 63, 112-127", 4, 1, 2, -1, NULL, },
7850+ { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7851+ { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7852+ { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7853+ { "BR%, % in 0 - 7", 5, 1, 0, -1, NULL, },
7854+ { "CFM", 6, 1, 2, -1, NULL, },
7855+ { "CPUID#", 7, 1, 0, -1, NULL, },
7856+ { "CR[CMCV]", 27, 1, 2, 74, NULL, },
7857+ { "CR[DCR]", 27, 1, 2, 0, NULL, },
7858+ { "CR[EOI]", 27, 1, 7, 67, "SC Section 10.8.3.4", },
7859+ { "CR[GPTA]", 27, 1, 2, 9, NULL, },
7860+ { "CR[IFA]", 27, 1, 2, 20, NULL, },
7861+ { "CR[IFS]", 27, 1, 2, 23, NULL, },
7862+ { "CR[IHA]", 27, 1, 2, 25, NULL, },
7863+ { "CR[IIM]", 27, 1, 2, 24, NULL, },
7864+ { "CR[IIP]", 27, 1, 2, 19, NULL, },
7865+ { "CR[IIPA]", 27, 1, 2, 22, NULL, },
7866+ { "CR[IPSR]", 27, 1, 2, 16, NULL, },
7867+ { "CR[IRR%], % in 0 - 3", 8, 1, 2, -1, NULL, },
7868+ { "CR[ISR]", 27, 1, 2, 17, NULL, },
7869+ { "CR[ITIR]", 27, 1, 2, 21, NULL, },
7870+ { "CR[ITM]", 27, 1, 2, 1, NULL, },
7871+ { "CR[ITV]", 27, 1, 2, 72, NULL, },
7872+ { "CR[IVA]", 27, 1, 2, 2, NULL, },
7873+ { "CR[IVR]", 27, 1, 7, 65, "SC", },
7874+ { "CR[LID]", 27, 1, 7, 64, "SC", },
7875+ { "CR[LRR%], % in 0 - 1", 9, 1, 2, -1, NULL, },
7876+ { "CR[PMV]", 27, 1, 2, 73, NULL, },
7877+ { "CR[PTA]", 27, 1, 2, 8, NULL, },
7878+ { "CR[TPR]", 27, 1, 2, 66, NULL, },
7879+ { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 1, 0, -1, NULL, },
7880+ { "DBR#", 11, 1, 2, -1, NULL, },
7881+ { "DTC", 0, 1, 0, -1, NULL, },
7882+ { "DTC", 0, 1, 2, -1, NULL, },
7883+ { "DTC", 0, 1, 2, -1, NULL, },
7884+ { "DTC_LIMIT*", 0, 1, 2, -1, NULL, },
7885+ { "DTR", 0, 1, 2, -1, NULL, },
7886+ { "DTR", 0, 1, 2, -1, NULL, },
7887+ { "DTR", 0, 1, 2, -1, NULL, },
7888+ { "DTR", 0, 1, 0, -1, NULL, },
7889+ { "FR%, % in 0 - 1", 12, 1, 0, -1, NULL, },
7890+ { "FR%, % in 2 - 127", 13, 1, 2, -1, NULL, },
7891+ { "GR0", 14, 1, 0, -1, NULL, },
7892+ { "GR%, % in 1 - 127", 15, 1, 2, -1, NULL, },
7893+ { "IBR#", 16, 1, 2, -1, NULL, },
7894+ { "InService*", 17, 1, 7, -1, "SC", },
7895+ { "IP", 0, 1, 0, -1, NULL, },
7896+ { "ITC", 0, 1, 0, -1, NULL, },
7897+ { "ITC", 0, 1, 2, -1, NULL, },
7898+ { "ITC", 0, 1, 2, -1, NULL, },
7899+ { "ITR", 0, 1, 2, -1, NULL, },
7900+ { "ITR", 0, 1, 2, -1, NULL, },
7901+ { "ITR", 0, 1, 0, -1, NULL, },
7902+ { "memory", 0, 1, 0, -1, NULL, },
7903+ { "MSR#", 18, 1, 7, -1, "SC", },
7904+ { "PKR#", 19, 1, 0, -1, NULL, },
7905+ { "PKR#", 19, 1, 0, -1, NULL, },
7906+ { "PKR#", 19, 1, 2, -1, NULL, },
7907+ { "PMC#", 20, 1, 2, -1, NULL, },
7908+ { "PMD#", 21, 1, 2, -1, NULL, },
7909+ { "PR0", 0, 1, 0, -1, NULL, },
7910+ { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
7911+ { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
7912+ { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
7913+ { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
7914+ { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
7915+ { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
7916+ { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
7917+ { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
7918+ { "PR63", 24, 1, 0, -1, NULL, },
7919+ { "PR63", 24, 1, 0, -1, NULL, },
7920+ { "PR63", 24, 1, 2, -1, NULL, },
7921+ { "PR63", 24, 1, 2, -1, NULL, },
7922+ { "PSR.ac", 28, 1, 2, 3, NULL, },
7923+ { "PSR.be", 28, 1, 2, 1, NULL, },
7924+ { "PSR.bn", 28, 1, 2, 44, NULL, },
7925+ { "PSR.cpl", 28, 1, 2, 32, NULL, },
7926+ { "PSR.da", 28, 1, 2, 38, NULL, },
7927+ { "PSR.db", 28, 1, 2, 24, NULL, },
7928+ { "PSR.dd", 28, 1, 2, 39, NULL, },
7929+ { "PSR.dfh", 28, 1, 2, 19, NULL, },
7930+ { "PSR.dfl", 28, 1, 2, 18, NULL, },
7931+ { "PSR.di", 28, 1, 2, 22, NULL, },
7932+ { "PSR.dt", 28, 1, 2, 17, NULL, },
7933+ { "PSR.ed", 28, 1, 2, 43, NULL, },
7934+ { "PSR.i", 28, 1, 2, 14, NULL, },
7935+ { "PSR.ia", 28, 1, 2, 14, NULL, },
7936+ { "PSR.ic", 28, 1, 2, 13, NULL, },
7937+ { "PSR.id", 28, 1, 2, 14, NULL, },
7938+ { "PSR.is", 28, 1, 2, 14, NULL, },
7939+ { "PSR.it", 28, 1, 2, 14, NULL, },
7940+ { "PSR.lp", 28, 1, 2, 25, NULL, },
7941+ { "PSR.mc", 28, 1, 2, 35, NULL, },
7942+ { "PSR.mfh", 28, 1, 0, 5, NULL, },
7943+ { "PSR.mfh", 28, 1, 2, 5, NULL, },
7944+ { "PSR.mfh", 28, 1, 2, 5, NULL, },
7945+ { "PSR.mfl", 28, 1, 0, 4, NULL, },
7946+ { "PSR.mfl", 28, 1, 2, 4, NULL, },
7947+ { "PSR.mfl", 28, 1, 2, 4, NULL, },
7948+ { "PSR.pk", 28, 1, 2, 15, NULL, },
7949+ { "PSR.pp", 28, 1, 2, 21, NULL, },
7950+ { "PSR.ri", 28, 1, 2, 41, NULL, },
7951+ { "PSR.rt", 28, 1, 2, 27, NULL, },
7952+ { "PSR.si", 28, 1, 2, 23, NULL, },
7953+ { "PSR.sp", 28, 1, 2, 20, NULL, },
7954+ { "PSR.ss", 28, 1, 2, 40, NULL, },
7955+ { "PSR.tb", 28, 1, 2, 26, NULL, },
7956+ { "PSR.up", 28, 1, 2, 2, NULL, },
7957+ { "RR#", 25, 1, 2, -1, NULL, },
7958+ { "RSE", 29, 1, 2, -1, NULL, },
7959+ { "PR63", 24, 2, 6, -1, NULL, },
7960+};
7961+
7962+static const unsigned short dep0[] = {
7963+ 96, 267, 2139, 2312,
7964+};
7965+
7966+static const unsigned short dep1[] = {
7967+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135,
7968+ 20613,
7969+};
7970+
7971+static const unsigned short dep2[] = {
7972+ 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2332, 2333, 2336,
7973+ 2337, 2340, 2341,
7974+};
7975+
7976+static const unsigned short dep3[] = {
7977+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2332,
7978+ 2333, 2336, 2337, 2340, 2341, 4135, 20613,
7979+};
7980+
7981+static const unsigned short dep4[] = {
7982+ 96, 267, 22645, 22646, 22648, 22649, 22651, 22652, 22654, 22809, 22812, 22813,
7983+ 22816, 22817, 22820, 22821,
7984+};
7985+
7986+static const unsigned short dep5[] = {
7987+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
7988+ 22809, 22812, 22813, 22816, 22817, 22820, 22821,
7989+};
7990+
7991+static const unsigned short dep6[] = {
7992+ 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2332, 2334,
7993+ 2336, 2338, 2340,
7994+};
7995+
7996+static const unsigned short dep7[] = {
7997+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330,
7998+ 2333, 2334, 2337, 2338, 2341, 4135, 20613,
7999+};
8000+
8001+static const unsigned short dep8[] = {
8002+ 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2331, 2333, 2335,
8003+ 2337, 2339, 2341,
8004+};
8005+
8006+static const unsigned short dep9[] = {
8007+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2331,
8008+ 2332, 2335, 2336, 2339, 2340, 4135, 20613,
8009+};
8010+
8011+static const unsigned short dep10[] = {
8012+ 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2331, 2332,
8013+ 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341,
8014+};
8015+
8016+static const unsigned short dep11[] = {
8017+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330,
8018+ 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 4135, 20613,
8019+
8020+};
8021+
8022+static const unsigned short dep12[] = {
8023+ 96, 267, 2379,
8024+};
8025+
8026+static const unsigned short dep13[] = {
8027+ 40, 41, 96, 156, 174, 175, 267, 2082, 2083, 2165, 2167, 2168, 2170, 2171,
8028+ 2173, 2174, 4135,
8029+};
8030+
8031+static const unsigned short dep14[] = {
8032+ 96, 155, 267, 310, 2379, 28852, 29002,
8033+};
8034+
8035+static const unsigned short dep15[] = {
8036+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
8037+ 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 40, 41, 96, 144, 156, 174, 175,
8038+ 267, 310, 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852,
8039+ 29002,
8040+};
8041+
8042+static const unsigned short dep16[] = {
8043+ 1, 6, 40, 96, 134, 182, 187, 226, 267, 297, 2379, 28852, 29002,
8044+};
8045+
8046+static const unsigned short dep17[] = {
8047+ 1, 25, 27, 38, 40, 41, 96, 156, 158, 159, 174, 175, 182, 187, 226, 267, 297,
8048+ 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, 29002,
8049+
8050+};
8051+
8052+static const unsigned short dep18[] = {
8053+ 1, 40, 51, 96, 182, 226, 233, 267, 28852, 29002,
8054+};
8055+
8056+static const unsigned short dep19[] = {
8057+ 1, 38, 40, 41, 96, 153, 174, 182, 226, 233, 267, 4135, 28852, 29002,
8058+};
8059+
8060+static const unsigned short dep20[] = {
8061+ 40, 96, 226, 267,
8062+};
8063+
8064+static const unsigned short dep21[] = {
8065+ 96, 174, 226, 267,
8066+};
8067+
8068+static const unsigned short dep22[] = {
8069+ 1, 40, 96, 128, 129, 131, 132, 133, 134, 135, 138, 139, 140, 141, 142, 143,
8070+ 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161,
8071+ 162, 163, 164, 165, 166, 169, 170, 171, 172, 173, 174, 175, 176, 177, 182,
8072+ 226, 267, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
8073+ 307, 308, 309, 310, 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323,
8074+ 324, 325, 326, 327, 328, 28852, 29002,
8075+};
8076+
8077+static const unsigned short dep23[] = {
8078+ 1, 38, 40, 41, 50, 51, 55, 58, 72, 96, 134, 174, 182, 226, 267, 294, 295,
8079+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
8080+ 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
8081+ 328, 4135, 28852, 29002,
8082+};
8083+
8084+static const unsigned short dep24[] = {
8085+ 96, 133, 267, 296,
8086+};
8087+
8088+static const unsigned short dep25[] = {
8089+ 96, 134, 174, 267, 296,
8090+};
8091+
8092+static const unsigned short dep26[] = {
8093+ 96, 134, 267, 297,
8094+};
8095+
8096+static const unsigned short dep27[] = {
8097+ 25, 26, 96, 97, 100, 104, 107, 134, 156, 174, 267, 297,
8098+};
8099+
8100+static const unsigned short dep28[] = {
8101+ 40, 41, 96, 174, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135,
8102+};
8103+
8104+static const unsigned short dep29[] = {
8105+ 1, 25, 40, 96, 182, 214, 215, 226, 267, 2082, 2270, 2273, 2379, 28852, 29002,
8106+
8107+};
8108+
8109+static const unsigned short dep30[] = {
8110+ 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2082, 2083,
8111+ 2165, 2167, 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002,
8112+
8113+};
8114+
8115+static const unsigned short dep31[] = {
8116+ 96, 267,
8117+};
8118+
8119+static const unsigned short dep32[] = {
8120+ 96, 174, 267, 2082, 2084,
8121+};
8122+
8123+static const unsigned short dep33[] = {
8124+ 40, 41, 96, 156, 174, 175, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174,
8125+ 4135,
8126+};
8127+
8128+static const unsigned short dep34[] = {
8129+ 6, 37, 38, 39, 96, 124, 125, 187, 226, 267, 292, 293, 2379,
8130+};
8131+
8132+static const unsigned short dep35[] = {
8133+ 6, 37, 40, 41, 96, 156, 174, 175, 187, 226, 267, 292, 293, 331, 2165, 2167,
8134+ 2168, 2170, 2171, 2173, 2174, 4135,
8135+};
8136+
8137+static const unsigned short dep36[] = {
8138+ 24, 96, 213, 267, 2379,
8139+};
8140+
8141+static const unsigned short dep37[] = {
8142+ 24, 40, 41, 96, 156, 174, 175, 213, 267, 2165, 2167, 2168, 2170, 2171, 2173,
8143+ 2174, 4135,
8144+};
8145+
8146+static const unsigned short dep38[] = {
8147+ 6, 24, 37, 38, 39, 96, 124, 125, 187, 213, 226, 267, 292, 293, 2379,
8148+};
8149+
8150+static const unsigned short dep39[] = {
8151+ 6, 24, 37, 40, 41, 96, 156, 174, 175, 187, 213, 226, 267, 292, 293, 331, 2165,
8152+ 2167, 2168, 2170, 2171, 2173, 2174, 4135,
8153+};
8154+
8155+static const unsigned short dep40[] = {
8156+ 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2165, 2167,
8157+ 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002,
8158+};
8159+
8160+static const unsigned short dep41[] = {
8161+ 96, 174, 267,
8162+};
8163+
8164+static const unsigned short dep42[] = {
8165+ 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8166+ 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8167+ 22817, 22820, 22821,
8168+};
8169+
8170+static const unsigned short dep43[] = {
8171+ 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8172+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8173+ 22813, 22816, 22817, 22820, 22821,
8174+};
8175+
8176+static const unsigned short dep44[] = {
8177+ 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310,
8178+ 18593, 18594, 18746, 18747, 18749, 18750, 22645, 22646, 22647, 22649, 22650,
8179+ 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8180+};
8181+
8182+static const unsigned short dep45[] = {
8183+ 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8184+ 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526,
8185+ 18746, 18748, 18749, 18751, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8186+
8187+};
8188+
8189+static const unsigned short dep46[] = {
8190+ 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8191+ 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8192+ 22817, 22820, 22821,
8193+};
8194+
8195+static const unsigned short dep47[] = {
8196+ 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8197+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8198+ 22813, 22816, 22817, 22820, 22821,
8199+};
8200+
8201+static const unsigned short dep48[] = {
8202+ 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8203+ 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8204+ 22817, 22820, 22821,
8205+};
8206+
8207+static const unsigned short dep49[] = {
8208+ 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8209+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8210+ 22813, 22816, 22817, 22820, 22821,
8211+};
8212+
8213+static const unsigned short dep50[] = {
8214+ 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8215+ 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8216+ 22817, 22820, 22821,
8217+};
8218+
8219+static const unsigned short dep51[] = {
8220+ 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8221+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8222+ 22813, 22816, 22817, 22820, 22821,
8223+};
8224+
8225+static const unsigned short dep52[] = {
8226+ 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8227+
8228+};
8229+
8230+static const unsigned short dep53[] = {
8231+ 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8232+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8233+};
8234+
8235+static const unsigned short dep54[] = {
8236+ 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310,
8237+ 18593, 18594, 18746, 18747, 18749, 18750,
8238+};
8239+
8240+static const unsigned short dep55[] = {
8241+ 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8242+ 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526,
8243+ 18746, 18748, 18749, 18751,
8244+};
8245+
8246+static const unsigned short dep56[] = {
8247+ 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8248+
8249+};
8250+
8251+static const unsigned short dep57[] = {
8252+ 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8253+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8254+};
8255+
8256+static const unsigned short dep58[] = {
8257+ 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8258+
8259+};
8260+
8261+static const unsigned short dep59[] = {
8262+ 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8263+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8264+};
8265+
8266+static const unsigned short dep60[] = {
8267+ 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8268+
8269+};
8270+
8271+static const unsigned short dep61[] = {
8272+ 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8273+ 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8274+};
8275+
8276+static const unsigned short dep62[] = {
8277+ 96, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8278+};
8279+
8280+static const unsigned short dep63[] = {
8281+ 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135,
8282+ 16524, 16526, 18746, 18748, 18749, 18751,
8283+};
8284+
8285+static const unsigned short dep64[] = {
8286+ 11, 96, 192, 267,
8287+};
8288+
8289+static const unsigned short dep65[] = {
8290+ 11, 40, 41, 96, 174, 192, 267, 2165, 2166, 2169, 2172, 4135,
8291+};
8292+
8293+static const unsigned short dep66[] = {
8294+ 11, 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135,
8295+};
8296+
8297+static const unsigned short dep67[] = {
8298+ 12, 96, 193, 267,
8299+};
8300+
8301+static const unsigned short dep68[] = {
8302+ 11, 40, 41, 96, 174, 193, 267, 2165, 2166, 2169, 2172, 4135,
8303+};
8304+
8305+static const unsigned short dep69[] = {
8306+ 13, 96, 194, 267,
8307+};
8308+
8309+static const unsigned short dep70[] = {
8310+ 11, 40, 41, 96, 174, 194, 267, 2165, 2166, 2169, 2172, 4135,
8311+};
8312+
8313+static const unsigned short dep71[] = {
8314+ 14, 96, 195, 267,
8315+};
8316+
8317+static const unsigned short dep72[] = {
8318+ 11, 40, 41, 96, 174, 195, 267, 2165, 2166, 2169, 2172, 4135,
8319+};
8320+
8321+static const unsigned short dep73[] = {
8322+ 15, 96, 197, 198, 267,
8323+};
8324+
8325+static const unsigned short dep74[] = {
8326+ 40, 41, 96, 174, 197, 198, 267, 2165, 2166, 2169, 2172, 4135,
8327+};
8328+
8329+static const unsigned short dep75[] = {
8330+ 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135,
8331+};
8332+
8333+static const unsigned short dep76[] = {
8334+ 16, 96, 200, 201, 267,
8335+};
8336+
8337+static const unsigned short dep77[] = {
8338+ 40, 41, 96, 174, 200, 201, 267, 2165, 2166, 2169, 2172, 4135,
8339+};
8340+
8341+static const unsigned short dep78[] = {
8342+ 17, 96, 203, 204, 267,
8343+};
8344+
8345+static const unsigned short dep79[] = {
8346+ 40, 41, 96, 174, 203, 204, 267, 2165, 2166, 2169, 2172, 4135,
8347+};
8348+
8349+static const unsigned short dep80[] = {
8350+ 18, 96, 206, 207, 267,
8351+};
8352+
8353+static const unsigned short dep81[] = {
8354+ 40, 41, 96, 174, 206, 207, 267, 2165, 2166, 2169, 2172, 4135,
8355+};
8356+
8357+static const unsigned short dep82[] = {
8358+ 15, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8359+
8360+};
8361+
8362+static const unsigned short dep83[] = {
8363+ 15, 16, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8364+
8365+};
8366+
8367+static const unsigned short dep84[] = {
8368+ 15, 17, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8369+
8370+};
8371+
8372+static const unsigned short dep85[] = {
8373+ 15, 18, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8374+
8375+};
8376+
8377+static const unsigned short dep86[] = {
8378+ 15, 96, 196, 197, 267,
8379+};
8380+
8381+static const unsigned short dep87[] = {
8382+ 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2165, 2166, 2169, 2172, 4135,
8383+
8384+};
8385+
8386+static const unsigned short dep88[] = {
8387+ 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267,
8388+};
8389+
8390+static const unsigned short dep89[] = {
8391+ 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8392+ 207, 267, 2165, 2166, 2169, 2172, 4135,
8393+};
8394+
8395+static const unsigned short dep90[] = {
8396+ 16, 96, 199, 200, 267,
8397+};
8398+
8399+static const unsigned short dep91[] = {
8400+ 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2165, 2166, 2169, 2172, 4135,
8401+
8402+};
8403+
8404+static const unsigned short dep92[] = {
8405+ 17, 96, 202, 203, 267,
8406+};
8407+
8408+static const unsigned short dep93[] = {
8409+ 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2165, 2166, 2169, 2172, 4135,
8410+
8411+};
8412+
8413+static const unsigned short dep94[] = {
8414+ 18, 96, 205, 206, 267,
8415+};
8416+
8417+static const unsigned short dep95[] = {
8418+ 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2165, 2166, 2169, 2172, 4135,
8419+
8420+};
8421+
8422+static const unsigned short dep96[] = {
8423+ 15, 96, 196, 197, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8424+ 2333, 2336, 2337, 2340, 2341,
8425+};
8426+
8427+static const unsigned short dep97[] = {
8428+ 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8429+ 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8430+
8431+};
8432+
8433+static const unsigned short dep98[] = {
8434+ 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2165, 2166,
8435+ 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336, 2337, 2340, 2341,
8436+};
8437+
8438+static const unsigned short dep99[] = {
8439+ 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8440+ 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332, 2333, 2336,
8441+ 2337, 2340, 2341, 4135, 16524, 16526,
8442+};
8443+
8444+static const unsigned short dep100[] = {
8445+ 16, 96, 199, 200, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8446+ 2333, 2336, 2337, 2340, 2341,
8447+};
8448+
8449+static const unsigned short dep101[] = {
8450+ 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8451+ 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8452+
8453+};
8454+
8455+static const unsigned short dep102[] = {
8456+ 17, 96, 202, 203, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8457+ 2333, 2336, 2337, 2340, 2341,
8458+};
8459+
8460+static const unsigned short dep103[] = {
8461+ 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8462+ 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8463+
8464+};
8465+
8466+static const unsigned short dep104[] = {
8467+ 18, 96, 205, 206, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8468+ 2333, 2336, 2337, 2340, 2341,
8469+};
8470+
8471+static const unsigned short dep105[] = {
8472+ 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8473+ 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8474+
8475+};
8476+
8477+static const unsigned short dep106[] = {
8478+ 15, 96, 196, 197, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8479+ 22812, 22813, 22816, 22817, 22820, 22821,
8480+};
8481+
8482+static const unsigned short dep107[] = {
8483+ 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8484+ 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8485+ 22821,
8486+};
8487+
8488+static const unsigned short dep108[] = {
8489+ 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 22645, 22646,
8490+ 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820,
8491+ 22821,
8492+};
8493+
8494+static const unsigned short dep109[] = {
8495+ 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8496+ 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524, 16526, 22809,
8497+ 22812, 22813, 22816, 22817, 22820, 22821,
8498+};
8499+
8500+static const unsigned short dep110[] = {
8501+ 16, 96, 199, 200, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8502+ 22812, 22813, 22816, 22817, 22820, 22821,
8503+};
8504+
8505+static const unsigned short dep111[] = {
8506+ 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8507+ 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8508+ 22821,
8509+};
8510+
8511+static const unsigned short dep112[] = {
8512+ 17, 96, 202, 203, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8513+ 22812, 22813, 22816, 22817, 22820, 22821,
8514+};
8515+
8516+static const unsigned short dep113[] = {
8517+ 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8518+ 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8519+ 22821,
8520+};
8521+
8522+static const unsigned short dep114[] = {
8523+ 18, 96, 205, 206, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8524+ 22812, 22813, 22816, 22817, 22820, 22821,
8525+};
8526+
8527+static const unsigned short dep115[] = {
8528+ 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8529+ 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8530+ 22821,
8531+};
8532+
8533+static const unsigned short dep116[] = {
8534+ 96, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336,
8535+ 2337, 2340, 2341,
8536+};
8537+
8538+static const unsigned short dep117[] = {
8539+ 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332,
8540+ 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8541+};
8542+
8543+static const unsigned short dep118[] = {
8544+ 96, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813,
8545+ 22816, 22817, 22820, 22821,
8546+};
8547+
8548+static const unsigned short dep119[] = {
8549+ 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524,
8550+ 16526, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8551+};
8552+
8553+static const unsigned short dep120[] = {
8554+ 19, 20, 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310,
8555+ 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8556+};
8557+
8558+static const unsigned short dep121[] = {
8559+ 40, 41, 96, 156, 174, 175, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8560+ 4135, 20613,
8561+};
8562+
8563+static const unsigned short dep122[] = {
8564+ 96, 267, 2083, 2084, 2271, 2272,
8565+};
8566+
8567+static const unsigned short dep123[] = {
8568+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2270, 2272,
8569+ 4135, 20613,
8570+};
8571+
8572+static const unsigned short dep124[] = {
8573+ 40, 41, 96, 174, 267, 2082, 2084, 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8574+
8575+};
8576+
8577+static const unsigned short dep125[] = {
8578+ 96, 267, 14454, 14456, 14457, 14459, 14460, 14462, 14620, 14621, 14624, 14625,
8579+ 14628, 14629,
8580+};
8581+
8582+static const unsigned short dep126[] = {
8583+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 4135, 14620, 14621, 14624, 14625,
8584+ 14628, 14629, 20613, 24693, 24694, 24697, 24700,
8585+};
8586+
8587+static const unsigned short dep127[] = {
8588+ 96, 121, 123, 124, 126, 267, 288, 289, 292, 293,
8589+};
8590+
8591+static const unsigned short dep128[] = {
8592+ 40, 41, 96, 174, 267, 288, 289, 292, 293, 4135, 24693, 24694, 24697, 24700,
8593+
8594+};
8595+
8596+static const unsigned short dep129[] = {
8597+ 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8598+};
8599+
8600+static const unsigned short dep130[] = {
8601+ 40, 41, 96, 118, 121, 124, 174, 267, 2312, 4135, 20613, 24693,
8602+};
8603+
8604+static const unsigned short dep131[] = {
8605+ 6, 24, 26, 27, 96, 187, 213, 216, 267, 2081, 2269,
8606+};
8607+
8608+static const unsigned short dep132[] = {
8609+ 40, 41, 96, 174, 187, 213, 215, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8610+ 2269, 4135, 20613,
8611+};
8612+
8613+static const unsigned short dep133[] = {
8614+ 6, 24, 25, 26, 40, 41, 96, 174, 267, 2081, 2165, 2166, 2169, 2172, 2312, 4135,
8615+ 20613,
8616+};
8617+
8618+static const unsigned short dep134[] = {
8619+ 0, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8620+};
8621+
8622+static const unsigned short dep135[] = {
8623+ 0, 96, 181, 267,
8624+};
8625+
8626+static const unsigned short dep136[] = {
8627+ 0, 40, 41, 96, 156, 174, 175, 181, 267, 2165, 2166, 2169, 2172, 4135,
8628+};
8629+
8630+static const unsigned short dep137[] = {
8631+ 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135,
8632+};
8633+
8634+static const unsigned short dep138[] = {
8635+ 2, 28, 96, 183, 217, 267, 28852, 29002,
8636+};
8637+
8638+static const unsigned short dep139[] = {
8639+ 1, 2, 28, 29, 96, 168, 169, 174, 183, 217, 267, 28852, 29002,
8640+};
8641+
8642+static const unsigned short dep140[] = {
8643+ 1, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 267, 4135, 28852, 29002,
8644+
8645+};
8646+
8647+static const unsigned short dep141[] = {
8648+ 0, 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135,
8649+};
8650+
8651+static const unsigned short dep142[] = {
8652+ 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
8653+ 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193,
8654+ 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 217,
8655+ 218, 219, 267, 2071, 2081, 2260, 2269, 28852, 29002,
8656+};
8657+
8658+static const unsigned short dep143[] = {
8659+ 29, 40, 41, 96, 134, 174, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192,
8660+ 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211,
8661+ 217, 218, 219, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269,
8662+ 4135, 20613, 28852, 29002,
8663+};
8664+
8665+static const unsigned short dep144[] = {
8666+ 96, 267, 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651,
8667+ 14652, 14654, 14655, 14664,
8668+};
8669+
8670+static const unsigned short dep145[] = {
8671+ 40, 41, 96, 173, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631, 14651,
8672+ 14652, 14654, 14655, 14664,
8673+};
8674+
8675+static const unsigned short dep146[] = {
8676+ 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651, 14652,
8677+ 14654, 14655, 14664,
8678+};
8679+
8680+static const unsigned short dep147[] = {
8681+ 173, 14630, 14631, 14651, 14652, 14654, 14655, 14664,
8682+};
8683+
8684+static const unsigned short dep148[] = {
8685+ 96, 267, 14464, 14465, 14467, 14468, 14476, 14477, 14478, 14479, 14480, 14481,
8686+ 14482, 14483, 14485, 14488, 14489, 14497, 14498, 14499, 14500, 14501, 14506,
8687+ 14507, 14508, 14509, 14513, 14630, 14631, 14637, 14638, 14639, 14640, 14642,
8688+ 14644, 14651, 14652, 14654, 14655, 14656, 14657, 14660, 14661, 14664,
8689+};
8690+
8691+static const unsigned short dep149[] = {
8692+ 40, 41, 72, 96, 134, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631,
8693+ 14637, 14638, 14639, 14640, 14642, 14644, 14651, 14652, 14654, 14655, 14656,
8694+ 14657, 14660, 14661, 14664,
8695+};
8696+
8697+static const unsigned short dep150[] = {
8698+ 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
8699+ 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 267, 2071, 2081, 2165, 2166, 2169,
8700+ 2172, 2312, 4135, 20613, 28852,
8701+};
8702+
8703+static const unsigned short dep151[] = {
8704+ 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63,
8705+ 64, 65, 67, 69, 70, 71, 72, 93, 95, 96, 228, 229, 230, 231, 232, 233, 234,
8706+ 235, 236, 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267,
8707+ 2116, 2295,
8708+};
8709+
8710+static const unsigned short dep152[] = {
8711+ 40, 41, 95, 96, 134, 153, 174, 228, 229, 230, 231, 232, 233, 234, 235, 236,
8712+ 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267, 2137, 2138,
8713+ 2139, 2165, 2166, 2169, 2172, 2295, 4135, 20613,
8714+};
8715+
8716+static const unsigned short dep153[] = {
8717+ 59, 94, 96, 239, 266, 267, 2139, 2312,
8718+};
8719+
8720+static const unsigned short dep154[] = {
8721+ 40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66,
8722+ 67, 69, 70, 71, 93, 94, 96, 134, 153, 174, 239, 266, 267, 2107, 2116, 2165,
8723+ 2166, 2169, 2172, 2312, 4135, 20613,
8724+};
8725+
8726+static const unsigned short dep155[] = {
8727+ 2, 28, 41, 96, 183, 217, 226, 267, 2139, 2312, 28852, 29002,
8728+};
8729+
8730+static const unsigned short dep156[] = {
8731+ 2, 25, 26, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 226, 267, 2312,
8732+ 4135, 20613, 28852, 29002,
8733+};
8734+
8735+static const unsigned short dep157[] = {
8736+ 96, 128, 129, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147,
8737+ 149, 152, 153, 157, 158, 161, 162, 163, 164, 165, 167, 168, 170, 171, 172,
8738+ 173, 175, 176, 177, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308, 312,
8739+ 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328,
8740+};
8741+
8742+static const unsigned short dep158[] = {
8743+ 40, 41, 72, 96, 134, 174, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308,
8744+ 312, 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328, 2137, 2138, 2139,
8745+ 2165, 2166, 2169, 2172, 4135, 20613,
8746+};
8747+
8748+static const unsigned short dep159[] = {
8749+ 96, 127, 129, 130, 132, 161, 162, 177, 267, 294, 295, 315, 316, 318, 319,
8750+ 328,
8751+};
8752+
8753+static const unsigned short dep160[] = {
8754+ 40, 41, 96, 173, 174, 267, 294, 295, 315, 316, 318, 319, 328, 2137, 2138,
8755+ 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8756+};
8757+
8758+static const unsigned short dep161[] = {
8759+ 40, 41, 96, 129, 132, 134, 137, 138, 141, 143, 145, 147, 149, 150, 152, 156,
8760+ 157, 159, 160, 161, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 267,
8761+ 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8762+};
8763+
8764+static const unsigned short dep162[] = {
8765+ 40, 41, 96, 129, 132, 161, 162, 174, 177, 267, 2165, 2166, 2169, 2172, 2312,
8766+ 4135, 20613,
8767+};
8768+
8769+static const unsigned short dep163[] = {
8770+ 40, 41, 75, 76, 81, 83, 96, 110, 134, 163, 174, 178, 267, 2137, 2138, 2139,
8771+ 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8772+};
8773+
8774+static const unsigned short dep164[] = {
8775+ 40, 41, 75, 76, 81, 83, 96, 110, 134, 135, 136, 138, 139, 163, 174, 178, 267,
8776+ 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8777+};
8778+
8779+static const unsigned short dep165[] = {
8780+ 76, 77, 96, 100, 101, 254, 255, 267, 269, 270,
8781+};
8782+
8783+static const unsigned short dep166[] = {
8784+ 40, 41, 47, 62, 77, 79, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255, 267,
8785+ 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8786+};
8787+
8788+static const unsigned short dep167[] = {
8789+ 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255,
8790+ 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8791+};
8792+
8793+static const unsigned short dep168[] = {
8794+ 96, 267, 12466, 12467, 12617,
8795+};
8796+
8797+static const unsigned short dep169[] = {
8798+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8799+ 12617, 20613,
8800+};
8801+
8802+static const unsigned short dep170[] = {
8803+ 96, 267, 6218, 6219, 6396,
8804+};
8805+
8806+static const unsigned short dep171[] = {
8807+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8808+ 6396, 20613,
8809+};
8810+
8811+static const unsigned short dep172[] = {
8812+ 96, 267, 6236, 6409,
8813+};
8814+
8815+static const unsigned short dep173[] = {
8816+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8817+ 6409, 20613,
8818+};
8819+
8820+static const unsigned short dep174[] = {
8821+ 96, 267, 6254, 6255, 6256, 6257, 6420, 6422, 8469,
8822+};
8823+
8824+static const unsigned short dep175[] = {
8825+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8826+ 6257, 6421, 6422, 8303, 8468, 20613,
8827+};
8828+
8829+static const unsigned short dep176[] = {
8830+ 96, 267, 6258, 6259, 6423,
8831+};
8832+
8833+static const unsigned short dep177[] = {
8834+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8835+ 6423, 20613,
8836+};
8837+
8838+static const unsigned short dep178[] = {
8839+ 96, 267, 6260, 6424,
8840+};
8841+
8842+static const unsigned short dep179[] = {
8843+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8844+ 6424, 20613,
8845+};
8846+
8847+static const unsigned short dep180[] = {
8848+ 96, 267, 10349, 10515,
8849+};
8850+
8851+static const unsigned short dep181[] = {
8852+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8853+ 10515, 20613,
8854+};
8855+
8856+static const unsigned short dep182[] = {
8857+ 76, 77, 81, 82, 96, 100, 101, 254, 255, 257, 258, 267, 269, 270,
8858+};
8859+
8860+static const unsigned short dep183[] = {
8861+ 40, 41, 47, 62, 77, 79, 82, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255,
8862+ 257, 259, 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8863+
8864+};
8865+
8866+static const unsigned short dep184[] = {
8867+ 76, 77, 96, 100, 101, 103, 104, 254, 255, 267, 269, 270, 271, 272,
8868+};
8869+
8870+static const unsigned short dep185[] = {
8871+ 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255,
8872+ 267, 269, 270, 271, 272, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8873+
8874+};
8875+
8876+static const unsigned short dep186[] = {
8877+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8878+ 4135, 12467, 20613,
8879+};
8880+
8881+static const unsigned short dep187[] = {
8882+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8883+ 4135, 6218, 20613,
8884+};
8885+
8886+static const unsigned short dep188[] = {
8887+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8888+ 4135, 6236, 20613,
8889+};
8890+
8891+static const unsigned short dep189[] = {
8892+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8893+ 4135, 6256, 8302, 20613,
8894+};
8895+
8896+static const unsigned short dep190[] = {
8897+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8898+ 4135, 6258, 20613,
8899+};
8900+
8901+static const unsigned short dep191[] = {
8902+ 40, 41, 96, 134, 173, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8903+ 2312, 4135, 6259, 6260, 20613,
8904+};
8905+
8906+static const unsigned short dep192[] = {
8907+ 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8908+ 4135, 10349, 20613,
8909+};
8910+
8911+static const unsigned short dep193[] = {
8912+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135,
8913+ 6186, 20613,
8914+};
8915+
8916+static const unsigned short dep194[] = {
8917+ 76, 78, 79, 96, 97, 98, 99, 253, 254, 267, 268, 269,
8918+};
8919+
8920+static const unsigned short dep195[] = {
8921+ 40, 41, 77, 78, 82, 84, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267,
8922+ 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8923+};
8924+
8925+static const unsigned short dep196[] = {
8926+ 76, 78, 79, 80, 96, 97, 98, 99, 102, 253, 254, 256, 267, 268, 269,
8927+};
8928+
8929+static const unsigned short dep197[] = {
8930+ 40, 41, 77, 78, 80, 82, 84, 96, 99, 101, 102, 103, 106, 134, 174, 178, 253,
8931+ 255, 256, 267, 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8932+
8933+};
8934+
8935+static const unsigned short dep198[] = {
8936+ 76, 78, 79, 83, 84, 85, 96, 97, 98, 99, 253, 254, 259, 260, 267, 268, 269,
8937+
8938+};
8939+
8940+static const unsigned short dep199[] = {
8941+ 40, 41, 77, 78, 82, 84, 96, 99, 101, 134, 174, 178, 253, 255, 258, 260, 267,
8942+ 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8943+};
8944+
8945+static const unsigned short dep200[] = {
8946+ 76, 78, 79, 96, 97, 98, 99, 105, 106, 107, 253, 254, 267, 268, 269, 272, 273,
8947+
8948+};
8949+
8950+static const unsigned short dep201[] = {
8951+ 40, 41, 77, 78, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267, 268,
8952+ 270, 271, 273, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8953+};
8954+
8955+static const unsigned short dep202[] = {
8956+ 40, 41, 46, 70, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8957+ 2312, 4135, 20613,
8958+};
8959+
8960+static const unsigned short dep203[] = {
8961+ 40, 41, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8962+ 4135, 20613,
8963+};
8964+
8965+static const unsigned short dep204[] = {
8966+ 40, 41, 76, 81, 83, 96, 134, 174, 178, 267, 2137, 2138, 2139, 2165, 2166,
8967+ 2169, 2172, 2312, 4135, 20613,
8968+};
8969+
8970+static const unsigned short dep205[] = {
8971+ 40, 41, 96, 156, 174, 175, 267, 2134, 2135, 2136, 2137, 2138, 2139, 2165,
8972+ 2166, 2169, 2172, 4135, 16524, 16526, 20613,
8973+};
8974+
8975+static const unsigned short dep206[] = {
8976+ 40, 41, 76, 81, 83, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8977+ 4135, 20613,
8978+};
8979+
8980+static const unsigned short dep207[] = {
8981+ 40, 41, 77, 78, 96, 99, 134, 174, 253, 255, 267, 268, 270, 2137, 2138, 2139,
8982+ 2165, 2166, 2169, 2172, 4135, 20613,
8983+};
8984+
8985+static const unsigned short dep208[] = {
8986+ 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
8987+ 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8988+ 4135, 20613,
8989+};
8990+
8991+static const unsigned short dep209[] = {
8992+ 5, 96, 186, 267, 2139, 2312,
8993+};
8994+
8995+static const unsigned short dep210[] = {
8996+ 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
8997+ 139, 146, 163, 174, 178, 186, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8998+ 2312, 4135, 20613,
8999+};
9000+
9001+static const unsigned short dep211[] = {
9002+ 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9003+ 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9004+ 2172, 2312, 4135, 20613,
9005+};
9006+
9007+static const unsigned short dep212[] = {
9008+ 0, 96, 181, 267, 2139, 2312,
9009+};
9010+
9011+static const unsigned short dep213[] = {
9012+ 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9013+ 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9014+ 2172, 2312, 4135, 20613,
9015+};
9016+
9017+static const unsigned short dep214[] = {
9018+ 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9019+ 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9020+ 2166, 2169, 2172, 2312, 4135, 20613,
9021+};
9022+
9023+static const unsigned short dep215[] = {
9024+ 31, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9025+ 138, 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
9026+ 2312, 4135, 20613,
9027+};
9028+
9029+static const unsigned short dep216[] = {
9030+ 0, 96, 181, 267, 2312, 26714,
9031+};
9032+
9033+static const unsigned short dep217[] = {
9034+ 0, 96, 108, 181, 267, 274,
9035+};
9036+
9037+static const unsigned short dep218[] = {
9038+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9039+ 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169,
9040+ 2172, 4135, 20613,
9041+};
9042+
9043+static const unsigned short dep219[] = {
9044+ 0, 5, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136,
9045+ 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166,
9046+ 2169, 2172, 4135, 20613,
9047+};
9048+
9049+static const unsigned short dep220[] = {
9050+ 0, 31, 96, 108, 181, 219, 267, 274,
9051+};
9052+
9053+static const unsigned short dep221[] = {
9054+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9055+ 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166,
9056+ 2169, 2172, 4135, 20613,
9057+};
9058+
9059+static const unsigned short dep222[] = {
9060+ 0, 96, 108, 181, 267, 274, 2139, 2312,
9061+};
9062+
9063+static const unsigned short dep223[] = {
9064+ 0, 4, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9065+ 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165,
9066+ 2166, 2169, 2172, 2312, 4135, 20613,
9067+};
9068+
9069+static const unsigned short dep224[] = {
9070+ 0, 4, 5, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9071+ 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165,
9072+ 2166, 2169, 2172, 2312, 4135, 20613,
9073+};
9074+
9075+static const unsigned short dep225[] = {
9076+ 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9077+ 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166,
9078+ 2169, 2172, 2312, 4135, 20613,
9079+};
9080+
9081+static const unsigned short dep226[] = {
9082+ 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2312, 4135,
9083+ 16524, 16526, 20613,
9084+};
9085+
9086+static const unsigned short dep227[] = {
9087+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9088+ 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169,
9089+ 2172, 2312, 4135, 20613,
9090+};
9091+
9092+static const unsigned short dep228[] = {
9093+ 0, 31, 96, 108, 181, 219, 267, 274, 2139, 2312,
9094+};
9095+
9096+static const unsigned short dep229[] = {
9097+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9098+ 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166,
9099+ 2169, 2172, 2312, 4135, 20613,
9100+};
9101+
9102+static const unsigned short dep230[] = {
9103+ 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9104+ 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310,
9105+ 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9106+};
9107+
9108+static const unsigned short dep231[] = {
9109+ 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9110+ 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9111+ 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9112+};
9113+
9114+static const unsigned short dep232[] = {
9115+ 0, 96, 181, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
9116+};
9117+
9118+static const unsigned short dep233[] = {
9119+ 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9120+ 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9121+ 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9122+};
9123+
9124+static const unsigned short dep234[] = {
9125+ 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9126+ 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9127+ 2166, 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9128+
9129+};
9130+
9131+static const unsigned short dep235[] = {
9132+ 0, 96, 181, 267, 2136, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
9133+};
9134+
9135+static const unsigned short dep236[] = {
9136+ 96, 267, 2135, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749, 18750,
9137+
9138+};
9139+
9140+static const unsigned short dep237[] = {
9141+ 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9142+ 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310,
9143+ 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9144+};
9145+
9146+static const unsigned short dep238[] = {
9147+ 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9148+ 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9149+ 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9150+};
9151+
9152+static const unsigned short dep239[] = {
9153+ 0, 96, 181, 267, 2135, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749,
9154+ 18750,
9155+};
9156+
9157+static const unsigned short dep240[] = {
9158+ 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9159+ 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9160+ 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9161+};
9162+
9163+static const unsigned short dep241[] = {
9164+ 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9165+ 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9166+ 2166, 2169, 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
9167+ 20613,
9168+};
9169+
9170+static const unsigned short dep242[] = {
9171+ 0, 96, 181, 267, 2136, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749,
9172+ 18750,
9173+};
9174+
9175+static const unsigned short dep243[] = {
9176+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9177+ 139, 146, 163, 174, 178, 181, 267, 274, 2134, 2135, 2136, 2137, 2138, 2139,
9178+ 2165, 2166, 2169, 2172, 4135, 16524, 16526, 20613,
9179+};
9180+
9181+static const unsigned short dep244[] = {
9182+ 40, 41, 75, 96, 134, 148, 174, 267, 2165, 2166, 2169, 2172, 4135,
9183+};
9184+
9185+static const unsigned short dep245[] = {
9186+ 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2165, 2166, 2169, 2172, 4135,
9187+
9188+};
9189+
9190+static const unsigned short dep246[] = {
9191+ 40, 41, 75, 96, 134, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
9192+ 2312, 4135, 20613,
9193+};
9194+
9195+static const unsigned short dep247[] = {
9196+ 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2137, 2138, 2139, 2165, 2166,
9197+ 2169, 2172, 2312, 4135, 20613,
9198+};
9199+
9200+static const unsigned short dep248[] = {
9201+ 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, 4135,
9202+ 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9203+};
9204+
9205+static const unsigned short dep249[] = {
9206+ 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9207+ 139, 146, 163, 174, 178, 181, 267, 274, 2134, 2135, 2136, 2137, 2138, 2139,
9208+ 2165, 2166, 2169, 2172, 2312, 4135, 16524, 16526, 20613,
9209+};
9210+
9211+static const unsigned short dep250[] = {
9212+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
9213+ 22, 24, 26, 27, 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 187, 188, 189,
9214+ 190, 191, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208,
9215+ 209, 210, 211, 213, 216, 217, 218, 219, 267, 2071, 2081, 2139, 2260, 2269,
9216+ 2312, 28852, 29002,
9217+};
9218+
9219+static const unsigned short dep251[] = {
9220+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
9221+ 22, 24, 25, 26, 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 182, 183, 184,
9222+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 197, 198, 200, 201,
9223+ 203, 204, 206, 207, 208, 209, 210, 211, 213, 215, 217, 218, 219, 267, 2071,
9224+ 2081, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, 2312, 4135, 20613,
9225+ 28852, 29002,
9226+};
9227+
9228+#define NELS(X) (sizeof(X)/sizeof(X[0]))
9229+static const struct ia64_opcode_dependency
9230+op_dependencies[] = {
9231+ { NELS(dep1), dep1, NELS(dep0), dep0, },
9232+ { NELS(dep3), dep3, NELS(dep2), dep2, },
9233+ { NELS(dep5), dep5, NELS(dep4), dep4, },
9234+ { NELS(dep7), dep7, NELS(dep6), dep6, },
9235+ { NELS(dep9), dep9, NELS(dep8), dep8, },
9236+ { NELS(dep11), dep11, NELS(dep10), dep10, },
9237+ { NELS(dep13), dep13, NELS(dep12), dep12, },
9238+ { NELS(dep15), dep15, NELS(dep14), dep14, },
9239+ { NELS(dep17), dep17, NELS(dep16), dep16, },
9240+ { NELS(dep19), dep19, NELS(dep18), dep18, },
9241+ { NELS(dep21), dep21, NELS(dep20), dep20, },
9242+ { NELS(dep23), dep23, NELS(dep22), dep22, },
9243+ { NELS(dep25), dep25, NELS(dep24), dep24, },
9244+ { NELS(dep27), dep27, NELS(dep26), dep26, },
9245+ { NELS(dep28), dep28, NELS(dep12), dep12, },
9246+ { NELS(dep30), dep30, NELS(dep29), dep29, },
9247+ { NELS(dep32), dep32, NELS(dep31), dep31, },
9248+ { NELS(dep33), dep33, NELS(dep12), dep12, },
9249+ { NELS(dep35), dep35, NELS(dep34), dep34, },
9250+ { NELS(dep37), dep37, NELS(dep36), dep36, },
9251+ { NELS(dep39), dep39, NELS(dep38), dep38, },
9252+ { NELS(dep40), dep40, NELS(dep29), dep29, },
9253+ { NELS(dep41), dep41, NELS(dep31), dep31, },
9254+ { NELS(dep43), dep43, NELS(dep42), dep42, },
9255+ { NELS(dep45), dep45, NELS(dep44), dep44, },
9256+ { NELS(dep47), dep47, NELS(dep46), dep46, },
9257+ { NELS(dep49), dep49, NELS(dep48), dep48, },
9258+ { NELS(dep51), dep51, NELS(dep50), dep50, },
9259+ { NELS(dep53), dep53, NELS(dep52), dep52, },
9260+ { NELS(dep55), dep55, NELS(dep54), dep54, },
9261+ { NELS(dep57), dep57, NELS(dep56), dep56, },
9262+ { NELS(dep59), dep59, NELS(dep58), dep58, },
9263+ { NELS(dep61), dep61, NELS(dep60), dep60, },
9264+ { NELS(dep63), dep63, NELS(dep62), dep62, },
9265+ { NELS(dep65), dep65, NELS(dep64), dep64, },
9266+ { NELS(dep66), dep66, NELS(dep31), dep31, },
9267+ { NELS(dep68), dep68, NELS(dep67), dep67, },
9268+ { NELS(dep70), dep70, NELS(dep69), dep69, },
9269+ { NELS(dep72), dep72, NELS(dep71), dep71, },
9270+ { NELS(dep74), dep74, NELS(dep73), dep73, },
9271+ { NELS(dep75), dep75, NELS(dep31), dep31, },
9272+ { NELS(dep77), dep77, NELS(dep76), dep76, },
9273+ { NELS(dep79), dep79, NELS(dep78), dep78, },
9274+ { NELS(dep81), dep81, NELS(dep80), dep80, },
9275+ { NELS(dep82), dep82, NELS(dep31), dep31, },
9276+ { NELS(dep83), dep83, NELS(dep31), dep31, },
9277+ { NELS(dep84), dep84, NELS(dep31), dep31, },
9278+ { NELS(dep85), dep85, NELS(dep31), dep31, },
9279+ { NELS(dep87), dep87, NELS(dep86), dep86, },
9280+ { NELS(dep89), dep89, NELS(dep88), dep88, },
9281+ { NELS(dep91), dep91, NELS(dep90), dep90, },
9282+ { NELS(dep93), dep93, NELS(dep92), dep92, },
9283+ { NELS(dep95), dep95, NELS(dep94), dep94, },
9284+ { NELS(dep97), dep97, NELS(dep96), dep96, },
9285+ { NELS(dep99), dep99, NELS(dep98), dep98, },
9286+ { NELS(dep101), dep101, NELS(dep100), dep100, },
9287+ { NELS(dep103), dep103, NELS(dep102), dep102, },
9288+ { NELS(dep105), dep105, NELS(dep104), dep104, },
9289+ { NELS(dep107), dep107, NELS(dep106), dep106, },
9290+ { NELS(dep109), dep109, NELS(dep108), dep108, },
9291+ { NELS(dep111), dep111, NELS(dep110), dep110, },
9292+ { NELS(dep113), dep113, NELS(dep112), dep112, },
9293+ { NELS(dep115), dep115, NELS(dep114), dep114, },
9294+ { NELS(dep117), dep117, NELS(dep116), dep116, },
9295+ { NELS(dep119), dep119, NELS(dep118), dep118, },
9296+ { NELS(dep120), dep120, NELS(dep62), dep62, },
9297+ { NELS(dep121), dep121, NELS(dep31), dep31, },
9298+ { NELS(dep123), dep123, NELS(dep122), dep122, },
9299+ { NELS(dep124), dep124, NELS(dep0), dep0, },
9300+ { NELS(dep126), dep126, NELS(dep125), dep125, },
9301+ { NELS(dep128), dep128, NELS(dep127), dep127, },
9302+ { NELS(dep129), dep129, NELS(dep0), dep0, },
9303+ { NELS(dep130), dep130, NELS(dep0), dep0, },
9304+ { NELS(dep132), dep132, NELS(dep131), dep131, },
9305+ { NELS(dep133), dep133, NELS(dep0), dep0, },
9306+ { NELS(dep134), dep134, NELS(dep31), dep31, },
9307+ { NELS(dep136), dep136, NELS(dep135), dep135, },
9308+ { NELS(dep137), dep137, NELS(dep135), dep135, },
9309+ { NELS(dep139), dep139, NELS(dep138), dep138, },
9310+ { NELS(dep140), dep140, NELS(dep138), dep138, },
9311+ { NELS(dep141), dep141, NELS(dep135), dep135, },
9312+ { NELS(dep143), dep143, NELS(dep142), dep142, },
9313+ { NELS(dep145), dep145, NELS(dep144), dep144, },
9314+ { NELS(dep147), dep147, NELS(dep146), dep146, },
9315+ { NELS(dep149), dep149, NELS(dep148), dep148, },
9316+ { NELS(dep150), dep150, NELS(dep0), dep0, },
9317+ { NELS(dep152), dep152, NELS(dep151), dep151, },
9318+ { NELS(dep154), dep154, NELS(dep153), dep153, },
9319+ { NELS(dep156), dep156, NELS(dep155), dep155, },
9320+ { NELS(dep158), dep158, NELS(dep157), dep157, },
9321+ { NELS(dep160), dep160, NELS(dep159), dep159, },
9322+ { NELS(dep161), dep161, NELS(dep0), dep0, },
9323+ { NELS(dep162), dep162, NELS(dep0), dep0, },
9324+ { NELS(dep163), dep163, NELS(dep0), dep0, },
9325+ { NELS(dep164), dep164, NELS(dep31), dep31, },
9326+ { NELS(dep166), dep166, NELS(dep165), dep165, },
9327+ { NELS(dep167), dep167, NELS(dep165), dep165, },
9328+ { NELS(dep169), dep169, NELS(dep168), dep168, },
9329+ { NELS(dep171), dep171, NELS(dep170), dep170, },
9330+ { NELS(dep173), dep173, NELS(dep172), dep172, },
9331+ { NELS(dep175), dep175, NELS(dep174), dep174, },
9332+ { NELS(dep177), dep177, NELS(dep176), dep176, },
9333+ { NELS(dep179), dep179, NELS(dep178), dep178, },
9334+ { NELS(dep181), dep181, NELS(dep180), dep180, },
9335+ { NELS(dep183), dep183, NELS(dep182), dep182, },
9336+ { NELS(dep185), dep185, NELS(dep184), dep184, },
9337+ { NELS(dep186), dep186, NELS(dep0), dep0, },
9338+ { NELS(dep187), dep187, NELS(dep0), dep0, },
9339+ { NELS(dep188), dep188, NELS(dep0), dep0, },
9340+ { NELS(dep189), dep189, NELS(dep0), dep0, },
9341+ { NELS(dep190), dep190, NELS(dep0), dep0, },
9342+ { NELS(dep191), dep191, NELS(dep0), dep0, },
9343+ { NELS(dep192), dep192, NELS(dep0), dep0, },
9344+ { NELS(dep193), dep193, NELS(dep0), dep0, },
9345+ { NELS(dep195), dep195, NELS(dep194), dep194, },
9346+ { NELS(dep197), dep197, NELS(dep196), dep196, },
9347+ { NELS(dep199), dep199, NELS(dep198), dep198, },
9348+ { NELS(dep201), dep201, NELS(dep200), dep200, },
9349+ { NELS(dep202), dep202, NELS(dep0), dep0, },
9350+ { NELS(dep203), dep203, NELS(dep0), dep0, },
9351+ { NELS(dep204), dep204, NELS(dep0), dep0, },
9352+ { NELS(dep205), dep205, NELS(dep31), dep31, },
9353+ { NELS(dep206), dep206, NELS(dep31), dep31, },
9354+ { NELS(dep207), dep207, NELS(dep194), dep194, },
9355+ { NELS(dep208), dep208, NELS(dep0), dep0, },
9356+ { NELS(dep210), dep210, NELS(dep209), dep209, },
9357+ { NELS(dep211), dep211, NELS(dep0), dep0, },
9358+ { NELS(dep213), dep213, NELS(dep212), dep212, },
9359+ { NELS(dep214), dep214, NELS(dep212), dep212, },
9360+ { NELS(dep215), dep215, NELS(dep0), dep0, },
9361+ { NELS(dep213), dep213, NELS(dep216), dep216, },
9362+ { NELS(dep218), dep218, NELS(dep217), dep217, },
9363+ { NELS(dep219), dep219, NELS(dep217), dep217, },
9364+ { NELS(dep221), dep221, NELS(dep220), dep220, },
9365+ { NELS(dep223), dep223, NELS(dep222), dep222, },
9366+ { NELS(dep224), dep224, NELS(dep222), dep222, },
9367+ { NELS(dep225), dep225, NELS(dep222), dep222, },
9368+ { NELS(dep226), dep226, NELS(dep0), dep0, },
9369+ { NELS(dep227), dep227, NELS(dep222), dep222, },
9370+ { NELS(dep229), dep229, NELS(dep228), dep228, },
9371+ { NELS(dep230), dep230, NELS(dep62), dep62, },
9372+ { NELS(dep231), dep231, NELS(dep62), dep62, },
9373+ { NELS(dep233), dep233, NELS(dep232), dep232, },
9374+ { NELS(dep234), dep234, NELS(dep232), dep232, },
9375+ { NELS(dep233), dep233, NELS(dep235), dep235, },
9376+ { NELS(dep237), dep237, NELS(dep236), dep236, },
9377+ { NELS(dep238), dep238, NELS(dep236), dep236, },
9378+ { NELS(dep240), dep240, NELS(dep239), dep239, },
9379+ { NELS(dep241), dep241, NELS(dep239), dep239, },
9380+ { NELS(dep240), dep240, NELS(dep242), dep242, },
9381+ { NELS(dep243), dep243, NELS(dep217), dep217, },
9382+ { NELS(dep244), dep244, NELS(dep31), dep31, },
9383+ { NELS(dep245), dep245, NELS(dep31), dep31, },
9384+ { NELS(dep246), dep246, NELS(dep0), dep0, },
9385+ { NELS(dep247), dep247, NELS(dep0), dep0, },
9386+ { NELS(dep248), dep248, NELS(dep62), dep62, },
9387+ { NELS(dep249), dep249, NELS(dep222), dep222, },
9388+ { 0, NULL, 0, NULL, },
9389+ { NELS(dep251), dep251, NELS(dep250), dep250, },
9390+};
9391+
9392+static const struct ia64_completer_table
9393+completer_table[] = {
9394+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9395+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9396+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9397+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9398+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9399+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9400+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9401+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9402+ { 0x0, 0x0, 0, -1, -1, 0, 1, 88 },
9403+ { 0x0, 0x0, 0, -1, -1, 0, 1, 88 },
9404+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9405+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9406+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9407+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9408+ { 0x0, 0x0, 0, 576, -1, 0, 1, 6 },
9409+ { 0x0, 0x0, 0, 639, -1, 0, 1, 17 },
9410+ { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9411+ { 0x0, 0x0, 0, 738, -1, 0, 1, 17 },
9412+ { 0x0, 0x0, 0, 2164, -1, 0, 1, 10 },
9413+ { 0x0, 0x0, 0, -1, -1, 0, 1, 9 },
9414+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9415+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9416+ { 0x0, 0x0, 0, -1, -1, 0, 1, 13 },
9417+ { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
9418+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9419+ { 0x0, 0x0, 0, 2372, -1, 0, 1, 29 },
9420+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9421+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9422+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9423+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9424+ { 0x0, 0x0, 0, 1122, -1, 0, 1, 122 },
9425+ { 0x0, 0x0, 0, -1, -1, 0, 1, 44 },
9426+ { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
9427+ { 0x0, 0x0, 0, -1, -1, 0, 1, 78 },
9428+ { 0x0, 0x0, 0, 2212, -1, 0, 1, 29 },
9429+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9430+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9431+ { 0x0, 0x0, 0, 2439, -1, 0, 1, 29 },
9432+ { 0x0, 0x0, 0, 2216, -1, 0, 1, 29 },
9433+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9434+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9435+ { 0x0, 0x0, 0, 2218, -1, 0, 1, 29 },
9436+ { 0x0, 0x0, 0, 2448, -1, 0, 1, 29 },
9437+ { 0x0, 0x0, 0, 2451, -1, 0, 1, 29 },
9438+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9439+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9440+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9441+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9442+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9443+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9444+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9445+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9446+ { 0x0, 0x0, 0, 2473, -1, 0, 1, 29 },
9447+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9448+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9449+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9450+ { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9451+ { 0x0, 0x0, 0, 2476, -1, 0, 1, 29 },
9452+ { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9453+ { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9454+ { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9455+ { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9456+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9457+ { 0x0, 0x0, 0, -1, -1, 0, 1, 35 },
9458+ { 0x0, 0x0, 0, 2484, -1, 0, 1, 29 },
9459+ { 0x0, 0x0, 0, 1391, -1, 0, 1, 33 },
9460+ { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
9461+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9462+ { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9463+ { 0x0, 0x0, 0, -1, -1, 0, 1, 77 },
9464+ { 0x0, 0x0, 0, 1439, -1, 0, 1, 124 },
9465+ { 0x0, 0x0, 0, 1448, -1, 0, 1, 124 },
9466+ { 0x0, 0x0, 0, 1457, -1, 0, 1, 124 },
9467+ { 0x0, 0x0, 0, 1459, -1, 0, 1, 125 },
9468+ { 0x0, 0x0, 0, 1461, -1, 0, 1, 125 },
9469+ { 0x0, 0x0, 0, 1470, -1, 0, 1, 124 },
9470+ { 0x0, 0x0, 0, 1479, -1, 0, 1, 124 },
9471+ { 0x0, 0x0, 0, 1488, -1, 0, 1, 124 },
9472+ { 0x0, 0x0, 0, 1497, -1, 0, 1, 124 },
9473+ { 0x0, 0x0, 0, 1506, -1, 0, 1, 124 },
9474+ { 0x0, 0x0, 0, 1515, -1, 0, 1, 124 },
9475+ { 0x0, 0x0, 0, 1525, -1, 0, 1, 124 },
9476+ { 0x0, 0x0, 0, 1535, -1, 0, 1, 124 },
9477+ { 0x0, 0x0, 0, 1545, -1, 0, 1, 124 },
9478+ { 0x0, 0x0, 0, 1554, -1, 0, 1, 140 },
9479+ { 0x0, 0x0, 0, 1560, -1, 0, 1, 145 },
9480+ { 0x0, 0x0, 0, 1566, -1, 0, 1, 145 },
9481+ { 0x0, 0x0, 0, 1572, -1, 0, 1, 140 },
9482+ { 0x0, 0x0, 0, 1578, -1, 0, 1, 145 },
9483+ { 0x0, 0x0, 0, 1584, -1, 0, 1, 145 },
9484+ { 0x0, 0x0, 0, 1590, -1, 0, 1, 140 },
9485+ { 0x0, 0x0, 0, 1596, -1, 0, 1, 145 },
9486+ { 0x0, 0x0, 0, 1602, -1, 0, 1, 145 },
9487+ { 0x0, 0x0, 0, 1608, -1, 0, 1, 140 },
9488+ { 0x0, 0x0, 0, 1614, -1, 0, 1, 145 },
9489+ { 0x0, 0x0, 0, 1620, -1, 0, 1, 140 },
9490+ { 0x0, 0x0, 0, 1626, -1, 0, 1, 145 },
9491+ { 0x0, 0x0, 0, 1632, -1, 0, 1, 140 },
9492+ { 0x0, 0x0, 0, 1638, -1, 0, 1, 145 },
9493+ { 0x0, 0x0, 0, 1644, -1, 0, 1, 140 },
9494+ { 0x0, 0x0, 0, 1650, -1, 0, 1, 145 },
9495+ { 0x0, 0x0, 0, 1656, -1, 0, 1, 145 },
9496+ { 0x0, 0x0, 0, 1660, -1, 0, 1, 151 },
9497+ { 0x0, 0x0, 0, 1664, -1, 0, 1, 153 },
9498+ { 0x0, 0x0, 0, 1668, -1, 0, 1, 153 },
9499+ { 0x0, 0x0, 0, -1, -1, 0, 1, 79 },
9500+ { 0x0, 0x0, 0, 256, -1, 0, 1, 40 },
9501+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9502+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9503+ { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9504+ { 0x0, 0x0, 0, -1, -1, 0, 1, 67 },
9505+ { 0x1, 0x1, 0, 1148, -1, 20, 1, 67 },
9506+ { 0x0, 0x0, 0, -1, -1, 0, 1, 68 },
9507+ { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
9508+ { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
9509+ { 0x0, 0x0, 0, -1, -1, 0, 1, 70 },
9510+ { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
9511+ { 0x0, 0x0, 0, -1, -1, 0, 1, 72 },
9512+ { 0x0, 0x0, 0, -1, -1, 0, 1, 86 },
9513+ { 0x0, 0x0, 0, -1, -1, 0, 1, 87 },
9514+ { 0x0, 0x0, 0, -1, -1, 0, 1, 89 },
9515+ { 0x0, 0x0, 0, -1, -1, 0, 1, 90 },
9516+ { 0x0, 0x0, 0, -1, -1, 0, 1, 91 },
9517+ { 0x0, 0x0, 0, -1, -1, 0, 1, 92 },
9518+ { 0x0, 0x0, 0, -1, -1, 0, 1, 97 },
9519+ { 0x0, 0x0, 0, -1, -1, 0, 1, 98 },
9520+ { 0x0, 0x0, 0, -1, -1, 0, 1, 99 },
9521+ { 0x0, 0x0, 0, -1, -1, 0, 1, 100 },
9522+ { 0x0, 0x0, 0, -1, -1, 0, 1, 101 },
9523+ { 0x0, 0x0, 0, -1, -1, 0, 1, 102 },
9524+ { 0x0, 0x0, 0, -1, -1, 0, 1, 103 },
9525+ { 0x0, 0x0, 0, -1, -1, 0, 1, 106 },
9526+ { 0x0, 0x0, 0, -1, -1, 0, 1, 107 },
9527+ { 0x0, 0x0, 0, -1, -1, 0, 1, 108 },
9528+ { 0x0, 0x0, 0, -1, -1, 0, 1, 109 },
9529+ { 0x0, 0x0, 0, -1, -1, 0, 1, 110 },
9530+ { 0x0, 0x0, 0, -1, -1, 0, 1, 111 },
9531+ { 0x0, 0x0, 0, -1, -1, 0, 1, 112 },
9532+ { 0x0, 0x0, 0, -1, -1, 0, 1, 113 },
9533+ { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9534+ { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9535+ { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9536+ { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
9537+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9538+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9539+ { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9540+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9541+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9542+ { 0x0, 0x0, 0, 2824, -1, 0, 1, 0 },
9543+ { 0x0, 0x0, 0, 2825, -1, 0, 1, 0 },
9544+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9545+ { 0x0, 0x0, 0, 2176, -1, 0, 1, 0 },
9546+ { 0x0, 0x0, 0, 2177, -1, 0, 1, 0 },
9547+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9548+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9549+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9550+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9551+ { 0x0, 0x0, 0, 2839, -1, 0, 1, 0 },
9552+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9553+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9554+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9555+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9556+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9557+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9558+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9559+ { 0x0, 0x0, 0, 2840, -1, 0, 1, 0 },
9560+ { 0x0, 0x0, 0, 2841, -1, 0, 1, 0 },
9561+ { 0x0, 0x0, 0, 2842, -1, 0, 1, 0 },
9562+ { 0x0, 0x0, 0, 2843, -1, 0, 1, 0 },
9563+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9564+ { 0x0, 0x0, 0, 2826, -1, 0, 1, 0 },
9565+ { 0x0, 0x0, 0, 2827, -1, 0, 1, 0 },
9566+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9567+ { 0x0, 0x0, 0, -1, -1, 0, 1, 11 },
9568+ { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
9569+ { 0x0, 0x0, 0, -1, -1, 0, 1, 83 },
9570+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9571+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9572+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9573+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9574+ { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
9575+ { 0x0, 0x0, 0, 2845, -1, 0, 1, 0 },
9576+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9577+ { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
9578+ { 0x0, 0x0, 0, 1948, -1, 0, 1, 131 },
9579+ { 0x0, 0x0, 0, 1950, -1, 0, 1, 138 },
9580+ { 0x0, 0x0, 0, 1952, -1, 0, 1, 132 },
9581+ { 0x0, 0x0, 0, 1954, -1, 0, 1, 132 },
9582+ { 0x0, 0x0, 0, 1956, -1, 0, 1, 131 },
9583+ { 0x0, 0x0, 0, 1958, -1, 0, 1, 138 },
9584+ { 0x0, 0x0, 0, 1960, -1, 0, 1, 131 },
9585+ { 0x0, 0x0, 0, 1962, -1, 0, 1, 138 },
9586+ { 0x0, 0x0, 0, 1965, -1, 0, 1, 131 },
9587+ { 0x0, 0x0, 0, 1968, -1, 0, 1, 138 },
9588+ { 0x0, 0x0, 0, 1971, -1, 0, 1, 150 },
9589+ { 0x0, 0x0, 0, 1972, -1, 0, 1, 156 },
9590+ { 0x0, 0x0, 0, 1973, -1, 0, 1, 150 },
9591+ { 0x0, 0x0, 0, 1974, -1, 0, 1, 156 },
9592+ { 0x0, 0x0, 0, 1975, -1, 0, 1, 150 },
9593+ { 0x0, 0x0, 0, 1976, -1, 0, 1, 156 },
9594+ { 0x0, 0x0, 0, 1977, -1, 0, 1, 150 },
9595+ { 0x0, 0x0, 0, 1978, -1, 0, 1, 156 },
9596+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9597+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9598+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9599+ { 0x0, 0x0, 0, -1, -1, 0, 1, 82 },
9600+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9601+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9602+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9603+ { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
9604+ { 0x0, 0x0, 0, -1, -1, 0, 1, 118 },
9605+ { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
9606+ { 0x0, 0x0, 0, -1, -1, 0, 1, 119 },
9607+ { 0x0, 0x0, 0, 1669, -1, 0, 1, 136 },
9608+ { 0x0, 0x0, 0, 1670, -1, 0, 1, 136 },
9609+ { 0x0, 0x0, 0, 1671, -1, 0, 1, 136 },
9610+ { 0x0, 0x0, 0, 1672, -1, 0, 1, 136 },
9611+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9612+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9613+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9614+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9615+ { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9616+ { 0x0, 0x0, 1, 223, -1, 0, 1, 12 },
9617+ { 0x1, 0x1, 2, -1, -1, 27, 1, 12 },
9618+ { 0x0, 0x0, 3, -1, 1322, 0, 0, -1 },
9619+ { 0x0, 0x0, 3, -1, 1323, 0, 0, -1 },
9620+ { 0x1, 0x1, 3, 2715, 1432, 33, 1, 127 },
9621+ { 0x1, 0x1, 3, 2716, 1441, 33, 1, 127 },
9622+ { 0x1, 0x1, 3, 2717, 1450, 33, 1, 127 },
9623+ { 0x1, 0x1, 3, 2718, 1463, 33, 1, 127 },
9624+ { 0x1, 0x1, 3, 2719, 1472, 33, 1, 127 },
9625+ { 0x1, 0x1, 3, 2720, 1481, 33, 1, 127 },
9626+ { 0x1, 0x1, 3, 2721, 1490, 33, 1, 127 },
9627+ { 0x1, 0x1, 3, 2722, 1499, 33, 1, 127 },
9628+ { 0x1, 0x1, 3, 2723, 1508, 33, 1, 127 },
9629+ { 0x1, 0x1, 3, 2724, 1517, 33, 1, 127 },
9630+ { 0x1, 0x1, 3, 2725, 1527, 33, 1, 127 },
9631+ { 0x1, 0x1, 3, 2726, 1537, 33, 1, 127 },
9632+ { 0x1, 0x1, 3, 2727, 1550, 33, 1, 142 },
9633+ { 0x1, 0x1, 3, 2728, 1556, 33, 1, 147 },
9634+ { 0x1, 0x1, 3, 2729, 1562, 33, 1, 147 },
9635+ { 0x1, 0x1, 3, 2730, 1568, 33, 1, 142 },
9636+ { 0x1, 0x1, 3, 2731, 1574, 33, 1, 147 },
9637+ { 0x1, 0x1, 3, 2732, 1580, 33, 1, 147 },
9638+ { 0x1, 0x1, 3, 2733, 1586, 33, 1, 142 },
9639+ { 0x1, 0x1, 3, 2734, 1592, 33, 1, 147 },
9640+ { 0x1, 0x1, 3, 2735, 1598, 33, 1, 147 },
9641+ { 0x1, 0x1, 3, 2736, 1604, 33, 1, 142 },
9642+ { 0x1, 0x1, 3, 2737, 1610, 33, 1, 147 },
9643+ { 0x1, 0x1, 3, 2738, 1616, 33, 1, 142 },
9644+ { 0x1, 0x1, 3, 2739, 1622, 33, 1, 147 },
9645+ { 0x1, 0x1, 3, 2740, 1628, 33, 1, 142 },
9646+ { 0x1, 0x1, 3, 2741, 1634, 33, 1, 147 },
9647+ { 0x1, 0x1, 3, 2742, 1640, 33, 1, 142 },
9648+ { 0x1, 0x1, 3, 2743, 1646, 33, 1, 147 },
9649+ { 0x1, 0x1, 3, 2744, 1652, 33, 1, 147 },
9650+ { 0x1, 0x1, 3, -1, -1, 27, 1, 40 },
9651+ { 0x0, 0x0, 4, 2178, 1407, 0, 1, 135 },
9652+ { 0x0, 0x0, 4, 2179, 1409, 0, 1, 135 },
9653+ { 0x0, 0x0, 4, 2180, 1411, 0, 1, 134 },
9654+ { 0x0, 0x0, 4, 2181, 1413, 0, 1, 134 },
9655+ { 0x0, 0x0, 4, 2182, 1415, 0, 1, 134 },
9656+ { 0x0, 0x0, 4, 2183, 1417, 0, 1, 134 },
9657+ { 0x0, 0x0, 4, 2184, 1419, 0, 1, 134 },
9658+ { 0x0, 0x0, 4, 2185, 1421, 0, 1, 134 },
9659+ { 0x0, 0x0, 4, 2186, 1423, 0, 1, 134 },
9660+ { 0x0, 0x0, 4, 2187, 1425, 0, 1, 134 },
9661+ { 0x0, 0x0, 4, 2188, 1427, 0, 1, 136 },
9662+ { 0x0, 0x0, 4, 2189, 1429, 0, 1, 136 },
9663+ { 0x1, 0x1, 4, -1, 1436, 33, 1, 130 },
9664+ { 0x5, 0x5, 4, 534, 1435, 32, 1, 124 },
9665+ { 0x1, 0x1, 4, -1, 1445, 33, 1, 130 },
9666+ { 0x5, 0x5, 4, 535, 1444, 32, 1, 124 },
9667+ { 0x1, 0x1, 4, -1, 1454, 33, 1, 130 },
9668+ { 0x5, 0x5, 4, 536, 1453, 32, 1, 124 },
9669+ { 0x1, 0x1, 4, -1, 1458, 32, 1, 125 },
9670+ { 0x1, 0x1, 4, -1, 1460, 32, 1, 125 },
9671+ { 0x1, 0x1, 4, -1, 1467, 33, 1, 130 },
9672+ { 0x5, 0x5, 4, 537, 1466, 32, 1, 124 },
9673+ { 0x1, 0x1, 4, -1, 1476, 33, 1, 130 },
9674+ { 0x5, 0x5, 4, 538, 1475, 32, 1, 124 },
9675+ { 0x1, 0x1, 4, -1, 1485, 33, 1, 130 },
9676+ { 0x5, 0x5, 4, 539, 1484, 32, 1, 124 },
9677+ { 0x1, 0x1, 4, -1, 1494, 33, 1, 130 },
9678+ { 0x5, 0x5, 4, 540, 1493, 32, 1, 124 },
9679+ { 0x1, 0x1, 4, -1, 1503, 33, 1, 130 },
9680+ { 0x5, 0x5, 4, 541, 1502, 32, 1, 124 },
9681+ { 0x1, 0x1, 4, -1, 1512, 33, 1, 130 },
9682+ { 0x5, 0x5, 4, 542, 1511, 32, 1, 124 },
9683+ { 0x1, 0x1, 4, -1, 1522, 33, 1, 130 },
9684+ { 0x5, 0x5, 4, 1018, 1520, 32, 1, 124 },
9685+ { 0x1, 0x1, 4, -1, 1532, 33, 1, 130 },
9686+ { 0x5, 0x5, 4, 1019, 1530, 32, 1, 124 },
9687+ { 0x1, 0x1, 4, -1, 1542, 33, 1, 130 },
9688+ { 0x5, 0x5, 4, 1020, 1540, 32, 1, 124 },
9689+ { 0x1, 0x21, 10, 1991, -1, 33, 1, 3 },
9690+ { 0x200001, 0x200001, 10, 1992, -1, 12, 1, 3 },
9691+ { 0x1, 0x21, 10, 410, -1, 33, 1, 3 },
9692+ { 0x200001, 0x200001, 10, 2048, -1, 12, 1, 3 },
9693+ { 0x0, 0x0, 10, -1, 2049, 0, 0, -1 },
9694+ { 0x0, 0x0, 10, -1, 2050, 0, 0, -1 },
9695+ { 0x0, 0x0, 10, 1995, -1, 0, 1, 3 },
9696+ { 0x1, 0x1, 10, 1996, -1, 12, 1, 3 },
9697+ { 0x1, 0x1, 10, 1997, -1, 33, 1, 3 },
9698+ { 0x200001, 0x200001, 10, 1998, -1, 12, 1, 3 },
9699+ { 0x0, 0x0, 10, 420, -1, 0, 1, 3 },
9700+ { 0x1, 0x1, 10, 2054, -1, 12, 1, 3 },
9701+ { 0x1, 0x1, 10, 424, -1, 33, 1, 3 },
9702+ { 0x200001, 0x200001, 10, 2056, -1, 12, 1, 3 },
9703+ { 0x0, 0x0, 10, 428, -1, 0, 1, 3 },
9704+ { 0x1, 0x1, 10, 2058, -1, 12, 1, 3 },
9705+ { 0x1, 0x1, 10, 432, -1, 33, 1, 3 },
9706+ { 0x200001, 0x200001, 10, 2060, -1, 12, 1, 3 },
9707+ { 0x0, 0x0, 10, 436, -1, 0, 1, 3 },
9708+ { 0x1, 0x1, 10, 2062, -1, 12, 1, 3 },
9709+ { 0x1, 0x1, 10, 440, -1, 33, 1, 3 },
9710+ { 0x200001, 0x200001, 10, 2064, -1, 12, 1, 3 },
9711+ { 0x1, 0x21, 10, 2011, -1, 33, 1, 3 },
9712+ { 0x200001, 0x200001, 10, 2012, -1, 12, 1, 3 },
9713+ { 0x1, 0x21, 10, 450, -1, 33, 1, 3 },
9714+ { 0x200001, 0x200001, 10, 2070, -1, 12, 1, 3 },
9715+ { 0x0, 0x0, 10, -1, 2071, 0, 0, -1 },
9716+ { 0x0, 0x0, 10, -1, 2072, 0, 0, -1 },
9717+ { 0x0, 0x0, 10, -1, 2075, 0, 0, -1 },
9718+ { 0x0, 0x0, 10, -1, 2076, 0, 0, -1 },
9719+ { 0x0, 0x0, 10, -1, 2077, 0, 0, -1 },
9720+ { 0x0, 0x0, 10, -1, 2078, 0, 0, -1 },
9721+ { 0x0, 0x0, 10, -1, 2079, 0, 0, -1 },
9722+ { 0x0, 0x0, 10, -1, 2080, 0, 0, -1 },
9723+ { 0x0, 0x0, 10, -1, 2081, 0, 0, -1 },
9724+ { 0x0, 0x0, 10, -1, 2082, 0, 0, -1 },
9725+ { 0x0, 0x0, 10, -1, 2083, 0, 0, -1 },
9726+ { 0x0, 0x0, 10, -1, 2084, 0, 0, -1 },
9727+ { 0x0, 0x0, 10, -1, 2085, 0, 0, -1 },
9728+ { 0x0, 0x0, 10, -1, 2086, 0, 0, -1 },
9729+ { 0x0, 0x0, 10, -1, 2087, 0, 0, -1 },
9730+ { 0x0, 0x0, 10, -1, 2088, 0, 0, -1 },
9731+ { 0x0, 0x0, 10, -1, 2089, 0, 0, -1 },
9732+ { 0x0, 0x0, 10, -1, 2090, 0, 0, -1 },
9733+ { 0x0, 0x0, 10, -1, 2091, 0, 0, -1 },
9734+ { 0x0, 0x0, 10, -1, 2092, 0, 0, -1 },
9735+ { 0x0, 0x0, 10, -1, 2093, 0, 0, -1 },
9736+ { 0x0, 0x0, 10, -1, 2094, 0, 0, -1 },
9737+ { 0x1, 0x21, 10, 2015, -1, 33, 1, 3 },
9738+ { 0x200001, 0x200001, 10, 2016, -1, 12, 1, 3 },
9739+ { 0x1, 0x21, 10, 458, -1, 33, 1, 3 },
9740+ { 0x200001, 0x200001, 10, 2096, -1, 12, 1, 3 },
9741+ { 0x0, 0x0, 10, -1, 2097, 0, 0, -1 },
9742+ { 0x0, 0x0, 10, -1, 2098, 0, 0, -1 },
9743+ { 0x0, 0x0, 10, 2019, -1, 0, 1, 3 },
9744+ { 0x1, 0x1, 10, 2020, -1, 12, 1, 3 },
9745+ { 0x1, 0x1, 10, 2021, -1, 33, 1, 3 },
9746+ { 0x200001, 0x200001, 10, 2022, -1, 12, 1, 3 },
9747+ { 0x0, 0x0, 10, 468, -1, 0, 1, 3 },
9748+ { 0x1, 0x1, 10, 2102, -1, 12, 1, 3 },
9749+ { 0x1, 0x1, 10, 472, -1, 33, 1, 3 },
9750+ { 0x200001, 0x200001, 10, 2104, -1, 12, 1, 3 },
9751+ { 0x0, 0x0, 10, 476, -1, 0, 1, 3 },
9752+ { 0x1, 0x1, 10, 2106, -1, 12, 1, 3 },
9753+ { 0x1, 0x1, 10, 480, -1, 33, 1, 3 },
9754+ { 0x200001, 0x200001, 10, 2108, -1, 12, 1, 3 },
9755+ { 0x0, 0x0, 10, 484, -1, 0, 1, 3 },
9756+ { 0x1, 0x1, 10, 2110, -1, 12, 1, 3 },
9757+ { 0x1, 0x1, 10, 488, -1, 33, 1, 3 },
9758+ { 0x200001, 0x200001, 10, 2112, -1, 12, 1, 3 },
9759+ { 0x1, 0x21, 10, 2035, -1, 33, 1, 3 },
9760+ { 0x200001, 0x200001, 10, 2036, -1, 12, 1, 3 },
9761+ { 0x1, 0x21, 10, 498, -1, 33, 1, 3 },
9762+ { 0x200001, 0x200001, 10, 2118, -1, 12, 1, 3 },
9763+ { 0x0, 0x0, 10, -1, 2119, 0, 0, -1 },
9764+ { 0x0, 0x0, 10, -1, 2120, 0, 0, -1 },
9765+ { 0x0, 0x0, 10, -1, 2123, 0, 0, -1 },
9766+ { 0x0, 0x0, 10, -1, 2124, 0, 0, -1 },
9767+ { 0x0, 0x0, 10, -1, 2125, 0, 0, -1 },
9768+ { 0x0, 0x0, 10, -1, 2126, 0, 0, -1 },
9769+ { 0x0, 0x0, 10, -1, 2127, 0, 0, -1 },
9770+ { 0x0, 0x0, 10, -1, 2128, 0, 0, -1 },
9771+ { 0x0, 0x0, 10, -1, 2129, 0, 0, -1 },
9772+ { 0x0, 0x0, 10, -1, 2130, 0, 0, -1 },
9773+ { 0x0, 0x0, 10, -1, 2131, 0, 0, -1 },
9774+ { 0x0, 0x0, 10, -1, 2132, 0, 0, -1 },
9775+ { 0x0, 0x0, 10, -1, 2133, 0, 0, -1 },
9776+ { 0x0, 0x0, 10, -1, 2134, 0, 0, -1 },
9777+ { 0x0, 0x0, 10, -1, 2135, 0, 0, -1 },
9778+ { 0x0, 0x0, 10, -1, 2136, 0, 0, -1 },
9779+ { 0x0, 0x0, 10, -1, 2137, 0, 0, -1 },
9780+ { 0x0, 0x0, 10, -1, 2138, 0, 0, -1 },
9781+ { 0x0, 0x0, 10, -1, 2139, 0, 0, -1 },
9782+ { 0x0, 0x0, 10, -1, 2140, 0, 0, -1 },
9783+ { 0x0, 0x0, 10, -1, 2141, 0, 0, -1 },
9784+ { 0x0, 0x0, 10, -1, 2142, 0, 0, -1 },
9785+ { 0x1, 0x1, 10, 2039, -1, 36, 1, 3 },
9786+ { 0x1000001, 0x1000001, 10, 2040, -1, 12, 1, 3 },
9787+ { 0x1, 0x1, 10, 2041, -1, 36, 1, 3 },
9788+ { 0x1000001, 0x1000001, 10, 2042, -1, 12, 1, 3 },
9789+ { 0x0, 0x0, 10, -1, 2143, 0, 0, -1 },
9790+ { 0x0, 0x0, 10, -1, 2145, 0, 0, -1 },
9791+ { 0x0, 0x0, 10, -1, 2147, 0, 0, -1 },
9792+ { 0x0, 0x0, 10, -1, 2149, 0, 0, -1 },
9793+ { 0x1, 0x1, 10, 2043, -1, 36, 1, 3 },
9794+ { 0x1000001, 0x1000001, 10, 2044, -1, 12, 1, 3 },
9795+ { 0x1, 0x1, 10, 2045, -1, 36, 1, 3 },
9796+ { 0x1000001, 0x1000001, 10, 2046, -1, 12, 1, 3 },
9797+ { 0x0, 0x0, 10, -1, 2151, 0, 0, -1 },
9798+ { 0x0, 0x0, 10, -1, 2153, 0, 0, -1 },
9799+ { 0x0, 0x0, 10, -1, 2155, 0, 0, -1 },
9800+ { 0x0, 0x0, 10, -1, 2157, 0, 0, -1 },
9801+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9802+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9803+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9804+ { 0x200001, 0x4200001, 11, 1993, -1, 12, 1, 3 },
9805+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9806+ { 0x1, 0x1, 11, 298, -1, 33, 1, 3 },
9807+ { 0x0, 0x0, 11, 2051, -1, 0, 1, 3 },
9808+ { 0x1, 0x1, 11, 2052, -1, 12, 1, 3 },
9809+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9810+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9811+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9812+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9813+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9814+ { 0x1, 0x1, 11, 1999, -1, 12, 1, 3 },
9815+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9816+ { 0x0, 0x0, 11, 306, -1, 0, 1, 3 },
9817+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9818+ { 0x200001, 0x200001, 11, 2001, -1, 12, 1, 3 },
9819+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9820+ { 0x1, 0x1, 11, 308, -1, 33, 1, 3 },
9821+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9822+ { 0x1, 0x1, 11, 2003, -1, 12, 1, 3 },
9823+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9824+ { 0x0, 0x0, 11, 310, -1, 0, 1, 3 },
9825+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9826+ { 0x200001, 0x200001, 11, 2005, -1, 12, 1, 3 },
9827+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9828+ { 0x1, 0x1, 11, 312, -1, 33, 1, 3 },
9829+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9830+ { 0x1, 0x1, 11, 2007, -1, 12, 1, 3 },
9831+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9832+ { 0x0, 0x0, 11, 314, -1, 0, 1, 3 },
9833+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9834+ { 0x200001, 0x200001, 11, 2009, -1, 12, 1, 3 },
9835+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9836+ { 0x1, 0x1, 11, 316, -1, 33, 1, 3 },
9837+ { 0x0, 0x0, 11, 2065, -1, 0, 1, 3 },
9838+ { 0x1, 0x1, 11, 2066, -1, 12, 1, 3 },
9839+ { 0x1, 0x1, 11, 2067, -1, 33, 1, 3 },
9840+ { 0x200001, 0x200001, 11, 2068, -1, 12, 1, 3 },
9841+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9842+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9843+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9844+ { 0x200001, 0x4200001, 11, 2013, -1, 12, 1, 3 },
9845+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9846+ { 0x1, 0x1, 11, 320, -1, 33, 1, 3 },
9847+ { 0x0, 0x0, 11, 2073, -1, 0, 1, 3 },
9848+ { 0x1, 0x1, 11, 2074, -1, 12, 1, 3 },
9849+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9850+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9851+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9852+ { 0x200001, 0x4200001, 11, 2017, -1, 12, 1, 3 },
9853+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9854+ { 0x1, 0x1, 11, 346, -1, 33, 1, 3 },
9855+ { 0x0, 0x0, 11, 2099, -1, 0, 1, 3 },
9856+ { 0x1, 0x1, 11, 2100, -1, 12, 1, 3 },
9857+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9858+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9859+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9860+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9861+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9862+ { 0x1, 0x1, 11, 2023, -1, 12, 1, 3 },
9863+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9864+ { 0x0, 0x0, 11, 354, -1, 0, 1, 3 },
9865+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9866+ { 0x200001, 0x200001, 11, 2025, -1, 12, 1, 3 },
9867+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9868+ { 0x1, 0x1, 11, 356, -1, 33, 1, 3 },
9869+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9870+ { 0x1, 0x1, 11, 2027, -1, 12, 1, 3 },
9871+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9872+ { 0x0, 0x0, 11, 358, -1, 0, 1, 3 },
9873+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9874+ { 0x200001, 0x200001, 11, 2029, -1, 12, 1, 3 },
9875+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9876+ { 0x1, 0x1, 11, 360, -1, 33, 1, 3 },
9877+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9878+ { 0x1, 0x1, 11, 2031, -1, 12, 1, 3 },
9879+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9880+ { 0x0, 0x0, 11, 362, -1, 0, 1, 3 },
9881+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9882+ { 0x200001, 0x200001, 11, 2033, -1, 12, 1, 3 },
9883+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9884+ { 0x1, 0x1, 11, 364, -1, 33, 1, 3 },
9885+ { 0x0, 0x0, 11, 2113, -1, 0, 1, 3 },
9886+ { 0x1, 0x1, 11, 2114, -1, 12, 1, 3 },
9887+ { 0x1, 0x1, 11, 2115, -1, 33, 1, 3 },
9888+ { 0x200001, 0x200001, 11, 2116, -1, 12, 1, 3 },
9889+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9890+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9891+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9892+ { 0x200001, 0x4200001, 11, 2037, -1, 12, 1, 3 },
9893+ { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9894+ { 0x1, 0x1, 11, 368, -1, 33, 1, 3 },
9895+ { 0x0, 0x0, 11, 2121, -1, 0, 1, 3 },
9896+ { 0x1, 0x1, 11, 2122, -1, 12, 1, 3 },
9897+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9898+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9899+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9900+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9901+ { 0x1, 0x1, 11, 2144, -1, 36, 1, 3 },
9902+ { 0x1000001, 0x1000001, 11, 2146, -1, 12, 1, 3 },
9903+ { 0x1, 0x1, 11, 2148, -1, 36, 1, 3 },
9904+ { 0x1000001, 0x1000001, 11, 2150, -1, 12, 1, 3 },
9905+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9906+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9907+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9908+ { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9909+ { 0x1, 0x1, 11, 2152, -1, 36, 1, 3 },
9910+ { 0x1000001, 0x1000001, 11, 2154, -1, 12, 1, 3 },
9911+ { 0x1, 0x1, 11, 2156, -1, 36, 1, 3 },
9912+ { 0x1000001, 0x1000001, 11, 2158, -1, 12, 1, 3 },
9913+ { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9914+ { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9915+ { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9916+ { 0x1, 0x1, 13, 270, 1434, 34, 1, 124 },
9917+ { 0x1, 0x1, 13, 272, 1443, 34, 1, 124 },
9918+ { 0x1, 0x1, 13, 274, 1452, 34, 1, 124 },
9919+ { 0x1, 0x1, 13, 278, 1465, 34, 1, 124 },
9920+ { 0x1, 0x1, 13, 280, 1474, 34, 1, 124 },
9921+ { 0x1, 0x1, 13, 282, 1483, 34, 1, 124 },
9922+ { 0x1, 0x1, 13, 284, 1492, 34, 1, 124 },
9923+ { 0x1, 0x1, 13, 286, 1501, 34, 1, 124 },
9924+ { 0x1, 0x1, 13, 288, 1510, 34, 1, 124 },
9925+ { 0x1, 0x1, 13, 290, 1519, 34, 1, 124 },
9926+ { 0x1, 0x1, 13, 292, 1529, 34, 1, 124 },
9927+ { 0x1, 0x1, 13, 294, 1539, 34, 1, 124 },
9928+ { 0x0, 0x0, 19, -1, 777, 0, 0, -1 },
9929+ { 0x0, 0x0, 19, -1, 778, 0, 0, -1 },
9930+ { 0x0, 0x0, 19, -1, 779, 0, 0, -1 },
9931+ { 0x0, 0x0, 19, -1, 780, 0, 0, -1 },
9932+ { 0x0, 0x0, 19, -1, 781, 0, 0, -1 },
9933+ { 0x0, 0x0, 19, -1, 782, 0, 0, -1 },
9934+ { 0x0, 0x0, 19, -1, 783, 0, 0, -1 },
9935+ { 0x0, 0x0, 19, -1, 784, 0, 0, -1 },
9936+ { 0x0, 0x0, 19, -1, 785, 0, 0, -1 },
9937+ { 0x0, 0x0, 19, -1, 786, 0, 0, -1 },
9938+ { 0x0, 0x0, 19, -1, 787, 0, 0, -1 },
9939+ { 0x0, 0x0, 19, -1, 788, 0, 0, -1 },
9940+ { 0x0, 0x0, 19, -1, 789, 0, 0, -1 },
9941+ { 0x0, 0x0, 19, -1, 790, 0, 0, -1 },
9942+ { 0x0, 0x0, 19, -1, 791, 0, 0, -1 },
9943+ { 0x0, 0x0, 19, -1, 792, 0, 0, -1 },
9944+ { 0x0, 0x0, 19, -1, 793, 0, 0, -1 },
9945+ { 0x0, 0x0, 19, -1, 794, 0, 0, -1 },
9946+ { 0x0, 0x0, 19, -1, 795, 0, 0, -1 },
9947+ { 0x0, 0x0, 19, -1, 796, 0, 0, -1 },
9948+ { 0x0, 0x0, 19, -1, 797, 0, 0, -1 },
9949+ { 0x0, 0x0, 19, -1, 798, 0, 0, -1 },
9950+ { 0x0, 0x0, 19, -1, 799, 0, 0, -1 },
9951+ { 0x0, 0x0, 19, -1, 800, 0, 0, -1 },
9952+ { 0x0, 0x0, 19, -1, 801, 0, 0, -1 },
9953+ { 0x0, 0x0, 19, -1, 802, 0, 0, -1 },
9954+ { 0x0, 0x0, 19, -1, 803, 0, 0, -1 },
9955+ { 0x0, 0x0, 19, -1, 804, 0, 0, -1 },
9956+ { 0x0, 0x0, 19, -1, 805, 0, 0, -1 },
9957+ { 0x0, 0x0, 19, -1, 806, 0, 0, -1 },
9958+ { 0x0, 0x0, 20, -1, 2793, 0, 0, -1 },
9959+ { 0x0, 0x0, 20, -1, 2794, 0, 0, -1 },
9960+ { 0x0, 0x0, 20, -1, 2809, 0, 0, -1 },
9961+ { 0x0, 0x0, 20, -1, 2810, 0, 0, -1 },
9962+ { 0x0, 0x0, 20, -1, 2815, 0, 0, -1 },
9963+ { 0x0, 0x0, 20, -1, 2816, 0, 0, -1 },
9964+ { 0x0, 0x0, 21, 813, 2805, 0, 0, -1 },
9965+ { 0x0, 0x0, 21, 814, 2807, 0, 0, -1 },
9966+ { 0x0, 0x0, 23, -1, 2803, 0, 0, -1 },
9967+ { 0x0, 0x0, 23, -1, 2804, 0, 0, -1 },
9968+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9969+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9970+ { 0x1, 0x1, 24, 1254, -1, 35, 1, 6 },
9971+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9972+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9973+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9974+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9975+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9976+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9977+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9978+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9979+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9980+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9981+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9982+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9983+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9984+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9985+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9986+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9987+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9988+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9989+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9990+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9991+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9992+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9993+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9994+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9995+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9996+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9997+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9998+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9999+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10000+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10001+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10002+ { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10003+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10004+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10005+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10006+ { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10007+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10008+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10009+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10010+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10011+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10012+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10013+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10014+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10015+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10016+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10017+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10018+ { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10019+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10020+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10021+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10022+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10023+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10024+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10025+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10026+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10027+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10028+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10029+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10030+ { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10031+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10032+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10033+ { 0x1, 0x1, 24, 1275, -1, 35, 1, 17 },
10034+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10035+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10036+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10037+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10038+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10039+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10040+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10041+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10042+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10043+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10044+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10045+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10046+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10047+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10048+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10049+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10050+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10051+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10052+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10053+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10054+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10055+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10056+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10057+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10058+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10059+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10060+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10061+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10062+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10063+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10064+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10065+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10066+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10067+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10068+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10069+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10070+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10071+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10072+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10073+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10074+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10075+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10076+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10077+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10078+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10079+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10080+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10081+ { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10082+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10083+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10084+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10085+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10086+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10087+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10088+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10089+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10090+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10091+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10092+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10093+ { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10094+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10095+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10096+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10097+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10098+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10099+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10100+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10101+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10102+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10103+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10104+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10105+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10106+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10107+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10108+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10109+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10110+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10111+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10112+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10113+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10114+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10115+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10116+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10117+ { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10118+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10119+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10120+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10121+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10122+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10123+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10124+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10125+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10126+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10127+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10128+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10129+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10130+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10131+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10132+ { 0x1, 0x1, 24, 1308, -1, 35, 1, 17 },
10133+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10134+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10135+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10136+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10137+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10138+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10139+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10140+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10141+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10142+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10143+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10144+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10145+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10146+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10147+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10148+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10149+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10150+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10151+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10152+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10153+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10154+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10155+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10156+ { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10157+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10158+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10159+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10160+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10161+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10162+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10163+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10164+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10165+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10166+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10167+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10168+ { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10169+ { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
10170+ { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
10171+ { 0x1, 0x1, 24, 1324, 1437, 35, 1, 130 },
10172+ { 0x1, 0x1, 24, 1325, 1446, 35, 1, 130 },
10173+ { 0x1, 0x1, 24, 1326, 1455, 35, 1, 130 },
10174+ { 0x1, 0x1, 24, 1327, 1468, 35, 1, 130 },
10175+ { 0x1, 0x1, 24, 1328, 1477, 35, 1, 130 },
10176+ { 0x1, 0x1, 24, 1329, 1486, 35, 1, 130 },
10177+ { 0x1, 0x1, 24, 1330, 1495, 35, 1, 130 },
10178+ { 0x1, 0x1, 24, 1331, 1504, 35, 1, 130 },
10179+ { 0x1, 0x1, 24, 1332, 1513, 35, 1, 130 },
10180+ { 0x1, 0x1, 24, 1333, 1523, 35, 1, 130 },
10181+ { 0x1, 0x1, 24, 1334, 1533, 35, 1, 130 },
10182+ { 0x1, 0x1, 24, 1335, 1543, 35, 1, 130 },
10183+ { 0x1, 0x1, 24, 1336, 1552, 35, 1, 144 },
10184+ { 0x1, 0x1, 24, 1337, 1558, 35, 1, 149 },
10185+ { 0x1, 0x1, 24, 1338, 1564, 35, 1, 149 },
10186+ { 0x1, 0x1, 24, 1339, 1570, 35, 1, 144 },
10187+ { 0x1, 0x1, 24, 1340, 1576, 35, 1, 149 },
10188+ { 0x1, 0x1, 24, 1341, 1582, 35, 1, 149 },
10189+ { 0x1, 0x1, 24, 1342, 1588, 35, 1, 144 },
10190+ { 0x1, 0x1, 24, 1343, 1594, 35, 1, 149 },
10191+ { 0x1, 0x1, 24, 1344, 1600, 35, 1, 149 },
10192+ { 0x1, 0x1, 24, 1345, 1606, 35, 1, 144 },
10193+ { 0x1, 0x1, 24, 1346, 1612, 35, 1, 149 },
10194+ { 0x1, 0x1, 24, 1347, 1618, 35, 1, 144 },
10195+ { 0x1, 0x1, 24, 1348, 1624, 35, 1, 149 },
10196+ { 0x1, 0x1, 24, 1349, 1630, 35, 1, 144 },
10197+ { 0x1, 0x1, 24, 1350, 1636, 35, 1, 149 },
10198+ { 0x1, 0x1, 24, 1351, 1642, 35, 1, 144 },
10199+ { 0x1, 0x1, 24, 1352, 1648, 35, 1, 149 },
10200+ { 0x1, 0x1, 24, 1353, 1654, 35, 1, 149 },
10201+ { 0x0, 0x0, 33, 2787, 2785, 0, 0, -1 },
10202+ { 0x0, 0x0, 33, 2790, 2788, 0, 0, -1 },
10203+ { 0x0, 0x0, 33, 2796, 2795, 0, 0, -1 },
10204+ { 0x0, 0x0, 33, 2798, 2797, 0, 0, -1 },
10205+ { 0x0, 0x0, 33, 2812, 2811, 0, 0, -1 },
10206+ { 0x0, 0x0, 33, 2814, 2813, 0, 0, -1 },
10207+ { 0x0, 0x0, 35, -1, 2806, 0, 0, -1 },
10208+ { 0x0, 0x0, 35, -1, 2808, 0, 0, -1 },
10209+ { 0x1, 0x1, 38, -1, 2256, 37, 1, 29 },
10210+ { 0x1, 0x1, 38, -1, 2315, 37, 1, 29 },
10211+ { 0x0, 0x0, 38, -1, 2318, 0, 0, -1 },
10212+ { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10213+ { 0x1, 0x1, 38, -1, 2323, 37, 1, 29 },
10214+ { 0x0, 0x0, 38, -1, 2326, 0, 0, -1 },
10215+ { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10216+ { 0x0, 0x0, 38, -1, 2329, 0, 0, -1 },
10217+ { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10218+ { 0x1, 0x1, 38, -1, 2332, 37, 1, 29 },
10219+ { 0x1, 0x1, 38, -1, 2335, 37, 1, 29 },
10220+ { 0x1, 0x1, 38, -1, 2368, 37, 1, 29 },
10221+ { 0x3, 0x3, 38, -1, -1, 30, 1, 137 },
10222+ { 0x0, 0x0, 38, 1124, -1, 0, 1, 95 },
10223+ { 0x0, 0x0, 38, -1, -1, 0, 1, 104 },
10224+ { 0x0, 0x0, 38, 1130, -1, 0, 1, 116 },
10225+ { 0x3, 0x3, 38, -1, -1, 30, 1, 155 },
10226+ { 0x0, 0x0, 38, 1131, -1, 0, 1, 40 },
10227+ { 0x0, 0x0, 40, -1, 955, 0, 0, -1 },
10228+ { 0x0, 0x0, 40, -1, 963, 0, 0, -1 },
10229+ { 0x0, 0x0, 40, 1133, 959, 0, 0, -1 },
10230+ { 0x3, 0x3, 40, -1, 604, 33, 1, 6 },
10231+ { 0x18000001, 0x18000001, 40, -1, 612, 6, 1, 7 },
10232+ { 0x3, 0x3, 40, 1134, 608, 33, 1, 6 },
10233+ { 0x0, 0x0, 40, -1, 967, 0, 0, -1 },
10234+ { 0x3, 0x3, 40, -1, 624, 33, 1, 8 },
10235+ { 0x0, 0x0, 40, -1, 971, 0, 0, -1 },
10236+ { 0x3, 0x3, 40, -1, 636, 33, 1, 15 },
10237+ { 0x0, 0x0, 40, -1, 976, 0, 0, -1 },
10238+ { 0x0, 0x0, 40, -1, 980, 0, 0, -1 },
10239+ { 0x3, 0x3, 40, -1, 659, 33, 1, 17 },
10240+ { 0x3, 0x3, 40, -1, 663, 33, 1, 17 },
10241+ { 0x0, 0x0, 40, -1, 984, 0, 0, -1 },
10242+ { 0x0, 0x0, 40, -1, 988, 0, 0, -1 },
10243+ { 0x3, 0x3, 40, -1, 683, 33, 1, 18 },
10244+ { 0x18000001, 0x18000001, 40, -1, 687, 6, 1, 18 },
10245+ { 0x0, 0x0, 40, -1, 992, 0, 0, -1 },
10246+ { 0x3, 0x3, 40, -1, 699, 33, 1, 19 },
10247+ { 0x0, 0x0, 40, -1, 996, 0, 0, -1 },
10248+ { 0x0, 0x0, 40, -1, 1000, 0, 0, -1 },
10249+ { 0x3, 0x3, 40, -1, 719, 33, 1, 20 },
10250+ { 0x18000001, 0x18000001, 40, -1, 723, 6, 1, 20 },
10251+ { 0x0, 0x0, 40, -1, 1004, 0, 0, -1 },
10252+ { 0x3, 0x3, 40, -1, 735, 33, 1, 21 },
10253+ { 0x0, 0x0, 40, -1, 1009, 0, 0, -1 },
10254+ { 0x0, 0x0, 40, -1, 1013, 0, 0, -1 },
10255+ { 0x3, 0x3, 40, -1, 758, 33, 1, 17 },
10256+ { 0x3, 0x3, 40, -1, 762, 33, 1, 17 },
10257+ { 0x0, 0x0, 40, -1, 1017, 0, 0, -1 },
10258+ { 0x3, 0x3, 40, -1, 774, 33, 1, 21 },
10259+ { 0x0, 0x0, 41, 833, 954, 0, 0, -1 },
10260+ { 0x0, 0x0, 41, 834, 962, 0, 0, -1 },
10261+ { 0x0, 0x0, 41, 835, 958, 0, 0, -1 },
10262+ { 0x1, 0x1, 41, 836, 603, 34, 1, 6 },
10263+ { 0x10000001, 0x10000001, 41, 837, 611, 6, 1, 7 },
10264+ { 0x1, 0x1, 41, 838, 607, 34, 1, 6 },
10265+ { 0x0, 0x0, 41, 839, 966, 0, 0, -1 },
10266+ { 0x1, 0x1, 41, 840, 623, 34, 1, 8 },
10267+ { 0x0, 0x0, 41, 841, 970, 0, 0, -1 },
10268+ { 0x1, 0x1, 41, 842, 635, 34, 1, 15 },
10269+ { 0x0, 0x0, 41, 843, 975, 0, 0, -1 },
10270+ { 0x0, 0x0, 41, 844, 979, 0, 0, -1 },
10271+ { 0x1, 0x1, 41, 845, 658, 34, 1, 17 },
10272+ { 0x1, 0x1, 41, 846, 662, 34, 1, 17 },
10273+ { 0x0, 0x0, 41, 847, 983, 0, 0, -1 },
10274+ { 0x0, 0x0, 41, 848, 987, 0, 0, -1 },
10275+ { 0x1, 0x1, 41, 849, 682, 34, 1, 18 },
10276+ { 0x10000001, 0x10000001, 41, 850, 686, 6, 1, 18 },
10277+ { 0x0, 0x0, 41, 851, 991, 0, 0, -1 },
10278+ { 0x1, 0x1, 41, 852, 698, 34, 1, 19 },
10279+ { 0x0, 0x0, 41, 853, 995, 0, 0, -1 },
10280+ { 0x0, 0x0, 41, 854, 999, 0, 0, -1 },
10281+ { 0x1, 0x1, 41, 855, 718, 34, 1, 20 },
10282+ { 0x10000001, 0x10000001, 41, 856, 722, 6, 1, 20 },
10283+ { 0x0, 0x0, 41, 857, 1003, 0, 0, -1 },
10284+ { 0x1, 0x1, 41, 858, 734, 34, 1, 21 },
10285+ { 0x0, 0x0, 41, 859, 1008, 0, 0, -1 },
10286+ { 0x0, 0x0, 41, 860, 1012, 0, 0, -1 },
10287+ { 0x1, 0x1, 41, 861, 757, 34, 1, 17 },
10288+ { 0x1, 0x1, 41, 862, 761, 34, 1, 17 },
10289+ { 0x0, 0x0, 41, 863, 1016, 0, 0, -1 },
10290+ { 0x1, 0x1, 41, 864, 773, 34, 1, 21 },
10291+ { 0x800001, 0x800001, 41, -1, 1138, 4, 1, 16 },
10292+ { 0x1, 0x1, 41, 2202, 1136, 4, 1, 16 },
10293+ { 0x1, 0x1, 41, 939, 1141, 4, 1, 22 },
10294+ { 0x2, 0x3, 41, -1, 1146, 20, 1, 67 },
10295+ { 0x1, 0x1, 41, 2203, 1144, 21, 1, 67 },
10296+ { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
10297+ { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
10298+ { 0x0, 0x0, 42, -1, -1, 0, 1, 123 },
10299+ { 0x1, 0x1, 44, 1354, 295, 38, 1, 1 },
10300+ { 0x1, 0x1, 44, 1355, 297, 38, 1, 1 },
10301+ { 0x0, 0x0, 44, -1, 300, 0, 0, -1 },
10302+ { 0x0, 0x0, 44, -1, 414, 0, 0, -1 },
10303+ { 0x1, 0x1, 44, 1359, 317, 38, 1, 1 },
10304+ { 0x1, 0x1, 44, 1360, 319, 38, 1, 1 },
10305+ { 0x0, 0x0, 44, -1, 322, 0, 0, -1 },
10306+ { 0x0, 0x0, 44, -1, 454, 0, 0, -1 },
10307+ { 0x0, 0x0, 44, -1, 324, 0, 0, -1 },
10308+ { 0x0, 0x0, 44, -1, 342, 0, 0, -1 },
10309+ { 0x1, 0x1, 44, 1366, 343, 38, 1, 1 },
10310+ { 0x1, 0x1, 44, 1367, 345, 38, 1, 1 },
10311+ { 0x0, 0x0, 44, -1, 348, 0, 0, -1 },
10312+ { 0x0, 0x0, 44, -1, 462, 0, 0, -1 },
10313+ { 0x1, 0x1, 44, 1371, 365, 38, 1, 1 },
10314+ { 0x1, 0x1, 44, 1372, 367, 38, 1, 1 },
10315+ { 0x0, 0x0, 44, -1, 370, 0, 0, -1 },
10316+ { 0x0, 0x0, 44, -1, 502, 0, 0, -1 },
10317+ { 0x0, 0x0, 44, -1, 372, 0, 0, -1 },
10318+ { 0x0, 0x0, 44, -1, 390, 0, 0, -1 },
10319+ { 0x0, 0x0, 44, 1230, 2263, 0, 0, -1 },
10320+ { 0x0, 0x0, 44, 1231, 2271, 0, 1, 54 },
10321+ { 0x0, 0x0, 44, 1232, 2938, 0, 1, 54 },
10322+ { 0x0, 0x0, 44, 1233, 2339, 0, 0, -1 },
10323+ { 0x0, 0x0, 44, 1234, -1, 0, 1, 49 },
10324+ { 0x0, 0x0, 44, 1102, -1, 0, 1, 0 },
10325+ { 0x0, 0x0, 44, 1103, -1, 0, 1, 0 },
10326+ { 0x0, 0x0, 44, 1104, -1, 0, 1, 0 },
10327+ { 0x1, 0x1, 45, -1, 1658, 30, 1, 152 },
10328+ { 0x1, 0x1, 45, 945, 1657, 30, 1, 151 },
10329+ { 0x1, 0x1, 45, -1, 1662, 30, 1, 154 },
10330+ { 0x1, 0x1, 45, 946, 1661, 30, 1, 153 },
10331+ { 0x1, 0x1, 45, -1, 1666, 30, 1, 154 },
10332+ { 0x1, 0x1, 45, 947, 1665, 30, 1, 153 },
10333+ { 0x3, 0x3, 46, -1, 1142, 3, 1, 22 },
10334+ { 0x1, 0x1, 47, 2223, -1, 30, 1, 137 },
10335+ { 0x1, 0x1, 47, 2254, -1, 30, 1, 155 },
10336+ { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10337+ { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10338+ { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10339+ { 0x1, 0x1, 56, -1, 1659, 31, 1, 152 },
10340+ { 0x1, 0x1, 56, -1, 1663, 31, 1, 154 },
10341+ { 0x1, 0x1, 56, -1, 1667, 31, 1, 154 },
10342+ { 0x0, 0x0, 56, -1, -1, 0, 1, 94 },
10343+ { 0x2, 0x3, 56, -1, -1, 27, 1, 94 },
10344+ { 0x1, 0x1, 56, -1, -1, 28, 1, 94 },
10345+ { 0x0, 0x0, 65, 14, 574, 0, 1, 6 },
10346+ { 0x0, 0x0, 65, 1255, 577, 0, 1, 6 },
10347+ { 0x1, 0x1, 65, 1256, 579, 33, 1, 6 },
10348+ { 0x1, 0x1, 65, 1257, 581, 34, 1, 6 },
10349+ { 0x3, 0x3, 65, 1258, 583, 33, 1, 6 },
10350+ { 0x0, 0x0, 65, 1259, 585, 0, 1, 6 },
10351+ { 0x1, 0x1, 65, 1260, 587, 33, 1, 6 },
10352+ { 0x1, 0x1, 65, 1261, 589, 34, 1, 6 },
10353+ { 0x3, 0x3, 65, 1262, 591, 33, 1, 6 },
10354+ { 0x1, 0x1, 65, 1263, 593, 6, 1, 7 },
10355+ { 0x8000001, 0x8000001, 65, 1264, 595, 6, 1, 7 },
10356+ { 0x10000001, 0x10000001, 65, 1265, 597, 6, 1, 7 },
10357+ { 0x18000001, 0x18000001, 65, 1266, 599, 6, 1, 7 },
10358+ { 0x0, 0x0, 65, 1267, 613, 0, 1, 8 },
10359+ { 0x1, 0x1, 65, 1268, 615, 33, 1, 8 },
10360+ { 0x1, 0x1, 65, 1269, 617, 34, 1, 8 },
10361+ { 0x3, 0x3, 65, 1270, 619, 33, 1, 8 },
10362+ { 0x0, 0x0, 65, 1271, 625, 0, 1, 15 },
10363+ { 0x1, 0x1, 65, 1272, 627, 33, 1, 15 },
10364+ { 0x1, 0x1, 65, 1273, 629, 34, 1, 15 },
10365+ { 0x3, 0x3, 65, 1274, 631, 33, 1, 15 },
10366+ { 0x0, 0x0, 65, 15, 637, 0, 1, 17 },
10367+ { 0x0, 0x0, 65, 1276, 640, 0, 1, 17 },
10368+ { 0x1, 0x1, 65, 1277, 642, 33, 1, 17 },
10369+ { 0x1, 0x1, 65, 1278, 644, 34, 1, 17 },
10370+ { 0x3, 0x3, 65, 1279, 646, 33, 1, 17 },
10371+ { 0x0, 0x0, 65, 1280, 648, 0, 1, 17 },
10372+ { 0x1, 0x1, 65, 1281, 650, 33, 1, 17 },
10373+ { 0x1, 0x1, 65, 1282, 652, 34, 1, 17 },
10374+ { 0x3, 0x3, 65, 1283, 654, 33, 1, 17 },
10375+ { 0x0, 0x0, 65, 1284, 664, 0, 1, 18 },
10376+ { 0x1, 0x1, 65, 1285, 666, 33, 1, 18 },
10377+ { 0x1, 0x1, 65, 1286, 668, 34, 1, 18 },
10378+ { 0x3, 0x3, 65, 1287, 670, 33, 1, 18 },
10379+ { 0x1, 0x1, 65, 1288, 672, 6, 1, 18 },
10380+ { 0x8000001, 0x8000001, 65, 1289, 674, 6, 1, 18 },
10381+ { 0x10000001, 0x10000001, 65, 1290, 676, 6, 1, 18 },
10382+ { 0x18000001, 0x18000001, 65, 1291, 678, 6, 1, 18 },
10383+ { 0x0, 0x0, 65, 1292, 688, 0, 1, 19 },
10384+ { 0x1, 0x1, 65, 1293, 690, 33, 1, 19 },
10385+ { 0x1, 0x1, 65, 1294, 692, 34, 1, 19 },
10386+ { 0x3, 0x3, 65, 1295, 694, 33, 1, 19 },
10387+ { 0x0, 0x0, 65, 1296, 700, 0, 1, 20 },
10388+ { 0x1, 0x1, 65, 1297, 702, 33, 1, 20 },
10389+ { 0x1, 0x1, 65, 1298, 704, 34, 1, 20 },
10390+ { 0x3, 0x3, 65, 1299, 706, 33, 1, 20 },
10391+ { 0x1, 0x1, 65, 1300, 708, 6, 1, 20 },
10392+ { 0x8000001, 0x8000001, 65, 1301, 710, 6, 1, 20 },
10393+ { 0x10000001, 0x10000001, 65, 1302, 712, 6, 1, 20 },
10394+ { 0x18000001, 0x18000001, 65, 1303, 714, 6, 1, 20 },
10395+ { 0x0, 0x0, 65, 1304, 724, 0, 1, 21 },
10396+ { 0x1, 0x1, 65, 1305, 726, 33, 1, 21 },
10397+ { 0x1, 0x1, 65, 1306, 728, 34, 1, 21 },
10398+ { 0x3, 0x3, 65, 1307, 730, 33, 1, 21 },
10399+ { 0x0, 0x0, 65, 17, 736, 0, 1, 17 },
10400+ { 0x0, 0x0, 65, 1309, 739, 0, 1, 17 },
10401+ { 0x1, 0x1, 65, 1310, 741, 33, 1, 17 },
10402+ { 0x1, 0x1, 65, 1311, 743, 34, 1, 17 },
10403+ { 0x3, 0x3, 65, 1312, 745, 33, 1, 17 },
10404+ { 0x0, 0x0, 65, 1313, 747, 0, 1, 17 },
10405+ { 0x1, 0x1, 65, 1314, 749, 33, 1, 17 },
10406+ { 0x1, 0x1, 65, 1315, 751, 34, 1, 17 },
10407+ { 0x3, 0x3, 65, 1316, 753, 33, 1, 17 },
10408+ { 0x0, 0x0, 65, 1317, 763, 0, 1, 21 },
10409+ { 0x1, 0x1, 65, 1318, 765, 33, 1, 21 },
10410+ { 0x1, 0x1, 65, 1319, 767, 34, 1, 21 },
10411+ { 0x3, 0x3, 65, 1320, 769, 33, 1, 21 },
10412+ { 0x3, 0x3, 66, 543, 1521, 33, 1, 129 },
10413+ { 0x3, 0x3, 66, 544, 1531, 33, 1, 129 },
10414+ { 0x3, 0x3, 66, 545, 1541, 33, 1, 129 },
10415+ { 0x0, 0x0, 66, -1, 1546, 0, 1, 140 },
10416+ { 0x0, 0x0, 66, -1, 1547, 0, 1, 145 },
10417+ { 0x0, 0x0, 66, -1, 1548, 0, 1, 145 },
10418+ { 0x0, 0x0, 107, 1028, 2311, 0, 0, -1 },
10419+ { 0x0, 0x0, 107, 1029, 2830, 0, 1, 29 },
10420+ { 0x0, 0x0, 107, 1030, 2352, 0, 0, -1 },
10421+ { 0x0, 0x0, 107, 1031, 2834, 0, 1, 29 },
10422+ { 0x0, 0x0, 109, -1, 2313, 0, 0, -1 },
10423+ { 0x1, 0x1, 109, -1, 2831, 27, 1, 29 },
10424+ { 0x0, 0x0, 109, -1, 2354, 0, 0, -1 },
10425+ { 0x1, 0x1, 109, -1, 2835, 27, 1, 29 },
10426+ { 0x0, 0x0, 110, 1033, -1, 0, 1, 115 },
10427+ { 0x1, 0x1, 111, -1, -1, 27, 1, 115 },
10428+ { 0x0, 0x0, 112, 1064, 2860, 0, 1, 1 },
10429+ { 0x0, 0x0, 112, 1065, 2863, 0, 1, 1 },
10430+ { 0x0, 0x0, 112, 1206, 303, 0, 0, -1 },
10431+ { 0x0, 0x0, 112, 1207, 307, 0, 0, -1 },
10432+ { 0x0, 0x0, 112, 1167, 430, 0, 0, -1 },
10433+ { 0x0, 0x0, 112, 1168, 438, 0, 0, -1 },
10434+ { 0x0, 0x0, 112, -1, 446, 0, 0, -1 },
10435+ { 0x0, 0x0, 112, 1066, 2876, 0, 1, 1 },
10436+ { 0x0, 0x0, 112, 1067, 2879, 0, 1, 1 },
10437+ { 0x0, 0x0, 112, -1, 328, 0, 0, -1 },
10438+ { 0x0, 0x0, 112, -1, 332, 0, 0, -1 },
10439+ { 0x0, 0x0, 112, 1215, 333, 0, 0, -1 },
10440+ { 0x0, 0x0, 112, 1216, 337, 0, 0, -1 },
10441+ { 0x0, 0x0, 112, 1068, 2900, 0, 1, 1 },
10442+ { 0x0, 0x0, 112, 1069, 2903, 0, 1, 1 },
10443+ { 0x0, 0x0, 112, 1219, 351, 0, 0, -1 },
10444+ { 0x0, 0x0, 112, 1220, 355, 0, 0, -1 },
10445+ { 0x0, 0x0, 112, 1180, 478, 0, 0, -1 },
10446+ { 0x0, 0x0, 112, 1181, 486, 0, 0, -1 },
10447+ { 0x0, 0x0, 112, -1, 494, 0, 0, -1 },
10448+ { 0x0, 0x0, 112, 1373, 2914, 0, 1, 1 },
10449+ { 0x0, 0x0, 112, 1374, 2916, 0, 1, 1 },
10450+ { 0x0, 0x0, 112, -1, 376, 0, 0, -1 },
10451+ { 0x0, 0x0, 112, -1, 380, 0, 0, -1 },
10452+ { 0x0, 0x0, 112, 1228, 381, 0, 0, -1 },
10453+ { 0x0, 0x0, 112, 1229, 385, 0, 0, -1 },
10454+ { 0x0, 0x0, 112, -1, 2281, 0, 0, -1 },
10455+ { 0x1, 0x9, 112, -1, 2285, 33, 1, 54 },
10456+ { 0x1, 0x9, 112, -1, 2947, 33, 1, 54 },
10457+ { 0x2, 0x3, 112, 1390, 2348, 27, 1, 49 },
10458+ { 0x1, 0x1, 114, 1356, 2861, 37, 1, 1 },
10459+ { 0x1, 0x1, 114, 1357, 2864, 37, 1, 1 },
10460+ { 0x1, 0x1, 114, 1361, 2877, 37, 1, 1 },
10461+ { 0x1, 0x1, 114, 1362, 2880, 37, 1, 1 },
10462+ { 0x1, 0x1, 114, 1368, 2901, 37, 1, 1 },
10463+ { 0x1, 0x1, 114, 1369, 2904, 37, 1, 1 },
10464+ { 0x0, 0x0, 114, -1, 2924, 0, 1, 1 },
10465+ { 0x0, 0x0, 114, -1, 2925, 0, 1, 1 },
10466+ { 0x0, 0x0, 115, 1105, 2856, 0, 1, 1 },
10467+ { 0x0, 0x0, 115, 1106, 2858, 0, 1, 1 },
10468+ { 0x0, 0x0, 115, 1165, 301, 0, 0, -1 },
10469+ { 0x0, 0x0, 115, 1166, 305, 0, 0, -1 },
10470+ { 0x0, 0x0, 115, -1, 434, 0, 0, -1 },
10471+ { 0x0, 0x0, 115, -1, 442, 0, 0, -1 },
10472+ { 0x0, 0x0, 115, 1210, 444, 0, 0, -1 },
10473+ { 0x0, 0x0, 115, -1, 2874, 0, 1, 1 },
10474+ { 0x0, 0x0, 115, -1, 2875, 0, 1, 1 },
10475+ { 0x0, 0x0, 115, 1213, 326, 0, 0, -1 },
10476+ { 0x0, 0x0, 115, 1214, 330, 0, 0, -1 },
10477+ { 0x0, 0x0, 115, 1174, 335, 0, 0, -1 },
10478+ { 0x0, 0x0, 115, 1175, 339, 0, 0, -1 },
10479+ { 0x0, 0x0, 115, 1109, 2896, 0, 1, 1 },
10480+ { 0x0, 0x0, 115, 1110, 2898, 0, 1, 1 },
10481+ { 0x0, 0x0, 115, 1178, 349, 0, 0, -1 },
10482+ { 0x0, 0x0, 115, 1179, 353, 0, 0, -1 },
10483+ { 0x0, 0x0, 115, -1, 482, 0, 0, -1 },
10484+ { 0x0, 0x0, 115, -1, 490, 0, 0, -1 },
10485+ { 0x0, 0x0, 115, 1223, 492, 0, 0, -1 },
10486+ { 0x0, 0x0, 115, -1, 2912, 0, 1, 1 },
10487+ { 0x0, 0x0, 115, -1, 2913, 0, 1, 1 },
10488+ { 0x0, 0x0, 115, 1226, 374, 0, 0, -1 },
10489+ { 0x0, 0x0, 115, 1227, 378, 0, 0, -1 },
10490+ { 0x0, 0x0, 115, 1187, 383, 0, 0, -1 },
10491+ { 0x0, 0x0, 115, 1188, 387, 0, 0, -1 },
10492+ { 0x0, 0x0, 115, 1060, 2279, 0, 0, -1 },
10493+ { 0x0, 0x0, 115, 1061, 2283, 0, 1, 54 },
10494+ { 0x0, 0x0, 115, 1062, 2946, 0, 1, 54 },
10495+ { 0x0, 0x0, 115, 1063, 2347, 0, 1, 49 },
10496+ { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10497+ { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10498+ { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10499+ { 0x1, 0x1, 116, -1, 2857, 37, 1, 1 },
10500+ { 0x1, 0x1, 116, -1, 2859, 37, 1, 1 },
10501+ { 0x0, 0x0, 116, -1, 2884, 0, 1, 1 },
10502+ { 0x0, 0x0, 116, -1, 2885, 0, 1, 1 },
10503+ { 0x1, 0x1, 116, -1, 2897, 37, 1, 1 },
10504+ { 0x1, 0x1, 116, -1, 2899, 37, 1, 1 },
10505+ { 0x0, 0x0, 116, -1, 2922, 0, 1, 1 },
10506+ { 0x0, 0x0, 116, -1, 2923, 0, 1, 1 },
10507+ { 0x0, 0x0, 117, 1158, -1, 0, 1, 0 },
10508+ { 0x0, 0x0, 117, 1159, -1, 0, 1, 0 },
10509+ { 0x0, 0x0, 117, 1160, -1, 0, 1, 0 },
10510+ { 0x3, 0x3, 117, 1118, -1, 34, 1, 33 },
10511+ { 0x3, 0x3, 117, 1119, -1, 34, 1, 40 },
10512+ { 0x1, 0x1, 119, -1, -1, 35, 1, 33 },
10513+ { 0x1, 0x1, 119, -1, -1, 35, 1, 40 },
10514+ { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10515+ { 0x0, 0x0, 120, -1, -1, 0, 1, 66 },
10516+ { 0x1, 0x1, 120, -1, -1, 36, 1, 122 },
10517+ { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10518+ { 0x1, 0x1, 120, -1, -1, 27, 1, 96 },
10519+ { 0x0, 0x0, 120, -1, -1, 0, 1, 105 },
10520+ { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
10521+ { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
10522+ { 0x0, 0x0, 120, -1, -1, 0, 1, 74 },
10523+ { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10524+ { 0x1, 0x1, 120, -1, -1, 27, 1, 117 },
10525+ { 0x1, 0x1, 120, -1, -1, 27, 1, 40 },
10526+ { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10527+ { 0x0, 0x0, 121, -1, 2786, 0, 0, -1 },
10528+ { 0x0, 0x0, 121, -1, 2789, 0, 0, -1 },
10529+ { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10530+ { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10531+ { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10532+ { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10533+ { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10534+ { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10535+ { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10536+ { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10537+ { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10538+ { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10539+ { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10540+ { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10541+ { 0x1, 0x1, 122, 900, -1, 23, 1, 67 },
10542+ { 0x9, 0x9, 122, 901, -1, 20, 1, 67 },
10543+ { 0x0, 0x0, 126, 2165, -1, 0, 1, 0 },
10544+ { 0x0, 0x0, 126, 2166, -1, 0, 1, 0 },
10545+ { 0x1, 0x1, 126, -1, -1, 28, 1, 33 },
10546+ { 0x1, 0x1, 126, -1, -1, 27, 1, 33 },
10547+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10548+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10549+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10550+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10551+ { 0x0, 0x0, 126, -1, -1, 0, 1, 114 },
10552+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10553+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10554+ { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10555+ { 0x0, 0x0, 126, 1116, -1, 0, 1, 33 },
10556+ { 0x0, 0x0, 126, 1244, -1, 0, 1, 40 },
10557+ { 0x0, 0x0, 140, 1194, 2852, 0, 1, 1 },
10558+ { 0x0, 0x0, 140, 1195, 2854, 0, 1, 1 },
10559+ { 0x0, 0x0, 140, 1036, 302, 0, 0, -1 },
10560+ { 0x0, 0x0, 140, 1037, 422, 0, 0, -1 },
10561+ { 0x0, 0x0, 140, 1076, 311, 0, 0, -1 },
10562+ { 0x0, 0x0, 140, 1077, 315, 0, 0, -1 },
10563+ { 0x0, 0x0, 140, 1078, 443, 0, 0, -1 },
10564+ { 0x0, 0x0, 140, -1, 2872, 0, 1, 1 },
10565+ { 0x0, 0x0, 140, -1, 2873, 0, 1, 1 },
10566+ { 0x0, 0x0, 140, 1081, 325, 0, 0, -1 },
10567+ { 0x0, 0x0, 140, 1082, 329, 0, 0, -1 },
10568+ { 0x0, 0x0, 140, -1, 336, 0, 0, -1 },
10569+ { 0x0, 0x0, 140, -1, 340, 0, 0, -1 },
10570+ { 0x0, 0x0, 140, 1198, 2892, 0, 1, 1 },
10571+ { 0x0, 0x0, 140, 1199, 2894, 0, 1, 1 },
10572+ { 0x0, 0x0, 140, 1049, 350, 0, 0, -1 },
10573+ { 0x0, 0x0, 140, 1050, 470, 0, 0, -1 },
10574+ { 0x0, 0x0, 140, 1089, 359, 0, 0, -1 },
10575+ { 0x0, 0x0, 140, 1090, 363, 0, 0, -1 },
10576+ { 0x0, 0x0, 140, 1091, 491, 0, 0, -1 },
10577+ { 0x0, 0x0, 140, -1, 2910, 0, 1, 1 },
10578+ { 0x0, 0x0, 140, -1, 2911, 0, 1, 1 },
10579+ { 0x0, 0x0, 140, 1094, 373, 0, 0, -1 },
10580+ { 0x0, 0x0, 140, 1095, 377, 0, 0, -1 },
10581+ { 0x0, 0x0, 140, -1, 384, 0, 0, -1 },
10582+ { 0x0, 0x0, 140, -1, 388, 0, 0, -1 },
10583+ { 0x0, 0x0, 140, 2974, 2267, 0, 0, -1 },
10584+ { 0x1, 0x1, 140, 2975, 2275, 33, 1, 54 },
10585+ { 0x1, 0x1, 140, 2976, 2940, 33, 1, 54 },
10586+ { 0x0, 0x0, 140, 2977, 2341, 0, 0, -1 },
10587+ { 0x1, 0x1, 140, 2978, -1, 28, 1, 49 },
10588+ { 0x1, 0x1, 141, -1, 2853, 37, 1, 1 },
10589+ { 0x1, 0x1, 141, -1, 2855, 37, 1, 1 },
10590+ { 0x0, 0x0, 141, -1, 2882, 0, 1, 1 },
10591+ { 0x0, 0x0, 141, -1, 2883, 0, 1, 1 },
10592+ { 0x1, 0x1, 141, -1, 2893, 37, 1, 1 },
10593+ { 0x1, 0x1, 141, -1, 2895, 37, 1, 1 },
10594+ { 0x0, 0x0, 141, -1, 2920, 0, 1, 1 },
10595+ { 0x0, 0x0, 141, -1, 2921, 0, 1, 1 },
10596+ { 0x1, 0x1, 144, 899, 1140, 3, 1, 22 },
10597+ { 0x0, 0x0, 145, 2167, -1, 0, 1, 33 },
10598+ { 0x0, 0x0, 146, 905, 2846, 0, 1, 1 },
10599+ { 0x0, 0x0, 146, 906, 2849, 0, 1, 1 },
10600+ { 0x0, 0x0, 146, -1, 304, 0, 0, -1 },
10601+ { 0x0, 0x0, 146, -1, 426, 0, 0, -1 },
10602+ { 0x0, 0x0, 146, 1038, 309, 0, 0, -1 },
10603+ { 0x0, 0x0, 146, 1039, 313, 0, 0, -1 },
10604+ { 0x0, 0x0, 146, 1040, 445, 0, 0, -1 },
10605+ { 0x0, 0x0, 146, 909, 2866, 0, 1, 1 },
10606+ { 0x0, 0x0, 146, 910, 2869, 0, 1, 1 },
10607+ { 0x0, 0x0, 146, 1043, 327, 0, 0, -1 },
10608+ { 0x0, 0x0, 146, 1044, 331, 0, 0, -1 },
10609+ { 0x0, 0x0, 146, 1083, 334, 0, 0, -1 },
10610+ { 0x0, 0x0, 146, 1084, 338, 0, 0, -1 },
10611+ { 0x0, 0x0, 146, 915, 2886, 0, 1, 1 },
10612+ { 0x0, 0x0, 146, 916, 2889, 0, 1, 1 },
10613+ { 0x0, 0x0, 146, -1, 352, 0, 0, -1 },
10614+ { 0x0, 0x0, 146, -1, 474, 0, 0, -1 },
10615+ { 0x0, 0x0, 146, 1051, 357, 0, 0, -1 },
10616+ { 0x0, 0x0, 146, 1052, 361, 0, 0, -1 },
10617+ { 0x0, 0x0, 146, 1053, 493, 0, 0, -1 },
10618+ { 0x0, 0x0, 146, 919, 2906, 0, 1, 1 },
10619+ { 0x0, 0x0, 146, 920, 2908, 0, 1, 1 },
10620+ { 0x0, 0x0, 146, 1056, 375, 0, 0, -1 },
10621+ { 0x0, 0x0, 146, 1057, 379, 0, 0, -1 },
10622+ { 0x0, 0x0, 146, 1096, 382, 0, 0, -1 },
10623+ { 0x0, 0x0, 146, 1097, 386, 0, 0, -1 },
10624+ { 0x0, 0x0, 146, 1189, 2265, 0, 0, -1 },
10625+ { 0x1, 0x1, 146, 1190, 2273, 36, 1, 54 },
10626+ { 0x1, 0x1, 146, 1191, 2939, 36, 1, 54 },
10627+ { 0x0, 0x0, 146, 1192, 2340, 0, 0, -1 },
10628+ { 0x1, 0x1, 146, 1193, -1, 27, 1, 49 },
10629+ { 0x1, 0x1, 147, -1, 2848, 37, 1, 1 },
10630+ { 0x1, 0x1, 147, -1, 2851, 37, 1, 1 },
10631+ { 0x1, 0x1, 147, -1, 2868, 37, 1, 1 },
10632+ { 0x1, 0x1, 147, -1, 2871, 37, 1, 1 },
10633+ { 0x1, 0x1, 147, -1, 2888, 37, 1, 1 },
10634+ { 0x1, 0x1, 147, -1, 2891, 37, 1, 1 },
10635+ { 0x0, 0x0, 147, -1, 2918, 0, 1, 1 },
10636+ { 0x0, 0x0, 147, -1, 2919, 0, 1, 1 },
10637+ { 0x0, 0x0, 148, -1, -1, 0, 1, 33 },
10638+ { 0x0, 0x0, 148, 1117, -1, 0, 1, 40 },
10639+ { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10640+ { 0x0, 0x0, 149, -1, -1, 0, 1, 66 },
10641+ { 0x0, 0x0, 149, -1, 2926, 0, 1, 63 },
10642+ { 0x0, 0x0, 149, -1, 2927, 0, 1, 63 },
10643+ { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10644+ { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
10645+ { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
10646+ { 0x0, 0x0, 149, -1, -1, 0, 1, 85 },
10647+ { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10648+ { 0x1, 0x1, 150, -1, 575, 12, 1, 6 },
10649+ { 0x1, 0x1, 150, -1, 578, 12, 1, 6 },
10650+ { 0x200001, 0x200001, 150, -1, 580, 12, 1, 6 },
10651+ { 0x400001, 0x400001, 150, -1, 582, 12, 1, 6 },
10652+ { 0x600001, 0x600001, 150, -1, 584, 12, 1, 6 },
10653+ { 0x1, 0x1, 150, -1, 586, 12, 1, 6 },
10654+ { 0x200001, 0x200001, 150, -1, 588, 12, 1, 6 },
10655+ { 0x400001, 0x400001, 150, -1, 590, 12, 1, 6 },
10656+ { 0x600001, 0x600001, 150, -1, 592, 12, 1, 6 },
10657+ { 0x41, 0x41, 150, -1, 594, 6, 1, 7 },
10658+ { 0x8000041, 0x8000041, 150, -1, 596, 6, 1, 7 },
10659+ { 0x10000041, 0x10000041, 150, -1, 598, 6, 1, 7 },
10660+ { 0x18000041, 0x18000041, 150, -1, 600, 6, 1, 7 },
10661+ { 0x1, 0x1, 150, -1, 614, 12, 1, 8 },
10662+ { 0x200001, 0x200001, 150, -1, 616, 12, 1, 8 },
10663+ { 0x400001, 0x400001, 150, -1, 618, 12, 1, 8 },
10664+ { 0x600001, 0x600001, 150, -1, 620, 12, 1, 8 },
10665+ { 0x1, 0x1, 150, -1, 626, 12, 1, 15 },
10666+ { 0x200001, 0x200001, 150, -1, 628, 12, 1, 15 },
10667+ { 0x400001, 0x400001, 150, -1, 630, 12, 1, 15 },
10668+ { 0x600001, 0x600001, 150, -1, 632, 12, 1, 15 },
10669+ { 0x1, 0x1, 150, -1, 638, 12, 1, 17 },
10670+ { 0x1, 0x1, 150, -1, 641, 12, 1, 17 },
10671+ { 0x200001, 0x200001, 150, -1, 643, 12, 1, 17 },
10672+ { 0x400001, 0x400001, 150, -1, 645, 12, 1, 17 },
10673+ { 0x600001, 0x600001, 150, -1, 647, 12, 1, 17 },
10674+ { 0x1, 0x1, 150, -1, 649, 12, 1, 17 },
10675+ { 0x200001, 0x200001, 150, -1, 651, 12, 1, 17 },
10676+ { 0x400001, 0x400001, 150, -1, 653, 12, 1, 17 },
10677+ { 0x600001, 0x600001, 150, -1, 655, 12, 1, 17 },
10678+ { 0x1, 0x1, 150, -1, 665, 12, 1, 18 },
10679+ { 0x200001, 0x200001, 150, -1, 667, 12, 1, 18 },
10680+ { 0x400001, 0x400001, 150, -1, 669, 12, 1, 18 },
10681+ { 0x600001, 0x600001, 150, -1, 671, 12, 1, 18 },
10682+ { 0x41, 0x41, 150, -1, 673, 6, 1, 18 },
10683+ { 0x8000041, 0x8000041, 150, -1, 675, 6, 1, 18 },
10684+ { 0x10000041, 0x10000041, 150, -1, 677, 6, 1, 18 },
10685+ { 0x18000041, 0x18000041, 150, -1, 679, 6, 1, 18 },
10686+ { 0x1, 0x1, 150, -1, 689, 12, 1, 19 },
10687+ { 0x200001, 0x200001, 150, -1, 691, 12, 1, 19 },
10688+ { 0x400001, 0x400001, 150, -1, 693, 12, 1, 19 },
10689+ { 0x600001, 0x600001, 150, -1, 695, 12, 1, 19 },
10690+ { 0x1, 0x1, 150, -1, 701, 12, 1, 20 },
10691+ { 0x200001, 0x200001, 150, -1, 703, 12, 1, 20 },
10692+ { 0x400001, 0x400001, 150, -1, 705, 12, 1, 20 },
10693+ { 0x600001, 0x600001, 150, -1, 707, 12, 1, 20 },
10694+ { 0x41, 0x41, 150, -1, 709, 6, 1, 20 },
10695+ { 0x8000041, 0x8000041, 150, -1, 711, 6, 1, 20 },
10696+ { 0x10000041, 0x10000041, 150, -1, 713, 6, 1, 20 },
10697+ { 0x18000041, 0x18000041, 150, -1, 715, 6, 1, 20 },
10698+ { 0x1, 0x1, 150, -1, 725, 12, 1, 21 },
10699+ { 0x200001, 0x200001, 150, -1, 727, 12, 1, 21 },
10700+ { 0x400001, 0x400001, 150, -1, 729, 12, 1, 21 },
10701+ { 0x600001, 0x600001, 150, -1, 731, 12, 1, 21 },
10702+ { 0x1, 0x1, 150, -1, 737, 12, 1, 17 },
10703+ { 0x1, 0x1, 150, -1, 740, 12, 1, 17 },
10704+ { 0x200001, 0x200001, 150, -1, 742, 12, 1, 17 },
10705+ { 0x400001, 0x400001, 150, -1, 744, 12, 1, 17 },
10706+ { 0x600001, 0x600001, 150, -1, 746, 12, 1, 17 },
10707+ { 0x1, 0x1, 150, -1, 748, 12, 1, 17 },
10708+ { 0x200001, 0x200001, 150, -1, 750, 12, 1, 17 },
10709+ { 0x400001, 0x400001, 150, -1, 752, 12, 1, 17 },
10710+ { 0x600001, 0x600001, 150, -1, 754, 12, 1, 17 },
10711+ { 0x1, 0x1, 150, -1, 764, 12, 1, 21 },
10712+ { 0x200001, 0x200001, 150, -1, 766, 12, 1, 21 },
10713+ { 0x400001, 0x400001, 150, -1, 768, 12, 1, 21 },
10714+ { 0x600001, 0x600001, 150, -1, 770, 12, 1, 21 },
10715+ { 0x0, 0x0, 155, -1, -1, 0, 1, 124 },
10716+ { 0x0, 0x0, 159, 775, -1, 0, 1, 75 },
10717+ { 0x0, 0x0, 159, 776, -1, 0, 1, 75 },
10718+ { 0x9, 0x9, 159, -1, 1438, 32, 1, 130 },
10719+ { 0x9, 0x9, 159, -1, 1447, 32, 1, 130 },
10720+ { 0x9, 0x9, 159, -1, 1456, 32, 1, 130 },
10721+ { 0x9, 0x9, 159, -1, 1469, 32, 1, 130 },
10722+ { 0x9, 0x9, 159, -1, 1478, 32, 1, 130 },
10723+ { 0x9, 0x9, 159, -1, 1487, 32, 1, 130 },
10724+ { 0x9, 0x9, 159, -1, 1496, 32, 1, 130 },
10725+ { 0x9, 0x9, 159, -1, 1505, 32, 1, 130 },
10726+ { 0x9, 0x9, 159, -1, 1514, 32, 1, 130 },
10727+ { 0x9, 0x9, 159, -1, 1524, 32, 1, 130 },
10728+ { 0x9, 0x9, 159, -1, 1534, 32, 1, 130 },
10729+ { 0x9, 0x9, 159, -1, 1544, 32, 1, 130 },
10730+ { 0x9, 0x9, 159, -1, 1553, 32, 1, 144 },
10731+ { 0x9, 0x9, 159, -1, 1559, 32, 1, 149 },
10732+ { 0x9, 0x9, 159, -1, 1565, 32, 1, 149 },
10733+ { 0x9, 0x9, 159, -1, 1571, 32, 1, 144 },
10734+ { 0x9, 0x9, 159, -1, 1577, 32, 1, 149 },
10735+ { 0x9, 0x9, 159, -1, 1583, 32, 1, 149 },
10736+ { 0x9, 0x9, 159, -1, 1589, 32, 1, 144 },
10737+ { 0x9, 0x9, 159, -1, 1595, 32, 1, 149 },
10738+ { 0x9, 0x9, 159, -1, 1601, 32, 1, 149 },
10739+ { 0x9, 0x9, 159, -1, 1607, 32, 1, 144 },
10740+ { 0x9, 0x9, 159, -1, 1613, 32, 1, 149 },
10741+ { 0x9, 0x9, 159, -1, 1619, 32, 1, 144 },
10742+ { 0x9, 0x9, 159, -1, 1625, 32, 1, 149 },
10743+ { 0x9, 0x9, 159, -1, 1631, 32, 1, 144 },
10744+ { 0x9, 0x9, 159, -1, 1637, 32, 1, 149 },
10745+ { 0x9, 0x9, 159, -1, 1643, 32, 1, 144 },
10746+ { 0x9, 0x9, 159, -1, 1649, 32, 1, 149 },
10747+ { 0x9, 0x9, 159, -1, 1655, 32, 1, 149 },
10748+ { 0x0, 0x0, 160, 1235, 296, 0, 0, -1 },
10749+ { 0x0, 0x0, 160, 1236, 412, 0, 0, -1 },
10750+ { 0x1, 0x1, 160, -1, 2862, 38, 1, 1 },
10751+ { 0x1, 0x1, 160, 907, 2865, 38, 1, 1 },
10752+ { 0x0, 0x0, 160, 908, 413, 0, 0, -1 },
10753+ { 0x0, 0x0, 160, 1237, 318, 0, 0, -1 },
10754+ { 0x0, 0x0, 160, 1238, 452, 0, 0, -1 },
10755+ { 0x1, 0x1, 160, -1, 2878, 38, 1, 1 },
10756+ { 0x1, 0x1, 160, 911, 2881, 38, 1, 1 },
10757+ { 0x0, 0x0, 160, 912, 453, 0, 0, -1 },
10758+ { 0x0, 0x0, 160, 913, 323, 0, 0, -1 },
10759+ { 0x0, 0x0, 160, 914, 341, 0, 0, -1 },
10760+ { 0x0, 0x0, 160, 1239, 344, 0, 0, -1 },
10761+ { 0x0, 0x0, 160, 1240, 460, 0, 0, -1 },
10762+ { 0x1, 0x1, 160, -1, 2902, 38, 1, 1 },
10763+ { 0x1, 0x1, 160, 917, 2905, 38, 1, 1 },
10764+ { 0x0, 0x0, 160, 918, 461, 0, 0, -1 },
10765+ { 0x0, 0x0, 160, -1, 366, 0, 0, -1 },
10766+ { 0x0, 0x0, 160, -1, 500, 0, 0, -1 },
10767+ { 0x1, 0x1, 160, -1, 2915, 38, 1, 1 },
10768+ { 0x1, 0x1, 160, 921, 2917, 38, 1, 1 },
10769+ { 0x0, 0x0, 160, 922, 501, 0, 0, -1 },
10770+ { 0x0, 0x0, 160, 923, 371, 0, 0, -1 },
10771+ { 0x0, 0x0, 160, 924, 389, 0, 0, -1 },
10772+ { 0x0, 0x0, 161, 1397, 2287, 0, 0, -1 },
10773+ { 0x0, 0x0, 161, 1398, 2295, 0, 1, 54 },
10774+ { 0x0, 0x0, 161, 1399, 2956, 0, 1, 54 },
10775+ { 0x0, 0x0, 161, 1400, 2343, 0, 0, -1 },
10776+ { 0x1, 0x1, 161, 1401, -1, 29, 1, 49 },
10777+ { 0x0, 0x0, 162, -1, 2305, 0, 0, -1 },
10778+ { 0x1, 0x9, 162, -1, 2309, 33, 1, 54 },
10779+ { 0x1, 0x9, 162, -1, 2965, 33, 1, 54 },
10780+ { 0x6, 0x7, 162, -1, 2350, 27, 1, 49 },
10781+ { 0x0, 0x0, 163, 1383, 2303, 0, 0, -1 },
10782+ { 0x0, 0x0, 163, 1384, 2307, 0, 1, 54 },
10783+ { 0x0, 0x0, 163, 1385, 2964, 0, 1, 54 },
10784+ { 0x1, 0x1, 163, 1386, 2349, 29, 1, 49 },
10785+ { 0x1, 0x1, 164, 1404, -1, 27, 1, 33 },
10786+ { 0x0, 0x0, 165, 2159, 2291, 0, 0, -1 },
10787+ { 0x1, 0x1, 165, 2160, 2299, 33, 1, 54 },
10788+ { 0x1, 0x1, 165, 2161, 2958, 33, 1, 54 },
10789+ { 0x0, 0x0, 165, 2162, 2345, 0, 0, -1 },
10790+ { 0x3, 0x3, 165, 2163, -1, 28, 1, 49 },
10791+ { 0x0, 0x0, 166, 1392, 2289, 0, 0, -1 },
10792+ { 0x1, 0x1, 166, 1393, 2297, 36, 1, 54 },
10793+ { 0x1, 0x1, 166, 1394, 2957, 36, 1, 54 },
10794+ { 0x0, 0x0, 166, 1395, 2344, 0, 0, -1 },
10795+ { 0x5, 0x5, 166, 1396, -1, 27, 1, 49 },
10796+ { 0x0, 0x0, 167, -1, 2928, 0, 1, 63 },
10797+ { 0x0, 0x0, 167, -1, 2929, 0, 1, 63 },
10798+ { 0x1, 0x1, 169, -1, -1, 28, 1, 33 },
10799+ { 0x1, 0x1, 170, 2745, -1, 27, 1, 33 },
10800+ { 0x1, 0x1, 170, 2746, -1, 27, 1, 33 },
10801+ { 0x1, 0x1, 171, 1685, -1, 28, 1, 135 },
10802+ { 0x1, 0x1, 171, 1686, -1, 28, 1, 135 },
10803+ { 0x1, 0x1, 171, 1687, -1, 28, 1, 135 },
10804+ { 0x1, 0x1, 171, 1688, -1, 28, 1, 135 },
10805+ { 0x1, 0x1, 171, 1689, -1, 28, 1, 134 },
10806+ { 0x1, 0x1, 171, 1690, -1, 28, 1, 134 },
10807+ { 0x1, 0x1, 171, 1691, -1, 28, 1, 134 },
10808+ { 0x1, 0x1, 171, 1692, -1, 28, 1, 134 },
10809+ { 0x1, 0x1, 171, 1693, -1, 28, 1, 134 },
10810+ { 0x1, 0x1, 171, 1694, -1, 28, 1, 134 },
10811+ { 0x1, 0x1, 171, 1695, -1, 28, 1, 134 },
10812+ { 0x1, 0x1, 171, 1696, -1, 28, 1, 134 },
10813+ { 0x1, 0x1, 171, 1697, -1, 28, 1, 134 },
10814+ { 0x1, 0x1, 171, 1698, -1, 28, 1, 134 },
10815+ { 0x1, 0x1, 171, 1699, -1, 28, 1, 134 },
10816+ { 0x1, 0x1, 171, 1700, -1, 28, 1, 134 },
10817+ { 0x1, 0x1, 171, 1701, -1, 28, 1, 134 },
10818+ { 0x1, 0x1, 171, 1702, -1, 28, 1, 134 },
10819+ { 0x1, 0x1, 171, 1703, -1, 28, 1, 134 },
10820+ { 0x1, 0x1, 171, 1704, -1, 28, 1, 134 },
10821+ { 0x1, 0x1, 171, 1705, -1, 28, 1, 136 },
10822+ { 0x1, 0x1, 171, 1706, -1, 28, 1, 136 },
10823+ { 0x1, 0x1, 171, 1707, -1, 28, 1, 136 },
10824+ { 0x1, 0x1, 171, 1708, -1, 28, 1, 136 },
10825+ { 0x1, 0x1, 171, 1709, -1, 28, 1, 126 },
10826+ { 0x1, 0x1, 171, 1710, -1, 28, 1, 127 },
10827+ { 0x1, 0x1, 171, 1711, -1, 28, 1, 128 },
10828+ { 0x1, 0x1, 171, 1712, -1, 28, 1, 124 },
10829+ { 0x1, 0x1, 171, 1713, -1, 28, 1, 124 },
10830+ { 0x1, 0x1, 171, 1714, -1, 28, 1, 130 },
10831+ { 0x1, 0x1, 171, 1715, -1, 28, 1, 130 },
10832+ { 0x1, 0x1, 171, 1716, -1, 28, 1, 130 },
10833+ { 0x1, 0x1, 171, 1717, -1, 28, 1, 124 },
10834+ { 0x1, 0x1, 171, 1718, -1, 28, 1, 126 },
10835+ { 0x1, 0x1, 171, 1719, -1, 28, 1, 127 },
10836+ { 0x1, 0x1, 171, 1720, -1, 28, 1, 128 },
10837+ { 0x1, 0x1, 171, 1721, -1, 28, 1, 124 },
10838+ { 0x1, 0x1, 171, 1722, -1, 28, 1, 124 },
10839+ { 0x1, 0x1, 171, 1723, -1, 28, 1, 130 },
10840+ { 0x1, 0x1, 171, 1724, -1, 28, 1, 130 },
10841+ { 0x1, 0x1, 171, 1725, -1, 28, 1, 130 },
10842+ { 0x1, 0x1, 171, 1726, -1, 28, 1, 124 },
10843+ { 0x1, 0x1, 171, 1727, -1, 28, 1, 126 },
10844+ { 0x1, 0x1, 171, 1728, -1, 28, 1, 127 },
10845+ { 0x1, 0x1, 171, 1729, -1, 28, 1, 128 },
10846+ { 0x1, 0x1, 171, 1730, -1, 28, 1, 124 },
10847+ { 0x1, 0x1, 171, 1731, -1, 28, 1, 124 },
10848+ { 0x1, 0x1, 171, 1732, -1, 28, 1, 130 },
10849+ { 0x1, 0x1, 171, 1733, -1, 28, 1, 130 },
10850+ { 0x1, 0x1, 171, 1734, -1, 28, 1, 130 },
10851+ { 0x1, 0x1, 171, 1735, -1, 28, 1, 124 },
10852+ { 0x1, 0x1, 171, 1736, -1, 28, 1, 125 },
10853+ { 0x1, 0x1, 171, 1737, -1, 28, 1, 125 },
10854+ { 0x1, 0x1, 171, 1738, -1, 28, 1, 125 },
10855+ { 0x1, 0x1, 171, 1739, -1, 28, 1, 125 },
10856+ { 0x1, 0x1, 171, 1740, -1, 28, 1, 126 },
10857+ { 0x1, 0x1, 171, 1741, -1, 28, 1, 127 },
10858+ { 0x1, 0x1, 171, 1742, -1, 28, 1, 128 },
10859+ { 0x1, 0x1, 171, 1743, -1, 28, 1, 124 },
10860+ { 0x1, 0x1, 171, 1744, -1, 28, 1, 124 },
10861+ { 0x1, 0x1, 171, 1745, -1, 28, 1, 130 },
10862+ { 0x1, 0x1, 171, 1746, -1, 28, 1, 130 },
10863+ { 0x1, 0x1, 171, 1747, -1, 28, 1, 130 },
10864+ { 0x1, 0x1, 171, 1748, -1, 28, 1, 124 },
10865+ { 0x1, 0x1, 171, 1749, -1, 28, 1, 126 },
10866+ { 0x1, 0x1, 171, 1750, -1, 28, 1, 127 },
10867+ { 0x1, 0x1, 171, 1751, -1, 28, 1, 128 },
10868+ { 0x1, 0x1, 171, 1752, -1, 28, 1, 124 },
10869+ { 0x1, 0x1, 171, 1753, -1, 28, 1, 124 },
10870+ { 0x1, 0x1, 171, 1754, -1, 28, 1, 130 },
10871+ { 0x1, 0x1, 171, 1755, -1, 28, 1, 130 },
10872+ { 0x1, 0x1, 171, 1756, -1, 28, 1, 130 },
10873+ { 0x1, 0x1, 171, 1757, -1, 28, 1, 124 },
10874+ { 0x1, 0x1, 171, 1758, -1, 28, 1, 126 },
10875+ { 0x1, 0x1, 171, 1759, -1, 28, 1, 127 },
10876+ { 0x1, 0x1, 171, 1760, -1, 28, 1, 128 },
10877+ { 0x1, 0x1, 171, 1761, -1, 28, 1, 124 },
10878+ { 0x1, 0x1, 171, 1762, -1, 28, 1, 124 },
10879+ { 0x1, 0x1, 171, 1763, -1, 28, 1, 130 },
10880+ { 0x1, 0x1, 171, 1764, -1, 28, 1, 130 },
10881+ { 0x1, 0x1, 171, 1765, -1, 28, 1, 130 },
10882+ { 0x1, 0x1, 171, 1766, -1, 28, 1, 124 },
10883+ { 0x1, 0x1, 171, 1767, -1, 28, 1, 126 },
10884+ { 0x1, 0x1, 171, 1768, -1, 28, 1, 127 },
10885+ { 0x1, 0x1, 171, 1769, -1, 28, 1, 128 },
10886+ { 0x1, 0x1, 171, 1770, -1, 28, 1, 124 },
10887+ { 0x1, 0x1, 171, 1771, -1, 28, 1, 124 },
10888+ { 0x1, 0x1, 171, 1772, -1, 28, 1, 130 },
10889+ { 0x1, 0x1, 171, 1773, -1, 28, 1, 130 },
10890+ { 0x1, 0x1, 171, 1774, -1, 28, 1, 130 },
10891+ { 0x1, 0x1, 171, 1775, -1, 28, 1, 124 },
10892+ { 0x1, 0x1, 171, 1776, -1, 28, 1, 126 },
10893+ { 0x1, 0x1, 171, 1777, -1, 28, 1, 127 },
10894+ { 0x1, 0x1, 171, 1778, -1, 28, 1, 128 },
10895+ { 0x1, 0x1, 171, 1779, -1, 28, 1, 124 },
10896+ { 0x1, 0x1, 171, 1780, -1, 28, 1, 124 },
10897+ { 0x1, 0x1, 171, 1781, -1, 28, 1, 130 },
10898+ { 0x1, 0x1, 171, 1782, -1, 28, 1, 130 },
10899+ { 0x1, 0x1, 171, 1783, -1, 28, 1, 130 },
10900+ { 0x1, 0x1, 171, 1784, -1, 28, 1, 124 },
10901+ { 0x1, 0x1, 171, 1785, -1, 28, 1, 126 },
10902+ { 0x1, 0x1, 171, 1786, -1, 28, 1, 127 },
10903+ { 0x1, 0x1, 171, 1787, -1, 28, 1, 128 },
10904+ { 0x1, 0x1, 171, 1788, -1, 28, 1, 124 },
10905+ { 0x1, 0x1, 171, 1789, -1, 28, 1, 124 },
10906+ { 0x1, 0x1, 171, 1790, -1, 28, 1, 130 },
10907+ { 0x1, 0x1, 171, 1791, -1, 28, 1, 130 },
10908+ { 0x1, 0x1, 171, 1792, -1, 28, 1, 130 },
10909+ { 0x1, 0x1, 171, 1793, -1, 28, 1, 124 },
10910+ { 0x1, 0x1, 171, 1794, -1, 28, 1, 126 },
10911+ { 0x1, 0x1, 171, 1795, -1, 28, 1, 127 },
10912+ { 0x1, 0x1, 171, 1796, -1, 28, 1, 128 },
10913+ { 0x1, 0x1, 171, 1797, -1, 28, 1, 124 },
10914+ { 0x1, 0x1, 171, 1798, -1, 28, 1, 124 },
10915+ { 0x1, 0x1, 171, 1799, -1, 28, 1, 129 },
10916+ { 0x1, 0x1, 171, 1800, -1, 28, 1, 130 },
10917+ { 0x1, 0x1, 171, 1801, -1, 28, 1, 130 },
10918+ { 0x1, 0x1, 171, 1802, -1, 28, 1, 130 },
10919+ { 0x1, 0x1, 171, 1803, -1, 28, 1, 124 },
10920+ { 0x1, 0x1, 171, 1804, -1, 28, 1, 126 },
10921+ { 0x1, 0x1, 171, 1805, -1, 28, 1, 127 },
10922+ { 0x1, 0x1, 171, 1806, -1, 28, 1, 128 },
10923+ { 0x1, 0x1, 171, 1807, -1, 28, 1, 124 },
10924+ { 0x1, 0x1, 171, 1808, -1, 28, 1, 124 },
10925+ { 0x1, 0x1, 171, 1809, -1, 28, 1, 129 },
10926+ { 0x1, 0x1, 171, 1810, -1, 28, 1, 130 },
10927+ { 0x1, 0x1, 171, 1811, -1, 28, 1, 130 },
10928+ { 0x1, 0x1, 171, 1812, -1, 28, 1, 130 },
10929+ { 0x1, 0x1, 171, 1813, -1, 28, 1, 124 },
10930+ { 0x1, 0x1, 171, 1814, -1, 28, 1, 126 },
10931+ { 0x1, 0x1, 171, 1815, -1, 28, 1, 127 },
10932+ { 0x1, 0x1, 171, 1816, -1, 28, 1, 128 },
10933+ { 0x1, 0x1, 171, 1817, -1, 28, 1, 124 },
10934+ { 0x1, 0x1, 171, 1818, -1, 28, 1, 124 },
10935+ { 0x1, 0x1, 171, 1819, -1, 28, 1, 129 },
10936+ { 0x1, 0x1, 171, 1820, -1, 28, 1, 130 },
10937+ { 0x1, 0x1, 171, 1821, -1, 28, 1, 130 },
10938+ { 0x1, 0x1, 171, 1822, -1, 28, 1, 130 },
10939+ { 0x1, 0x1, 171, 1823, -1, 28, 1, 124 },
10940+ { 0x1, 0x1, 171, 1824, -1, 28, 1, 140 },
10941+ { 0x1, 0x1, 171, 1825, -1, 28, 1, 145 },
10942+ { 0x1, 0x1, 171, 1826, -1, 28, 1, 145 },
10943+ { 0x1, 0x1, 171, 1827, -1, 28, 1, 141 },
10944+ { 0x1, 0x1, 171, 1828, -1, 28, 1, 142 },
10945+ { 0x1, 0x1, 171, 1829, -1, 28, 1, 143 },
10946+ { 0x1, 0x1, 171, 1830, -1, 28, 1, 144 },
10947+ { 0x1, 0x1, 171, 1831, -1, 28, 1, 144 },
10948+ { 0x1, 0x1, 171, 1832, -1, 28, 1, 140 },
10949+ { 0x1, 0x1, 171, 1833, -1, 28, 1, 146 },
10950+ { 0x1, 0x1, 171, 1834, -1, 28, 1, 147 },
10951+ { 0x1, 0x1, 171, 1835, -1, 28, 1, 148 },
10952+ { 0x1, 0x1, 171, 1836, -1, 28, 1, 149 },
10953+ { 0x1, 0x1, 171, 1837, -1, 28, 1, 149 },
10954+ { 0x1, 0x1, 171, 1838, -1, 28, 1, 145 },
10955+ { 0x1, 0x1, 171, 1839, -1, 28, 1, 146 },
10956+ { 0x1, 0x1, 171, 1840, -1, 28, 1, 147 },
10957+ { 0x1, 0x1, 171, 1841, -1, 28, 1, 148 },
10958+ { 0x1, 0x1, 171, 1842, -1, 28, 1, 149 },
10959+ { 0x1, 0x1, 171, 1843, -1, 28, 1, 149 },
10960+ { 0x1, 0x1, 171, 1844, -1, 28, 1, 145 },
10961+ { 0x1, 0x1, 171, 1845, -1, 28, 1, 141 },
10962+ { 0x1, 0x1, 171, 1846, -1, 28, 1, 142 },
10963+ { 0x1, 0x1, 171, 1847, -1, 28, 1, 143 },
10964+ { 0x1, 0x1, 171, 1848, -1, 28, 1, 144 },
10965+ { 0x1, 0x1, 171, 1849, -1, 28, 1, 144 },
10966+ { 0x1, 0x1, 171, 1850, -1, 28, 1, 140 },
10967+ { 0x1, 0x1, 171, 1851, -1, 28, 1, 146 },
10968+ { 0x1, 0x1, 171, 1852, -1, 28, 1, 147 },
10969+ { 0x1, 0x1, 171, 1853, -1, 28, 1, 148 },
10970+ { 0x1, 0x1, 171, 1854, -1, 28, 1, 149 },
10971+ { 0x1, 0x1, 171, 1855, -1, 28, 1, 149 },
10972+ { 0x1, 0x1, 171, 1856, -1, 28, 1, 145 },
10973+ { 0x1, 0x1, 171, 1857, -1, 28, 1, 146 },
10974+ { 0x1, 0x1, 171, 1858, -1, 28, 1, 147 },
10975+ { 0x1, 0x1, 171, 1859, -1, 28, 1, 148 },
10976+ { 0x1, 0x1, 171, 1860, -1, 28, 1, 149 },
10977+ { 0x1, 0x1, 171, 1861, -1, 28, 1, 149 },
10978+ { 0x1, 0x1, 171, 1862, -1, 28, 1, 145 },
10979+ { 0x1, 0x1, 171, 1863, -1, 28, 1, 141 },
10980+ { 0x1, 0x1, 171, 1864, -1, 28, 1, 142 },
10981+ { 0x1, 0x1, 171, 1865, -1, 28, 1, 143 },
10982+ { 0x1, 0x1, 171, 1866, -1, 28, 1, 144 },
10983+ { 0x1, 0x1, 171, 1867, -1, 28, 1, 144 },
10984+ { 0x1, 0x1, 171, 1868, -1, 28, 1, 140 },
10985+ { 0x1, 0x1, 171, 1869, -1, 28, 1, 146 },
10986+ { 0x1, 0x1, 171, 1870, -1, 28, 1, 147 },
10987+ { 0x1, 0x1, 171, 1871, -1, 28, 1, 148 },
10988+ { 0x1, 0x1, 171, 1872, -1, 28, 1, 149 },
10989+ { 0x1, 0x1, 171, 1873, -1, 28, 1, 149 },
10990+ { 0x1, 0x1, 171, 1874, -1, 28, 1, 145 },
10991+ { 0x1, 0x1, 171, 1875, -1, 28, 1, 146 },
10992+ { 0x1, 0x1, 171, 1876, -1, 28, 1, 147 },
10993+ { 0x1, 0x1, 171, 1877, -1, 28, 1, 148 },
10994+ { 0x1, 0x1, 171, 1878, -1, 28, 1, 149 },
10995+ { 0x1, 0x1, 171, 1879, -1, 28, 1, 149 },
10996+ { 0x1, 0x1, 171, 1880, -1, 28, 1, 145 },
10997+ { 0x1, 0x1, 171, 1881, -1, 28, 1, 141 },
10998+ { 0x1, 0x1, 171, 1882, -1, 28, 1, 142 },
10999+ { 0x1, 0x1, 171, 1883, -1, 28, 1, 143 },
11000+ { 0x1, 0x1, 171, 1884, -1, 28, 1, 144 },
11001+ { 0x1, 0x1, 171, 1885, -1, 28, 1, 144 },
11002+ { 0x1, 0x1, 171, 1886, -1, 28, 1, 140 },
11003+ { 0x1, 0x1, 171, 1887, -1, 28, 1, 146 },
11004+ { 0x1, 0x1, 171, 1888, -1, 28, 1, 147 },
11005+ { 0x1, 0x1, 171, 1889, -1, 28, 1, 148 },
11006+ { 0x1, 0x1, 171, 1890, -1, 28, 1, 149 },
11007+ { 0x1, 0x1, 171, 1891, -1, 28, 1, 149 },
11008+ { 0x1, 0x1, 171, 1892, -1, 28, 1, 145 },
11009+ { 0x1, 0x1, 171, 1893, -1, 28, 1, 141 },
11010+ { 0x1, 0x1, 171, 1894, -1, 28, 1, 142 },
11011+ { 0x1, 0x1, 171, 1895, -1, 28, 1, 143 },
11012+ { 0x1, 0x1, 171, 1896, -1, 28, 1, 144 },
11013+ { 0x1, 0x1, 171, 1897, -1, 28, 1, 144 },
11014+ { 0x1, 0x1, 171, 1898, -1, 28, 1, 140 },
11015+ { 0x1, 0x1, 171, 1899, -1, 28, 1, 146 },
11016+ { 0x1, 0x1, 171, 1900, -1, 28, 1, 147 },
11017+ { 0x1, 0x1, 171, 1901, -1, 28, 1, 148 },
11018+ { 0x1, 0x1, 171, 1902, -1, 28, 1, 149 },
11019+ { 0x1, 0x1, 171, 1903, -1, 28, 1, 149 },
11020+ { 0x1, 0x1, 171, 1904, -1, 28, 1, 145 },
11021+ { 0x1, 0x1, 171, 1905, -1, 28, 1, 141 },
11022+ { 0x1, 0x1, 171, 1906, -1, 28, 1, 142 },
11023+ { 0x1, 0x1, 171, 1907, -1, 28, 1, 143 },
11024+ { 0x1, 0x1, 171, 1908, -1, 28, 1, 144 },
11025+ { 0x1, 0x1, 171, 1909, -1, 28, 1, 144 },
11026+ { 0x1, 0x1, 171, 1910, -1, 28, 1, 140 },
11027+ { 0x1, 0x1, 171, 1911, -1, 28, 1, 146 },
11028+ { 0x1, 0x1, 171, 1912, -1, 28, 1, 147 },
11029+ { 0x1, 0x1, 171, 1913, -1, 28, 1, 148 },
11030+ { 0x1, 0x1, 171, 1914, -1, 28, 1, 149 },
11031+ { 0x1, 0x1, 171, 1915, -1, 28, 1, 149 },
11032+ { 0x1, 0x1, 171, 1916, -1, 28, 1, 145 },
11033+ { 0x1, 0x1, 171, 1917, -1, 28, 1, 141 },
11034+ { 0x1, 0x1, 171, 1918, -1, 28, 1, 142 },
11035+ { 0x1, 0x1, 171, 1919, -1, 28, 1, 143 },
11036+ { 0x1, 0x1, 171, 1920, -1, 28, 1, 144 },
11037+ { 0x1, 0x1, 171, 1921, -1, 28, 1, 144 },
11038+ { 0x1, 0x1, 171, 1922, -1, 28, 1, 140 },
11039+ { 0x1, 0x1, 171, 1923, -1, 28, 1, 146 },
11040+ { 0x1, 0x1, 171, 1924, -1, 28, 1, 147 },
11041+ { 0x1, 0x1, 171, 1925, -1, 28, 1, 148 },
11042+ { 0x1, 0x1, 171, 1926, -1, 28, 1, 149 },
11043+ { 0x1, 0x1, 171, 1927, -1, 28, 1, 149 },
11044+ { 0x1, 0x1, 171, 1928, -1, 28, 1, 145 },
11045+ { 0x1, 0x1, 171, 1929, -1, 28, 1, 146 },
11046+ { 0x1, 0x1, 171, 1930, -1, 28, 1, 147 },
11047+ { 0x1, 0x1, 171, 1931, -1, 28, 1, 148 },
11048+ { 0x1, 0x1, 171, 1932, -1, 28, 1, 149 },
11049+ { 0x1, 0x1, 171, 1933, -1, 28, 1, 149 },
11050+ { 0x1, 0x1, 171, 1934, -1, 28, 1, 145 },
11051+ { 0x1, 0x1, 171, 1673, -1, 28, 1, 151 },
11052+ { 0x1, 0x1, 171, 1674, -1, 28, 1, 152 },
11053+ { 0x1, 0x1, 171, 1675, -1, 28, 1, 152 },
11054+ { 0x1, 0x1, 171, 1676, -1, 28, 1, 151 },
11055+ { 0x1, 0x1, 171, 1677, -1, 28, 1, 153 },
11056+ { 0x1, 0x1, 171, 1678, -1, 28, 1, 154 },
11057+ { 0x1, 0x1, 171, 1679, -1, 28, 1, 154 },
11058+ { 0x1, 0x1, 171, 1680, -1, 28, 1, 153 },
11059+ { 0x1, 0x1, 171, 1681, -1, 28, 1, 153 },
11060+ { 0x1, 0x1, 171, 1682, -1, 28, 1, 154 },
11061+ { 0x1, 0x1, 171, 1683, -1, 28, 1, 154 },
11062+ { 0x1, 0x1, 171, 1684, -1, 28, 1, 153 },
11063+ { 0x1, 0x1, 171, 1979, -1, 28, 1, 136 },
11064+ { 0x1, 0x1, 171, 1980, -1, 28, 1, 136 },
11065+ { 0x1, 0x1, 171, 1981, -1, 28, 1, 136 },
11066+ { 0x1, 0x1, 171, 1982, -1, 28, 1, 136 },
11067+ { 0x1, 0x1, 172, 1935, -1, 29, 1, 151 },
11068+ { 0x1, 0x1, 172, 1936, -1, 29, 1, 152 },
11069+ { 0x1, 0x1, 172, 1937, -1, 29, 1, 152 },
11070+ { 0x1, 0x1, 172, 1938, -1, 29, 1, 151 },
11071+ { 0x1, 0x1, 172, 1939, -1, 29, 1, 153 },
11072+ { 0x1, 0x1, 172, 1940, -1, 29, 1, 154 },
11073+ { 0x1, 0x1, 172, 1941, -1, 29, 1, 154 },
11074+ { 0x1, 0x1, 172, 1942, -1, 29, 1, 153 },
11075+ { 0x1, 0x1, 172, 1943, -1, 29, 1, 153 },
11076+ { 0x1, 0x1, 172, 1944, -1, 29, 1, 154 },
11077+ { 0x1, 0x1, 172, 1945, -1, 29, 1, 154 },
11078+ { 0x1, 0x1, 172, 1946, -1, 29, 1, 153 },
11079+ { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11080+ { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11081+ { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11082+ { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11083+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11084+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11085+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11086+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11087+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11088+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11089+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11090+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11091+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11092+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11093+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11094+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11095+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11096+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11097+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11098+ { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11099+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11100+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11101+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11102+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11103+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11104+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11105+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11106+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11107+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11108+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11109+ { 0x3, 0x3, 173, 269, -1, 28, 1, 130 },
11110+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11111+ { 0x3, 0x3, 173, 2224, -1, 28, 1, 124 },
11112+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11113+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11114+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11115+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11116+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11117+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11118+ { 0x3, 0x3, 173, 271, -1, 28, 1, 130 },
11119+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11120+ { 0x3, 0x3, 173, 2225, -1, 28, 1, 124 },
11121+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11122+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11123+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11124+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11125+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11126+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11127+ { 0x3, 0x3, 173, 273, -1, 28, 1, 130 },
11128+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11129+ { 0x3, 0x3, 173, 2226, -1, 28, 1, 124 },
11130+ { 0x3, 0x3, 173, -1, -1, 28, 1, 125 },
11131+ { 0x3, 0x3, 173, 275, -1, 28, 1, 125 },
11132+ { 0x3, 0x3, 173, -1, -1, 28, 1, 125 },
11133+ { 0x3, 0x3, 173, 276, -1, 28, 1, 125 },
11134+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11135+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11136+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11137+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11138+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11139+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11140+ { 0x3, 0x3, 173, 277, -1, 28, 1, 130 },
11141+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11142+ { 0x3, 0x3, 173, 2227, -1, 28, 1, 124 },
11143+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11144+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11145+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11146+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11147+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11148+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11149+ { 0x3, 0x3, 173, 279, -1, 28, 1, 130 },
11150+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11151+ { 0x3, 0x3, 173, 2228, -1, 28, 1, 124 },
11152+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11153+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11154+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11155+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11156+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11157+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11158+ { 0x3, 0x3, 173, 281, -1, 28, 1, 130 },
11159+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11160+ { 0x3, 0x3, 173, 2229, -1, 28, 1, 124 },
11161+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11162+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11163+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11164+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11165+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11166+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11167+ { 0x3, 0x3, 173, 283, -1, 28, 1, 130 },
11168+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11169+ { 0x3, 0x3, 173, 2230, -1, 28, 1, 124 },
11170+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11171+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11172+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11173+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11174+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11175+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11176+ { 0x3, 0x3, 173, 285, -1, 28, 1, 130 },
11177+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11178+ { 0x3, 0x3, 173, 2231, -1, 28, 1, 124 },
11179+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11180+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11181+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11182+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11183+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11184+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11185+ { 0x3, 0x3, 173, 287, -1, 28, 1, 130 },
11186+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11187+ { 0x3, 0x3, 173, 2232, -1, 28, 1, 124 },
11188+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11189+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11190+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11191+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11192+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11193+ { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11194+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11195+ { 0x3, 0x3, 173, 289, -1, 28, 1, 130 },
11196+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11197+ { 0x3, 0x3, 173, 2233, -1, 28, 1, 124 },
11198+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11199+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11200+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11201+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11202+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11203+ { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11204+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11205+ { 0x3, 0x3, 173, 291, -1, 28, 1, 130 },
11206+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11207+ { 0x3, 0x3, 173, 2234, -1, 28, 1, 124 },
11208+ { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11209+ { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11210+ { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11211+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11212+ { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11213+ { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11214+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11215+ { 0x3, 0x3, 173, 293, -1, 28, 1, 130 },
11216+ { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11217+ { 0x3, 0x3, 173, 2235, -1, 28, 1, 124 },
11218+ { 0x3, 0x3, 173, -1, -1, 28, 1, 140 },
11219+ { 0x3, 0x3, 173, -1, -1, 28, 1, 145 },
11220+ { 0x3, 0x3, 173, -1, -1, 28, 1, 145 },
11221+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11222+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11223+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11224+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11225+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11226+ { 0x3, 0x3, 173, 2236, -1, 28, 1, 140 },
11227+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11228+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11229+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11230+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11231+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11232+ { 0x3, 0x3, 173, 2237, -1, 28, 1, 145 },
11233+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11234+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11235+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11236+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11237+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11238+ { 0x3, 0x3, 173, 2238, -1, 28, 1, 145 },
11239+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11240+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11241+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11242+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11243+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11244+ { 0x3, 0x3, 173, 2239, -1, 28, 1, 140 },
11245+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11246+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11247+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11248+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11249+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11250+ { 0x3, 0x3, 173, 2240, -1, 28, 1, 145 },
11251+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11252+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11253+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11254+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11255+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11256+ { 0x3, 0x3, 173, 2241, -1, 28, 1, 145 },
11257+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11258+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11259+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11260+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11261+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11262+ { 0x3, 0x3, 173, 2242, -1, 28, 1, 140 },
11263+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11264+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11265+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11266+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11267+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11268+ { 0x3, 0x3, 173, 2243, -1, 28, 1, 145 },
11269+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11270+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11271+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11272+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11273+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11274+ { 0x3, 0x3, 173, 2244, -1, 28, 1, 145 },
11275+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11276+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11277+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11278+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11279+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11280+ { 0x3, 0x3, 173, 2245, -1, 28, 1, 140 },
11281+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11282+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11283+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11284+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11285+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11286+ { 0x3, 0x3, 173, 2246, -1, 28, 1, 145 },
11287+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11288+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11289+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11290+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11291+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11292+ { 0x3, 0x3, 173, 2247, -1, 28, 1, 140 },
11293+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11294+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11295+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11296+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11297+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11298+ { 0x3, 0x3, 173, 2248, -1, 28, 1, 145 },
11299+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11300+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11301+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11302+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11303+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11304+ { 0x3, 0x3, 173, 2249, -1, 28, 1, 140 },
11305+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11306+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11307+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11308+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11309+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11310+ { 0x3, 0x3, 173, 2250, -1, 28, 1, 145 },
11311+ { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11312+ { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11313+ { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11314+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11315+ { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11316+ { 0x3, 0x3, 173, 2251, -1, 28, 1, 140 },
11317+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11318+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11319+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11320+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11321+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11322+ { 0x3, 0x3, 173, 2252, -1, 28, 1, 145 },
11323+ { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11324+ { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11325+ { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11326+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11327+ { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11328+ { 0x3, 0x3, 173, 2253, -1, 28, 1, 145 },
11329+ { 0x3, 0x3, 173, -1, -1, 28, 1, 151 },
11330+ { 0x3, 0x3, 173, -1, -1, 28, 1, 152 },
11331+ { 0x3, 0x3, 173, 933, -1, 28, 1, 152 },
11332+ { 0x3, 0x3, 173, 934, -1, 28, 1, 151 },
11333+ { 0x3, 0x3, 173, -1, -1, 28, 1, 153 },
11334+ { 0x3, 0x3, 173, -1, -1, 28, 1, 154 },
11335+ { 0x3, 0x3, 173, 935, -1, 28, 1, 154 },
11336+ { 0x3, 0x3, 173, 936, -1, 28, 1, 153 },
11337+ { 0x3, 0x3, 173, -1, -1, 28, 1, 153 },
11338+ { 0x3, 0x3, 173, -1, -1, 28, 1, 154 },
11339+ { 0x3, 0x3, 173, 937, -1, 28, 1, 154 },
11340+ { 0x3, 0x3, 173, 938, -1, 28, 1, 153 },
11341+ { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11342+ { 0x3, 0x3, 173, 2190, -1, 28, 1, 131 },
11343+ { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11344+ { 0x3, 0x3, 173, 2191, -1, 28, 1, 138 },
11345+ { 0x3, 0x3, 173, -1, -1, 28, 1, 132 },
11346+ { 0x3, 0x3, 173, 2192, -1, 28, 1, 132 },
11347+ { 0x3, 0x3, 173, -1, -1, 28, 1, 132 },
11348+ { 0x3, 0x3, 173, 2193, -1, 28, 1, 132 },
11349+ { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11350+ { 0x3, 0x3, 173, 2194, -1, 28, 1, 131 },
11351+ { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11352+ { 0x3, 0x3, 173, 2195, -1, 28, 1, 138 },
11353+ { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11354+ { 0x3, 0x3, 173, 2196, -1, 28, 1, 131 },
11355+ { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11356+ { 0x3, 0x3, 173, 2197, -1, 28, 1, 138 },
11357+ { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11358+ { 0x3, 0x3, 173, -1, -1, 28, 1, 133 },
11359+ { 0x3, 0x3, 173, 2198, -1, 28, 1, 131 },
11360+ { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11361+ { 0x3, 0x3, 173, -1, -1, 28, 1, 139 },
11362+ { 0x3, 0x3, 173, 2199, -1, 28, 1, 138 },
11363+ { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11364+ { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11365+ { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11366+ { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11367+ { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11368+ { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11369+ { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11370+ { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11371+ { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11372+ { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11373+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11374+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11375+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11376+ { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11377+ { 0x0, 0x0, 174, -1, 392, 0, 0, -1 },
11378+ { 0x0, 0x0, 174, -1, 394, 0, 0, -1 },
11379+ { 0x0, 0x0, 174, 3004, 2968, 0, 1, 1 },
11380+ { 0x0, 0x0, 174, 3005, 2969, 0, 1, 1 },
11381+ { 0x0, 0x0, 174, -1, 400, 0, 0, -1 },
11382+ { 0x0, 0x0, 174, -1, 402, 0, 0, -1 },
11383+ { 0x0, 0x0, 174, 3008, 2972, 0, 1, 1 },
11384+ { 0x0, 0x0, 174, 3009, 2973, 0, 1, 1 },
11385+ { 0x11, 0x31, 175, 2847, 407, 33, 1, 4 },
11386+ { 0x2200001, 0x2200001, 175, -1, 408, 12, 1, 4 },
11387+ { 0x11, 0x31, 175, 2047, 409, 33, 1, 4 },
11388+ { 0x2200001, 0x2200001, 175, -1, 411, 12, 1, 4 },
11389+ { 0x1, 0x1, 175, -1, 415, 37, 1, 4 },
11390+ { 0x2000001, 0x2000001, 175, -1, 416, 12, 1, 4 },
11391+ { 0x11, 0x11, 175, -1, 417, 33, 1, 4 },
11392+ { 0x2200001, 0x2200001, 175, -1, 418, 12, 1, 4 },
11393+ { 0x1, 0x1, 175, 2053, 419, 37, 1, 4 },
11394+ { 0x2000001, 0x2000001, 175, -1, 421, 12, 1, 4 },
11395+ { 0x11, 0x11, 175, 2055, 423, 33, 1, 4 },
11396+ { 0x2200001, 0x2200001, 175, -1, 425, 12, 1, 4 },
11397+ { 0x1, 0x1, 175, 2057, 427, 37, 1, 4 },
11398+ { 0x2000001, 0x2000001, 175, -1, 429, 12, 1, 4 },
11399+ { 0x11, 0x11, 175, 2059, 431, 33, 1, 4 },
11400+ { 0x2200001, 0x2200001, 175, -1, 433, 12, 1, 4 },
11401+ { 0x1, 0x1, 175, 2061, 435, 37, 1, 4 },
11402+ { 0x2000001, 0x2000001, 175, -1, 437, 12, 1, 4 },
11403+ { 0x11, 0x11, 175, 2063, 439, 33, 1, 4 },
11404+ { 0x2200001, 0x2200001, 175, -1, 441, 12, 1, 4 },
11405+ { 0x11, 0x31, 175, 2867, 447, 33, 1, 4 },
11406+ { 0x2200001, 0x2200001, 175, -1, 448, 12, 1, 4 },
11407+ { 0x11, 0x31, 175, 2069, 449, 33, 1, 4 },
11408+ { 0x2200001, 0x2200001, 175, -1, 451, 12, 1, 4 },
11409+ { 0x11, 0x31, 175, 2887, 455, 33, 1, 4 },
11410+ { 0x2200001, 0x2200001, 175, -1, 456, 12, 1, 4 },
11411+ { 0x11, 0x31, 175, 2095, 457, 33, 1, 4 },
11412+ { 0x2200001, 0x2200001, 175, -1, 459, 12, 1, 4 },
11413+ { 0x1, 0x1, 175, -1, 463, 37, 1, 4 },
11414+ { 0x2000001, 0x2000001, 175, -1, 464, 12, 1, 4 },
11415+ { 0x11, 0x11, 175, -1, 465, 33, 1, 4 },
11416+ { 0x2200001, 0x2200001, 175, -1, 466, 12, 1, 4 },
11417+ { 0x1, 0x1, 175, 2101, 467, 37, 1, 4 },
11418+ { 0x2000001, 0x2000001, 175, -1, 469, 12, 1, 4 },
11419+ { 0x11, 0x11, 175, 2103, 471, 33, 1, 4 },
11420+ { 0x2200001, 0x2200001, 175, -1, 473, 12, 1, 4 },
11421+ { 0x1, 0x1, 175, 2105, 475, 37, 1, 4 },
11422+ { 0x2000001, 0x2000001, 175, -1, 477, 12, 1, 4 },
11423+ { 0x11, 0x11, 175, 2107, 479, 33, 1, 4 },
11424+ { 0x2200001, 0x2200001, 175, -1, 481, 12, 1, 4 },
11425+ { 0x1, 0x1, 175, 2109, 483, 37, 1, 4 },
11426+ { 0x2000001, 0x2000001, 175, -1, 485, 12, 1, 4 },
11427+ { 0x11, 0x11, 175, 2111, 487, 33, 1, 4 },
11428+ { 0x2200001, 0x2200001, 175, -1, 489, 12, 1, 4 },
11429+ { 0x11, 0x31, 175, 2907, 495, 33, 1, 4 },
11430+ { 0x2200001, 0x2200001, 175, -1, 496, 12, 1, 4 },
11431+ { 0x11, 0x31, 175, 2117, 497, 33, 1, 4 },
11432+ { 0x2200001, 0x2200001, 175, -1, 499, 12, 1, 4 },
11433+ { 0x1, 0x1, 175, -1, 503, 33, 1, 4 },
11434+ { 0x200001, 0x200001, 175, -1, 504, 12, 1, 4 },
11435+ { 0x1, 0x1, 175, -1, 505, 33, 1, 4 },
11436+ { 0x200001, 0x200001, 175, -1, 506, 12, 1, 4 },
11437+ { 0x1, 0x1, 175, -1, 511, 33, 1, 4 },
11438+ { 0x200001, 0x200001, 175, -1, 512, 12, 1, 4 },
11439+ { 0x1, 0x1, 175, -1, 513, 33, 1, 4 },
11440+ { 0x200001, 0x200001, 175, -1, 514, 12, 1, 4 },
11441+ { 0x2200001, 0x6200001, 176, 2850, -1, 12, 1, 4 },
11442+ { 0x11, 0x11, 176, 1994, -1, 33, 1, 4 },
11443+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11444+ { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11445+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11446+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11447+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11448+ { 0x1, 0x1, 176, 2000, -1, 37, 1, 4 },
11449+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11450+ { 0x11, 0x11, 176, 2002, -1, 33, 1, 4 },
11451+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11452+ { 0x1, 0x1, 176, 2004, -1, 37, 1, 4 },
11453+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11454+ { 0x11, 0x11, 176, 2006, -1, 33, 1, 4 },
11455+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11456+ { 0x1, 0x1, 176, 2008, -1, 37, 1, 4 },
11457+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11458+ { 0x11, 0x11, 176, 2010, -1, 33, 1, 4 },
11459+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11460+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11461+ { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
11462+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11463+ { 0x2200001, 0x6200001, 176, 2870, -1, 12, 1, 4 },
11464+ { 0x11, 0x11, 176, 2014, -1, 33, 1, 4 },
11465+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11466+ { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11467+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11468+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11469+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11470+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11471+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11472+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11473+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11474+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11475+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11476+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11477+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11478+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11479+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11480+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11481+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11482+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11483+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11484+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11485+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11486+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11487+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11488+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11489+ { 0x2200001, 0x6200001, 176, 2890, -1, 12, 1, 4 },
11490+ { 0x11, 0x11, 176, 2018, -1, 33, 1, 4 },
11491+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11492+ { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11493+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11494+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11495+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11496+ { 0x1, 0x1, 176, 2024, -1, 37, 1, 4 },
11497+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11498+ { 0x11, 0x11, 176, 2026, -1, 33, 1, 4 },
11499+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11500+ { 0x1, 0x1, 176, 2028, -1, 37, 1, 4 },
11501+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11502+ { 0x11, 0x11, 176, 2030, -1, 33, 1, 4 },
11503+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11504+ { 0x1, 0x1, 176, 2032, -1, 37, 1, 4 },
11505+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11506+ { 0x11, 0x11, 176, 2034, -1, 33, 1, 4 },
11507+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11508+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11509+ { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
11510+ { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11511+ { 0x2200001, 0x6200001, 176, 2909, -1, 12, 1, 4 },
11512+ { 0x11, 0x11, 176, 2038, -1, 33, 1, 4 },
11513+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11514+ { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11515+ { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11516+ { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11517+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11518+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11519+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11520+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11521+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11522+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11523+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11524+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11525+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11526+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11527+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11528+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11529+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11530+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11531+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11532+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11533+ { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11534+ { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11535+ { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11536+ { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11537+ { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11538+ { 0x1, 0x1, 176, 395, -1, 33, 1, 4 },
11539+ { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11540+ { 0x200001, 0x200001, 176, 396, -1, 12, 1, 4 },
11541+ { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11542+ { 0x1, 0x1, 176, 397, -1, 33, 1, 4 },
11543+ { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11544+ { 0x200001, 0x200001, 176, 398, -1, 12, 1, 4 },
11545+ { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11546+ { 0x1, 0x1, 176, 403, -1, 33, 1, 4 },
11547+ { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11548+ { 0x200001, 0x200001, 176, 404, -1, 12, 1, 4 },
11549+ { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11550+ { 0x1, 0x1, 176, 405, -1, 33, 1, 4 },
11551+ { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11552+ { 0x200001, 0x200001, 176, 406, -1, 12, 1, 4 },
11553+ { 0x0, 0x0, 177, -1, 2293, 0, 0, -1 },
11554+ { 0x9, 0x9, 177, -1, 2301, 33, 1, 49 },
11555+ { 0x9, 0x9, 177, -1, 2959, 33, 1, 49 },
11556+ { 0x0, 0x0, 177, -1, 2346, 0, 0, -1 },
11557+ { 0x7, 0x7, 177, -1, -1, 27, 1, 49 },
11558+ { 0x1, 0x1, 197, -1, -1, 27, 1, 10 },
11559+ { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
11560+ { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
11561+ { 0x2, 0x3, 211, 1151, -1, 27, 1, 33 },
11562+ { 0x0, 0x0, 211, 1152, -1, 0, 1, 33 },
11563+ { 0x0, 0x0, 211, 1153, -1, 0, 1, 0 },
11564+ { 0x0, 0x0, 211, 1154, -1, 0, 1, 0 },
11565+ { 0x0, 0x0, 211, 1155, -1, 0, 1, 0 },
11566+ { 0x0, 0x0, 211, 1156, -1, 0, 1, 0 },
11567+ { 0x0, 0x0, 211, 2988, -1, 0, 1, 93 },
11568+ { 0x0, 0x0, 211, 2989, -1, 0, 1, 93 },
11569+ { 0x0, 0x0, 211, 2990, 949, 0, 0, -1 },
11570+ { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
11571+ { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
11572+ { 0x1, 0x1, 213, -1, 1408, 32, 1, 135 },
11573+ { 0x1, 0x1, 213, -1, 1410, 32, 1, 135 },
11574+ { 0x1, 0x1, 213, -1, 1412, 32, 1, 134 },
11575+ { 0x1, 0x1, 213, -1, 1414, 32, 1, 134 },
11576+ { 0x1, 0x1, 213, -1, 1416, 32, 1, 134 },
11577+ { 0x1, 0x1, 213, -1, 1418, 32, 1, 134 },
11578+ { 0x1, 0x1, 213, -1, 1420, 32, 1, 134 },
11579+ { 0x1, 0x1, 213, -1, 1422, 32, 1, 134 },
11580+ { 0x1, 0x1, 213, -1, 1424, 32, 1, 134 },
11581+ { 0x1, 0x1, 213, -1, 1426, 32, 1, 134 },
11582+ { 0x1, 0x1, 213, -1, 1428, 32, 1, 136 },
11583+ { 0x1, 0x1, 213, -1, 1430, 32, 1, 136 },
11584+ { 0x1, 0x1, 213, -1, 1947, 32, 1, 131 },
11585+ { 0x1, 0x1, 213, -1, 1949, 32, 1, 138 },
11586+ { 0x1, 0x1, 213, -1, 1951, 32, 1, 132 },
11587+ { 0x1, 0x1, 213, -1, 1953, 32, 1, 132 },
11588+ { 0x1, 0x1, 213, -1, 1955, 32, 1, 131 },
11589+ { 0x1, 0x1, 213, -1, 1957, 32, 1, 138 },
11590+ { 0x1, 0x1, 213, -1, 1959, 32, 1, 131 },
11591+ { 0x1, 0x1, 213, -1, 1961, 32, 1, 138 },
11592+ { 0x1, 0x1, 213, 2749, 1963, 32, 1, 131 },
11593+ { 0x1, 0x1, 213, 2750, 1966, 32, 1, 138 },
11594+ { 0x0, 0x0, 214, -1, 2791, 0, 0, -1 },
11595+ { 0x0, 0x0, 214, -1, 2792, 0, 0, -1 },
11596+ { 0x0, 0x0, 214, -1, 2817, 0, 0, -1 },
11597+ { 0x5, 0x5, 214, -1, 2820, 20, 1, 67 },
11598+ { 0x0, 0x0, 218, 2175, 948, 0, 0, -1 },
11599+ { 0x0, 0x0, 219, -1, 1121, 0, 0, -1 },
11600+ { 0x0, 0x0, 219, -1, 1246, 0, 0, -1 },
11601+ { 0x0, 0x0, 219, -1, -1, 0, 1, 121 },
11602+ { 0x0, 0x0, 219, -1, -1, 0, 1, 66 },
11603+ { 0x1, 0x1, 219, 815, 2255, 36, 1, 65 },
11604+ { 0x1, 0x1, 219, 816, 2314, 36, 1, 65 },
11605+ { 0x0, 0x0, 219, 817, 2317, 0, 0, -1 },
11606+ { 0x1, 0x1, 219, 818, -1, 36, 1, 65 },
11607+ { 0x0, 0x0, 219, 1405, -1, 0, 1, 33 },
11608+ { 0x1, 0x1, 219, 819, 2322, 36, 1, 65 },
11609+ { 0x0, 0x0, 219, 820, 2325, 0, 0, -1 },
11610+ { 0x1, 0x1, 219, 821, -1, 36, 1, 65 },
11611+ { 0x0, 0x0, 219, 822, 2328, 0, 0, -1 },
11612+ { 0x1, 0x1, 219, 823, -1, 36, 1, 65 },
11613+ { 0x1, 0x1, 219, 824, 2331, 36, 1, 65 },
11614+ { 0x1, 0x1, 219, 825, 2334, 36, 1, 65 },
11615+ { 0x0, 0x0, 219, 1406, -1, 0, 1, 33 },
11616+ { 0x1, 0x1, 219, 826, 2367, 36, 1, 65 },
11617+ { 0x1, 0x1, 219, 827, -1, 31, 1, 137 },
11618+ { 0x1, 0x1, 219, 226, 1431, 32, 1, 126 },
11619+ { 0x1, 0x1, 219, 227, 1440, 32, 1, 126 },
11620+ { 0x1, 0x1, 219, 228, 1449, 32, 1, 126 },
11621+ { 0x1, 0x1, 219, 229, 1462, 32, 1, 126 },
11622+ { 0x1, 0x1, 219, 230, 1471, 32, 1, 126 },
11623+ { 0x1, 0x1, 219, 231, 1480, 32, 1, 126 },
11624+ { 0x1, 0x1, 219, 232, 1489, 32, 1, 126 },
11625+ { 0x1, 0x1, 219, 233, 1498, 32, 1, 126 },
11626+ { 0x1, 0x1, 219, 234, 1507, 32, 1, 126 },
11627+ { 0x1, 0x1, 219, 235, 1516, 32, 1, 126 },
11628+ { 0x1, 0x1, 219, 236, 1526, 32, 1, 126 },
11629+ { 0x1, 0x1, 219, 237, 1536, 32, 1, 126 },
11630+ { 0x1, 0x1, 219, 238, 1549, 32, 1, 141 },
11631+ { 0x1, 0x1, 219, 239, 1555, 32, 1, 146 },
11632+ { 0x1, 0x1, 219, 240, 1561, 32, 1, 146 },
11633+ { 0x1, 0x1, 219, 241, 1567, 32, 1, 141 },
11634+ { 0x1, 0x1, 219, 242, 1573, 32, 1, 146 },
11635+ { 0x1, 0x1, 219, 243, 1579, 32, 1, 146 },
11636+ { 0x1, 0x1, 219, 244, 1585, 32, 1, 141 },
11637+ { 0x1, 0x1, 219, 245, 1591, 32, 1, 146 },
11638+ { 0x1, 0x1, 219, 246, 1597, 32, 1, 146 },
11639+ { 0x1, 0x1, 219, 247, 1603, 32, 1, 141 },
11640+ { 0x1, 0x1, 219, 248, 1609, 32, 1, 146 },
11641+ { 0x1, 0x1, 219, 249, 1615, 32, 1, 141 },
11642+ { 0x1, 0x1, 219, 250, 1621, 32, 1, 146 },
11643+ { 0x1, 0x1, 219, 251, 1627, 32, 1, 141 },
11644+ { 0x1, 0x1, 219, 252, 1633, 32, 1, 146 },
11645+ { 0x1, 0x1, 219, 253, 1639, 32, 1, 141 },
11646+ { 0x1, 0x1, 219, 254, 1645, 32, 1, 146 },
11647+ { 0x1, 0x1, 219, 255, 1651, 32, 1, 146 },
11648+ { 0x1, 0x1, 219, 831, -1, 31, 1, 155 },
11649+ { 0x0, 0x0, 220, 2370, -1, 0, 1, 65 },
11650+ { 0x0, 0x0, 220, 2371, -1, 0, 1, 28 },
11651+ { 0x0, 0x0, 220, 25, -1, 0, 1, 28 },
11652+ { 0x0, 0x0, 220, 2373, -1, 0, 1, 28 },
11653+ { 0x0, 0x0, 220, 2374, -1, 0, 1, 28 },
11654+ { 0x0, 0x0, 220, 2375, -1, 0, 1, 44 },
11655+ { 0x0, 0x0, 220, 2376, -1, 0, 1, 39 },
11656+ { 0x1, 0x1, 220, 2377, -1, 12, 1, 58 },
11657+ { 0x0, 0x0, 220, 2378, -1, 0, 1, 53 },
11658+ { 0x1000001, 0x1000001, 220, 2379, -1, 12, 1, 58 },
11659+ { 0x1, 0x1, 220, 2380, -1, 36, 1, 53 },
11660+ { 0x200001, 0x200001, 220, 2381, -1, 12, 1, 58 },
11661+ { 0x1, 0x1, 220, 2382, -1, 33, 1, 53 },
11662+ { 0x1200001, 0x1200001, 220, 2383, -1, 12, 1, 48 },
11663+ { 0x9, 0x9, 220, 2384, -1, 33, 1, 48 },
11664+ { 0x0, 0x0, 220, 2385, -1, 0, 1, 58 },
11665+ { 0x0, 0x0, 220, 2386, -1, 0, 1, 53 },
11666+ { 0x0, 0x0, 220, 2387, -1, 0, 1, 58 },
11667+ { 0x0, 0x0, 220, 2388, -1, 0, 1, 53 },
11668+ { 0x0, 0x0, 220, 2389, -1, 0, 1, 58 },
11669+ { 0x0, 0x0, 220, 2390, -1, 0, 1, 53 },
11670+ { 0x0, 0x0, 220, 2391, -1, 0, 1, 48 },
11671+ { 0x0, 0x0, 220, 2392, -1, 0, 1, 48 },
11672+ { 0x1, 0x1, 220, 2393, -1, 12, 1, 58 },
11673+ { 0x0, 0x0, 220, 2394, -1, 0, 1, 53 },
11674+ { 0x200001, 0x1200001, 220, 2395, -1, 12, 1, 58 },
11675+ { 0x1, 0x9, 220, 2396, -1, 33, 1, 53 },
11676+ { 0x0, 0x0, 220, 2397, -1, 0, 1, 58 },
11677+ { 0x0, 0x0, 220, 2398, -1, 0, 1, 53 },
11678+ { 0x0, 0x0, 220, 2399, -1, 0, 1, 58 },
11679+ { 0x0, 0x0, 220, 2400, -1, 0, 1, 53 },
11680+ { 0x1, 0x1, 220, 2401, -1, 12, 1, 58 },
11681+ { 0x0, 0x0, 220, 2402, -1, 0, 1, 53 },
11682+ { 0x1000001, 0x1000001, 220, 2403, -1, 12, 1, 58 },
11683+ { 0x1, 0x1, 220, 2404, -1, 36, 1, 53 },
11684+ { 0x200001, 0x200001, 220, 2405, -1, 12, 1, 58 },
11685+ { 0x1, 0x1, 220, 2406, -1, 33, 1, 53 },
11686+ { 0x1200001, 0x1200001, 220, 2407, -1, 12, 1, 48 },
11687+ { 0x9, 0x9, 220, 2408, -1, 33, 1, 48 },
11688+ { 0x0, 0x0, 220, 2409, -1, 0, 1, 58 },
11689+ { 0x0, 0x0, 220, 2410, -1, 0, 1, 53 },
11690+ { 0x0, 0x0, 220, 2411, -1, 0, 1, 58 },
11691+ { 0x0, 0x0, 220, 2412, -1, 0, 1, 53 },
11692+ { 0x0, 0x0, 220, 2413, -1, 0, 1, 58 },
11693+ { 0x0, 0x0, 220, 2414, -1, 0, 1, 53 },
11694+ { 0x0, 0x0, 220, 2415, -1, 0, 1, 48 },
11695+ { 0x0, 0x0, 220, 2416, -1, 0, 1, 48 },
11696+ { 0x1, 0x1, 220, 2417, -1, 12, 1, 58 },
11697+ { 0x0, 0x0, 220, 2418, -1, 0, 1, 53 },
11698+ { 0x200001, 0x1200001, 220, 2419, -1, 12, 1, 58 },
11699+ { 0x1, 0x9, 220, 2420, -1, 33, 1, 53 },
11700+ { 0x0, 0x0, 220, 2421, -1, 0, 1, 58 },
11701+ { 0x0, 0x0, 220, 2422, -1, 0, 1, 53 },
11702+ { 0x0, 0x0, 220, 2423, -1, 0, 1, 58 },
11703+ { 0x0, 0x0, 220, 2424, -1, 0, 1, 53 },
11704+ { 0x1, 0x1, 220, 2425, -1, 28, 1, 28 },
11705+ { 0x0, 0x0, 220, 2426, -1, 0, 1, 28 },
11706+ { 0x3, 0x3, 220, 2427, -1, 27, 1, 28 },
11707+ { 0x1, 0x1, 220, 2428, -1, 27, 1, 28 },
11708+ { 0x0, 0x0, 220, 2429, -1, 0, 1, 65 },
11709+ { 0x0, 0x0, 220, 2430, -1, 0, 1, 28 },
11710+ { 0x0, 0x0, 220, 2431, -1, 0, 1, 28 },
11711+ { 0x1, 0x1, 220, 2432, -1, 36, 1, 65 },
11712+ { 0x1, 0x1, 220, 2433, -1, 37, 1, 28 },
11713+ { 0x0, 0x0, 220, 2434, -1, 0, 1, 28 },
11714+ { 0x0, 0x0, 220, 2435, -1, 0, 1, 28 },
11715+ { 0x0, 0x0, 220, 2436, -1, 0, 1, 28 },
11716+ { 0x0, 0x0, 220, 2437, -1, 0, 1, 65 },
11717+ { 0x0, 0x0, 220, 2438, -1, 0, 1, 28 },
11718+ { 0x0, 0x0, 220, 37, -1, 0, 1, 28 },
11719+ { 0x1, 0x1, 220, 2440, -1, 36, 1, 65 },
11720+ { 0x1, 0x1, 220, 2441, -1, 37, 1, 28 },
11721+ { 0x0, 0x0, 220, 2442, -1, 0, 1, 28 },
11722+ { 0x1, 0x1, 220, 2443, -1, 36, 1, 65 },
11723+ { 0x1, 0x1, 220, 2444, -1, 37, 1, 28 },
11724+ { 0x0, 0x0, 220, 2445, -1, 0, 1, 28 },
11725+ { 0x0, 0x0, 220, 2446, -1, 0, 1, 65 },
11726+ { 0x0, 0x0, 220, 2447, -1, 0, 1, 28 },
11727+ { 0x0, 0x0, 220, 42, -1, 0, 1, 28 },
11728+ { 0x0, 0x0, 220, 2449, -1, 0, 1, 65 },
11729+ { 0x0, 0x0, 220, 2450, -1, 0, 1, 28 },
11730+ { 0x0, 0x0, 220, 43, -1, 0, 1, 28 },
11731+ { 0x0, 0x0, 220, 2452, -1, 0, 1, 28 },
11732+ { 0x0, 0x0, 220, 2453, -1, 0, 1, 28 },
11733+ { 0x0, 0x0, 220, 2454, -1, 0, 1, 48 },
11734+ { 0x1, 0x1, 220, 2455, -1, 27, 1, 48 },
11735+ { 0x1, 0x1, 220, 2456, -1, 28, 1, 48 },
11736+ { 0x3, 0x3, 220, 2457, -1, 27, 1, 48 },
11737+ { 0x1, 0x1, 220, 2458, -1, 29, 1, 48 },
11738+ { 0x5, 0x5, 220, 2459, -1, 27, 1, 48 },
11739+ { 0x3, 0x3, 220, 2460, -1, 28, 1, 48 },
11740+ { 0x7, 0x7, 220, 2461, -1, 27, 1, 48 },
11741+ { 0x0, 0x0, 220, 2462, -1, 0, 1, 48 },
11742+ { 0x0, 0x0, 220, 2463, -1, 0, 1, 48 },
11743+ { 0x0, 0x0, 220, 2464, -1, 0, 1, 48 },
11744+ { 0x0, 0x0, 220, 2465, -1, 0, 1, 48 },
11745+ { 0x1, 0x1, 220, 2466, -1, 28, 1, 28 },
11746+ { 0x0, 0x0, 220, 2467, -1, 0, 1, 28 },
11747+ { 0x3, 0x3, 220, 2468, -1, 27, 1, 28 },
11748+ { 0x1, 0x1, 220, 2469, -1, 27, 1, 28 },
11749+ { 0x0, 0x0, 220, 2470, -1, 0, 1, 28 },
11750+ { 0x0, 0x0, 220, 2471, -1, 0, 1, 28 },
11751+ { 0x0, 0x0, 220, 2472, -1, 0, 1, 28 },
11752+ { 0x0, 0x0, 220, 52, -1, 0, 1, 28 },
11753+ { 0x0, 0x0, 220, 2474, -1, 0, 1, 28 },
11754+ { 0x0, 0x0, 220, 2475, -1, 0, 1, 28 },
11755+ { 0x0, 0x0, 220, 57, -1, 0, 1, 28 },
11756+ { 0x0, 0x0, 220, 2477, -1, 0, 1, 23 },
11757+ { 0x0, 0x0, 220, 2478, -1, 0, 1, 23 },
11758+ { 0x0, 0x0, 220, 2479, -1, 0, 1, 23 },
11759+ { 0x0, 0x0, 220, 2480, -1, 0, 1, 23 },
11760+ { 0x0, 0x0, 220, 2481, -1, 0, 1, 34 },
11761+ { 0x0, 0x0, 220, 2482, -1, 0, 1, 65 },
11762+ { 0x0, 0x0, 220, 2483, -1, 0, 1, 28 },
11763+ { 0x0, 0x0, 220, 64, -1, 0, 1, 28 },
11764+ { 0x1, 0x1, 221, 2485, -1, 34, 1, 65 },
11765+ { 0x1, 0x1, 221, 2486, -1, 34, 1, 30 },
11766+ { 0x1, 0x1, 221, 2487, -1, 34, 1, 30 },
11767+ { 0x1, 0x1, 221, 2488, -1, 34, 1, 30 },
11768+ { 0x1, 0x1, 221, 2489, -1, 34, 1, 30 },
11769+ { 0x1, 0x1, 221, 2490, -1, 34, 1, 45 },
11770+ { 0x1, 0x1, 221, 2491, -1, 34, 1, 41 },
11771+ { 0x400001, 0x400001, 221, 2492, -1, 12, 1, 60 },
11772+ { 0x1, 0x1, 221, 2493, -1, 34, 1, 55 },
11773+ { 0x1400001, 0x1400001, 221, 2494, -1, 12, 1, 60 },
11774+ { 0x5, 0x5, 221, 2495, -1, 34, 1, 55 },
11775+ { 0x600001, 0x600001, 221, 2496, -1, 12, 1, 60 },
11776+ { 0x3, 0x3, 221, 2497, -1, 33, 1, 55 },
11777+ { 0x1600001, 0x1600001, 221, 2498, -1, 12, 1, 50 },
11778+ { 0xb, 0xb, 221, 2499, -1, 33, 1, 50 },
11779+ { 0x1, 0x1, 221, 2500, -1, 34, 1, 60 },
11780+ { 0x1, 0x1, 221, 2501, -1, 34, 1, 55 },
11781+ { 0x1, 0x1, 221, 2502, -1, 34, 1, 60 },
11782+ { 0x1, 0x1, 221, 2503, -1, 34, 1, 55 },
11783+ { 0x1, 0x1, 221, 2504, -1, 34, 1, 60 },
11784+ { 0x1, 0x1, 221, 2505, -1, 34, 1, 55 },
11785+ { 0x1, 0x1, 221, 2506, -1, 34, 1, 50 },
11786+ { 0x1, 0x1, 221, 2507, -1, 34, 1, 50 },
11787+ { 0x400001, 0x400001, 221, 2508, -1, 12, 1, 60 },
11788+ { 0x1, 0x1, 221, 2509, -1, 34, 1, 55 },
11789+ { 0x600001, 0x1600001, 221, 2510, -1, 12, 1, 60 },
11790+ { 0x3, 0xb, 221, 2511, -1, 33, 1, 55 },
11791+ { 0x1, 0x1, 221, 2512, -1, 34, 1, 60 },
11792+ { 0x1, 0x1, 221, 2513, -1, 34, 1, 55 },
11793+ { 0x1, 0x1, 221, 2514, -1, 34, 1, 60 },
11794+ { 0x1, 0x1, 221, 2515, -1, 34, 1, 55 },
11795+ { 0x400001, 0x400001, 221, 2516, -1, 12, 1, 60 },
11796+ { 0x1, 0x1, 221, 2517, -1, 34, 1, 55 },
11797+ { 0x1400001, 0x1400001, 221, 2518, -1, 12, 1, 60 },
11798+ { 0x5, 0x5, 221, 2519, -1, 34, 1, 55 },
11799+ { 0x600001, 0x600001, 221, 2520, -1, 12, 1, 60 },
11800+ { 0x3, 0x3, 221, 2521, -1, 33, 1, 55 },
11801+ { 0x1600001, 0x1600001, 221, 2522, -1, 12, 1, 50 },
11802+ { 0xb, 0xb, 221, 2523, -1, 33, 1, 50 },
11803+ { 0x1, 0x1, 221, 2524, -1, 34, 1, 60 },
11804+ { 0x1, 0x1, 221, 2525, -1, 34, 1, 55 },
11805+ { 0x1, 0x1, 221, 2526, -1, 34, 1, 60 },
11806+ { 0x1, 0x1, 221, 2527, -1, 34, 1, 55 },
11807+ { 0x1, 0x1, 221, 2528, -1, 34, 1, 60 },
11808+ { 0x1, 0x1, 221, 2529, -1, 34, 1, 55 },
11809+ { 0x1, 0x1, 221, 2530, -1, 34, 1, 50 },
11810+ { 0x1, 0x1, 221, 2531, -1, 34, 1, 50 },
11811+ { 0x400001, 0x400001, 221, 2532, -1, 12, 1, 60 },
11812+ { 0x1, 0x1, 221, 2533, -1, 34, 1, 55 },
11813+ { 0x600001, 0x1600001, 221, 2534, -1, 12, 1, 60 },
11814+ { 0x3, 0xb, 221, 2535, -1, 33, 1, 55 },
11815+ { 0x1, 0x1, 221, 2536, -1, 34, 1, 60 },
11816+ { 0x1, 0x1, 221, 2537, -1, 34, 1, 55 },
11817+ { 0x1, 0x1, 221, 2538, -1, 34, 1, 60 },
11818+ { 0x1, 0x1, 221, 2539, -1, 34, 1, 55 },
11819+ { 0x41, 0x41, 221, 2540, -1, 28, 1, 30 },
11820+ { 0x1, 0x1, 221, 2541, -1, 34, 1, 30 },
11821+ { 0x83, 0x83, 221, 2542, -1, 27, 1, 30 },
11822+ { 0x81, 0x81, 221, 2543, -1, 27, 1, 30 },
11823+ { 0x1, 0x1, 221, 2544, -1, 34, 1, 65 },
11824+ { 0x1, 0x1, 221, 2545, -1, 34, 1, 30 },
11825+ { 0x1, 0x1, 221, 2546, -1, 34, 1, 30 },
11826+ { 0x5, 0x5, 221, 2547, -1, 34, 1, 65 },
11827+ { 0x9, 0x9, 221, 2548, -1, 34, 1, 30 },
11828+ { 0x1, 0x1, 221, 2549, -1, 34, 1, 30 },
11829+ { 0x1, 0x1, 221, 2550, -1, 34, 1, 30 },
11830+ { 0x1, 0x1, 221, 2551, -1, 34, 1, 30 },
11831+ { 0x1, 0x1, 221, 2552, -1, 34, 1, 65 },
11832+ { 0x1, 0x1, 221, 2553, -1, 34, 1, 30 },
11833+ { 0x1, 0x1, 221, 2554, -1, 34, 1, 30 },
11834+ { 0x5, 0x5, 221, 2555, -1, 34, 1, 65 },
11835+ { 0x9, 0x9, 221, 2556, -1, 34, 1, 30 },
11836+ { 0x1, 0x1, 221, 2557, -1, 34, 1, 30 },
11837+ { 0x5, 0x5, 221, 2558, -1, 34, 1, 65 },
11838+ { 0x9, 0x9, 221, 2559, -1, 34, 1, 30 },
11839+ { 0x1, 0x1, 221, 2560, -1, 34, 1, 30 },
11840+ { 0x1, 0x1, 221, 2561, -1, 34, 1, 65 },
11841+ { 0x1, 0x1, 221, 2562, -1, 34, 1, 30 },
11842+ { 0x1, 0x1, 221, 2563, -1, 34, 1, 30 },
11843+ { 0x1, 0x1, 221, 2564, -1, 34, 1, 65 },
11844+ { 0x1, 0x1, 221, 2565, -1, 34, 1, 30 },
11845+ { 0x1, 0x1, 221, 2566, -1, 34, 1, 30 },
11846+ { 0x1, 0x1, 221, 2567, -1, 34, 1, 30 },
11847+ { 0x1, 0x1, 221, 2568, -1, 34, 1, 30 },
11848+ { 0x1, 0x1, 221, 2569, -1, 34, 1, 50 },
11849+ { 0x81, 0x81, 221, 2570, -1, 27, 1, 50 },
11850+ { 0x41, 0x41, 221, 2571, -1, 28, 1, 50 },
11851+ { 0x83, 0x83, 221, 2572, -1, 27, 1, 50 },
11852+ { 0x21, 0x21, 221, 2573, -1, 29, 1, 50 },
11853+ { 0x85, 0x85, 221, 2574, -1, 27, 1, 50 },
11854+ { 0x43, 0x43, 221, 2575, -1, 28, 1, 50 },
11855+ { 0x87, 0x87, 221, 2576, -1, 27, 1, 50 },
11856+ { 0x1, 0x1, 221, 2577, -1, 34, 1, 50 },
11857+ { 0x1, 0x1, 221, 2578, -1, 34, 1, 50 },
11858+ { 0x1, 0x1, 221, 2579, -1, 34, 1, 50 },
11859+ { 0x1, 0x1, 221, 2580, -1, 34, 1, 50 },
11860+ { 0x41, 0x41, 221, 2581, -1, 28, 1, 30 },
11861+ { 0x1, 0x1, 221, 2582, -1, 34, 1, 30 },
11862+ { 0x83, 0x83, 221, 2583, -1, 27, 1, 30 },
11863+ { 0x81, 0x81, 221, 2584, -1, 27, 1, 30 },
11864+ { 0x1, 0x1, 221, 2585, -1, 34, 1, 30 },
11865+ { 0x1, 0x1, 221, 2586, -1, 34, 1, 30 },
11866+ { 0x1, 0x1, 221, 2587, -1, 34, 1, 30 },
11867+ { 0x1, 0x1, 221, 2588, -1, 34, 1, 30 },
11868+ { 0x1, 0x1, 221, 2589, -1, 34, 1, 30 },
11869+ { 0x1, 0x1, 221, 2590, -1, 34, 1, 30 },
11870+ { 0x1, 0x1, 221, 2591, -1, 34, 1, 30 },
11871+ { 0x1, 0x1, 221, 2592, -1, 34, 1, 25 },
11872+ { 0x1, 0x1, 221, 2593, -1, 34, 1, 25 },
11873+ { 0x1, 0x1, 221, 2594, -1, 34, 1, 25 },
11874+ { 0x1, 0x1, 221, 2595, -1, 34, 1, 25 },
11875+ { 0x1, 0x1, 221, 2596, -1, 34, 1, 36 },
11876+ { 0x1, 0x1, 221, 2597, -1, 34, 1, 65 },
11877+ { 0x1, 0x1, 221, 2598, -1, 34, 1, 30 },
11878+ { 0x1, 0x1, 221, 2599, -1, 34, 1, 30 },
11879+ { 0x1, 0x1, 222, 2600, -1, 35, 1, 65 },
11880+ { 0x1, 0x1, 222, 2601, -1, 35, 1, 31 },
11881+ { 0x1, 0x1, 222, 2602, -1, 35, 1, 31 },
11882+ { 0x1, 0x1, 222, 2603, -1, 35, 1, 31 },
11883+ { 0x1, 0x1, 222, 2604, -1, 35, 1, 31 },
11884+ { 0x1, 0x1, 222, 2605, -1, 35, 1, 46 },
11885+ { 0x1, 0x1, 222, 2606, -1, 35, 1, 42 },
11886+ { 0x800001, 0x800001, 222, 2607, -1, 12, 1, 61 },
11887+ { 0x1, 0x1, 222, 2608, -1, 35, 1, 56 },
11888+ { 0x1800001, 0x1800001, 222, 2609, -1, 12, 1, 61 },
11889+ { 0x3, 0x3, 222, 2610, -1, 35, 1, 56 },
11890+ { 0xa00001, 0xa00001, 222, 2611, -1, 12, 1, 61 },
11891+ { 0x5, 0x5, 222, 2612, -1, 33, 1, 56 },
11892+ { 0x1a00001, 0x1a00001, 222, 2613, -1, 12, 1, 51 },
11893+ { 0xd, 0xd, 222, 2614, -1, 33, 1, 51 },
11894+ { 0x1, 0x1, 222, 2615, -1, 35, 1, 61 },
11895+ { 0x1, 0x1, 222, 2616, -1, 35, 1, 56 },
11896+ { 0x1, 0x1, 222, 2617, -1, 35, 1, 61 },
11897+ { 0x1, 0x1, 222, 2618, -1, 35, 1, 56 },
11898+ { 0x1, 0x1, 222, 2619, -1, 35, 1, 61 },
11899+ { 0x1, 0x1, 222, 2620, -1, 35, 1, 56 },
11900+ { 0x1, 0x1, 222, 2621, -1, 35, 1, 51 },
11901+ { 0x1, 0x1, 222, 2622, -1, 35, 1, 51 },
11902+ { 0x800001, 0x800001, 222, 2623, -1, 12, 1, 61 },
11903+ { 0x1, 0x1, 222, 2624, -1, 35, 1, 56 },
11904+ { 0xa00001, 0x1a00001, 222, 2625, -1, 12, 1, 61 },
11905+ { 0x5, 0xd, 222, 2626, -1, 33, 1, 56 },
11906+ { 0x1, 0x1, 222, 2627, -1, 35, 1, 61 },
11907+ { 0x1, 0x1, 222, 2628, -1, 35, 1, 56 },
11908+ { 0x1, 0x1, 222, 2629, -1, 35, 1, 61 },
11909+ { 0x1, 0x1, 222, 2630, -1, 35, 1, 56 },
11910+ { 0x800001, 0x800001, 222, 2631, -1, 12, 1, 61 },
11911+ { 0x1, 0x1, 222, 2632, -1, 35, 1, 56 },
11912+ { 0x1800001, 0x1800001, 222, 2633, -1, 12, 1, 61 },
11913+ { 0x3, 0x3, 222, 2634, -1, 35, 1, 56 },
11914+ { 0xa00001, 0xa00001, 222, 2635, -1, 12, 1, 61 },
11915+ { 0x5, 0x5, 222, 2636, -1, 33, 1, 56 },
11916+ { 0x1a00001, 0x1a00001, 222, 2637, -1, 12, 1, 51 },
11917+ { 0xd, 0xd, 222, 2638, -1, 33, 1, 51 },
11918+ { 0x1, 0x1, 222, 2639, -1, 35, 1, 61 },
11919+ { 0x1, 0x1, 222, 2640, -1, 35, 1, 56 },
11920+ { 0x1, 0x1, 222, 2641, -1, 35, 1, 61 },
11921+ { 0x1, 0x1, 222, 2642, -1, 35, 1, 56 },
11922+ { 0x1, 0x1, 222, 2643, -1, 35, 1, 61 },
11923+ { 0x1, 0x1, 222, 2644, -1, 35, 1, 56 },
11924+ { 0x1, 0x1, 222, 2645, -1, 35, 1, 51 },
11925+ { 0x1, 0x1, 222, 2646, -1, 35, 1, 51 },
11926+ { 0x800001, 0x800001, 222, 2647, -1, 12, 1, 61 },
11927+ { 0x1, 0x1, 222, 2648, -1, 35, 1, 56 },
11928+ { 0xa00001, 0x1a00001, 222, 2649, -1, 12, 1, 61 },
11929+ { 0x5, 0xd, 222, 2650, -1, 33, 1, 56 },
11930+ { 0x1, 0x1, 222, 2651, -1, 35, 1, 61 },
11931+ { 0x1, 0x1, 222, 2652, -1, 35, 1, 56 },
11932+ { 0x1, 0x1, 222, 2653, -1, 35, 1, 61 },
11933+ { 0x1, 0x1, 222, 2654, -1, 35, 1, 56 },
11934+ { 0x81, 0x81, 222, 2655, -1, 28, 1, 31 },
11935+ { 0x1, 0x1, 222, 2656, -1, 35, 1, 31 },
11936+ { 0x103, 0x103, 222, 2657, -1, 27, 1, 31 },
11937+ { 0x101, 0x101, 222, 2658, -1, 27, 1, 31 },
11938+ { 0x1, 0x1, 222, 2659, -1, 35, 1, 65 },
11939+ { 0x1, 0x1, 222, 2660, -1, 35, 1, 31 },
11940+ { 0x1, 0x1, 222, 2661, -1, 35, 1, 31 },
11941+ { 0x3, 0x3, 222, 2662, -1, 35, 1, 65 },
11942+ { 0x5, 0x5, 222, 2663, -1, 35, 1, 31 },
11943+ { 0x1, 0x1, 222, 2664, -1, 35, 1, 31 },
11944+ { 0x1, 0x1, 222, 2665, -1, 35, 1, 31 },
11945+ { 0x1, 0x1, 222, 2666, -1, 35, 1, 31 },
11946+ { 0x1, 0x1, 222, 2667, -1, 35, 1, 65 },
11947+ { 0x1, 0x1, 222, 2668, -1, 35, 1, 31 },
11948+ { 0x1, 0x1, 222, 2669, -1, 35, 1, 31 },
11949+ { 0x3, 0x3, 222, 2670, -1, 35, 1, 65 },
11950+ { 0x5, 0x5, 222, 2671, -1, 35, 1, 31 },
11951+ { 0x1, 0x1, 222, 2672, -1, 35, 1, 31 },
11952+ { 0x3, 0x3, 222, 2673, -1, 35, 1, 65 },
11953+ { 0x5, 0x5, 222, 2674, -1, 35, 1, 31 },
11954+ { 0x1, 0x1, 222, 2675, -1, 35, 1, 31 },
11955+ { 0x1, 0x1, 222, 2676, -1, 35, 1, 65 },
11956+ { 0x1, 0x1, 222, 2677, -1, 35, 1, 31 },
11957+ { 0x1, 0x1, 222, 2678, -1, 35, 1, 31 },
11958+ { 0x1, 0x1, 222, 2679, -1, 35, 1, 65 },
11959+ { 0x1, 0x1, 222, 2680, -1, 35, 1, 31 },
11960+ { 0x1, 0x1, 222, 2681, -1, 35, 1, 31 },
11961+ { 0x1, 0x1, 222, 2682, -1, 35, 1, 31 },
11962+ { 0x1, 0x1, 222, 2683, -1, 35, 1, 31 },
11963+ { 0x1, 0x1, 222, 2684, -1, 35, 1, 51 },
11964+ { 0x101, 0x101, 222, 2685, -1, 27, 1, 51 },
11965+ { 0x81, 0x81, 222, 2686, -1, 28, 1, 51 },
11966+ { 0x103, 0x103, 222, 2687, -1, 27, 1, 51 },
11967+ { 0x41, 0x41, 222, 2688, -1, 29, 1, 51 },
11968+ { 0x105, 0x105, 222, 2689, -1, 27, 1, 51 },
11969+ { 0x83, 0x83, 222, 2690, -1, 28, 1, 51 },
11970+ { 0x107, 0x107, 222, 2691, -1, 27, 1, 51 },
11971+ { 0x1, 0x1, 222, 2692, -1, 35, 1, 51 },
11972+ { 0x1, 0x1, 222, 2693, -1, 35, 1, 51 },
11973+ { 0x1, 0x1, 222, 2694, -1, 35, 1, 51 },
11974+ { 0x1, 0x1, 222, 2695, -1, 35, 1, 51 },
11975+ { 0x81, 0x81, 222, 2696, -1, 28, 1, 31 },
11976+ { 0x1, 0x1, 222, 2697, -1, 35, 1, 31 },
11977+ { 0x103, 0x103, 222, 2698, -1, 27, 1, 31 },
11978+ { 0x101, 0x101, 222, 2699, -1, 27, 1, 31 },
11979+ { 0x1, 0x1, 222, 2700, -1, 35, 1, 31 },
11980+ { 0x1, 0x1, 222, 2701, -1, 35, 1, 31 },
11981+ { 0x1, 0x1, 222, 2702, -1, 35, 1, 31 },
11982+ { 0x1, 0x1, 222, 2703, -1, 35, 1, 31 },
11983+ { 0x1, 0x1, 222, 2704, -1, 35, 1, 31 },
11984+ { 0x1, 0x1, 222, 2705, -1, 35, 1, 31 },
11985+ { 0x1, 0x1, 222, 2706, -1, 35, 1, 31 },
11986+ { 0x1, 0x1, 222, 2707, -1, 35, 1, 26 },
11987+ { 0x1, 0x1, 222, 2708, -1, 35, 1, 26 },
11988+ { 0x1, 0x1, 222, 2709, -1, 35, 1, 26 },
11989+ { 0x1, 0x1, 222, 2710, -1, 35, 1, 26 },
11990+ { 0x1, 0x1, 222, 2711, -1, 35, 1, 37 },
11991+ { 0x1, 0x1, 222, 2712, -1, 35, 1, 65 },
11992+ { 0x1, 0x1, 222, 2713, -1, 35, 1, 31 },
11993+ { 0x1, 0x1, 222, 2714, -1, 35, 1, 31 },
11994+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
11995+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11996+ { 0x3, 0x3, 223, 2209, -1, 34, 1, 32 },
11997+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11998+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11999+ { 0x3, 0x3, 223, -1, -1, 34, 1, 47 },
12000+ { 0x3, 0x3, 223, -1, -1, 34, 1, 43 },
12001+ { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12002+ { 0x3, 0x3, 223, 2930, -1, 34, 1, 57 },
12003+ { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
12004+ { 0x7, 0x7, 223, 2931, -1, 34, 1, 57 },
12005+ { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
12006+ { 0x7, 0x7, 223, 2932, -1, 33, 1, 57 },
12007+ { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
12008+ { 0xf, 0xf, 223, 2933, -1, 33, 1, 52 },
12009+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12010+ { 0x3, 0x3, 223, 2934, -1, 34, 1, 57 },
12011+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12012+ { 0x3, 0x3, 223, 2935, -1, 34, 1, 57 },
12013+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12014+ { 0x3, 0x3, 223, 2936, -1, 34, 1, 57 },
12015+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12016+ { 0x3, 0x3, 223, 2937, -1, 34, 1, 52 },
12017+ { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12018+ { 0x3, 0x3, 223, 2942, -1, 34, 1, 57 },
12019+ { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
12020+ { 0x7, 0xf, 223, 2943, -1, 33, 1, 57 },
12021+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12022+ { 0x3, 0x3, 223, 2944, -1, 34, 1, 57 },
12023+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12024+ { 0x3, 0x3, 223, 2945, -1, 34, 1, 57 },
12025+ { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12026+ { 0x3, 0x3, 223, 2948, -1, 34, 1, 57 },
12027+ { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
12028+ { 0x7, 0x7, 223, 2949, -1, 34, 1, 57 },
12029+ { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
12030+ { 0x7, 0x7, 223, 2950, -1, 33, 1, 57 },
12031+ { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
12032+ { 0xf, 0xf, 223, 2951, -1, 33, 1, 52 },
12033+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12034+ { 0x3, 0x3, 223, 2952, -1, 34, 1, 57 },
12035+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12036+ { 0x3, 0x3, 223, 2953, -1, 34, 1, 57 },
12037+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12038+ { 0x3, 0x3, 223, 2954, -1, 34, 1, 57 },
12039+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12040+ { 0x3, 0x3, 223, 2955, -1, 34, 1, 52 },
12041+ { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12042+ { 0x3, 0x3, 223, 2960, -1, 34, 1, 57 },
12043+ { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
12044+ { 0x7, 0xf, 223, 2961, -1, 33, 1, 57 },
12045+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12046+ { 0x3, 0x3, 223, 2962, -1, 34, 1, 57 },
12047+ { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12048+ { 0x3, 0x3, 223, 2963, -1, 34, 1, 57 },
12049+ { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
12050+ { 0x3, 0x3, 223, 2828, -1, 34, 1, 32 },
12051+ { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
12052+ { 0x181, 0x181, 223, 2829, -1, 27, 1, 32 },
12053+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12054+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12055+ { 0x3, 0x3, 223, 2210, -1, 34, 1, 32 },
12056+ { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12057+ { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12058+ { 0x3, 0x3, 223, 2211, -1, 34, 1, 32 },
12059+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12060+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12061+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12062+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12063+ { 0x3, 0x3, 223, 2214, -1, 34, 1, 32 },
12064+ { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12065+ { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12066+ { 0x3, 0x3, 223, 2215, -1, 34, 1, 32 },
12067+ { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12068+ { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12069+ { 0x3, 0x3, 223, 2217, -1, 34, 1, 32 },
12070+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12071+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12072+ { 0x3, 0x3, 223, 2219, -1, 34, 1, 32 },
12073+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12074+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12075+ { 0x3, 0x3, 223, 2220, -1, 34, 1, 32 },
12076+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12077+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12078+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12079+ { 0x181, 0x181, 223, -1, -1, 27, 1, 52 },
12080+ { 0xc1, 0xc1, 223, -1, -1, 28, 1, 52 },
12081+ { 0x183, 0x183, 223, -1, -1, 27, 1, 52 },
12082+ { 0x61, 0x61, 223, -1, -1, 29, 1, 52 },
12083+ { 0x185, 0x185, 223, -1, -1, 27, 1, 52 },
12084+ { 0xc3, 0xc3, 223, -1, -1, 28, 1, 52 },
12085+ { 0x187, 0x187, 223, -1, -1, 27, 1, 52 },
12086+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12087+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12088+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12089+ { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12090+ { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
12091+ { 0x3, 0x3, 223, 2832, -1, 34, 1, 32 },
12092+ { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
12093+ { 0x181, 0x181, 223, 2833, -1, 27, 1, 32 },
12094+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12095+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12096+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12097+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12098+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12099+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12100+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12101+ { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12102+ { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12103+ { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12104+ { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12105+ { 0x3, 0x3, 223, -1, -1, 34, 1, 38 },
12106+ { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12107+ { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12108+ { 0x3, 0x3, 223, 2222, -1, 34, 1, 32 },
12109+ { 0x3, 0x3, 224, 522, 1433, 32, 1, 128 },
12110+ { 0x3, 0x3, 224, 523, 1442, 32, 1, 128 },
12111+ { 0x3, 0x3, 224, 524, 1451, 32, 1, 128 },
12112+ { 0x3, 0x3, 224, 525, 1464, 32, 1, 128 },
12113+ { 0x3, 0x3, 224, 526, 1473, 32, 1, 128 },
12114+ { 0x3, 0x3, 224, 527, 1482, 32, 1, 128 },
12115+ { 0x3, 0x3, 224, 528, 1491, 32, 1, 128 },
12116+ { 0x3, 0x3, 224, 529, 1500, 32, 1, 128 },
12117+ { 0x3, 0x3, 224, 530, 1509, 32, 1, 128 },
12118+ { 0x3, 0x3, 224, 531, 1518, 32, 1, 128 },
12119+ { 0x3, 0x3, 224, 532, 1528, 32, 1, 128 },
12120+ { 0x3, 0x3, 224, 533, 1538, 32, 1, 128 },
12121+ { 0x3, 0x3, 224, 546, 1551, 32, 1, 143 },
12122+ { 0x3, 0x3, 224, 547, 1557, 32, 1, 148 },
12123+ { 0x3, 0x3, 224, 548, 1563, 32, 1, 148 },
12124+ { 0x3, 0x3, 224, 549, 1569, 32, 1, 143 },
12125+ { 0x3, 0x3, 224, 550, 1575, 32, 1, 148 },
12126+ { 0x3, 0x3, 224, 551, 1581, 32, 1, 148 },
12127+ { 0x3, 0x3, 224, 552, 1587, 32, 1, 143 },
12128+ { 0x3, 0x3, 224, 553, 1593, 32, 1, 148 },
12129+ { 0x3, 0x3, 224, 554, 1599, 32, 1, 148 },
12130+ { 0x3, 0x3, 224, 555, 1605, 32, 1, 143 },
12131+ { 0x3, 0x3, 224, 556, 1611, 32, 1, 148 },
12132+ { 0x3, 0x3, 224, 557, 1617, 32, 1, 143 },
12133+ { 0x3, 0x3, 224, 558, 1623, 32, 1, 148 },
12134+ { 0x3, 0x3, 224, 559, 1629, 32, 1, 143 },
12135+ { 0x3, 0x3, 224, 560, 1635, 32, 1, 148 },
12136+ { 0x3, 0x3, 224, 561, 1641, 32, 1, 143 },
12137+ { 0x3, 0x3, 224, 562, 1647, 32, 1, 148 },
12138+ { 0x3, 0x3, 224, 563, 1653, 32, 1, 148 },
12139+ { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
12140+ { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
12141+ { 0x0, 0x0, 232, 940, -1, 0, 1, 137 },
12142+ { 0x0, 0x0, 232, 941, -1, 0, 1, 155 },
12143+ { 0x1, 0x1, 233, -1, 1964, 33, 1, 133 },
12144+ { 0x1, 0x1, 233, -1, 1967, 33, 1, 139 },
12145+ { 0x0, 0x0, 233, -1, 1969, 0, 1, 150 },
12146+ { 0x0, 0x0, 233, -1, 1970, 0, 1, 156 },
12147+ { 0x0, 0x0, 234, 865, 953, 0, 0, -1 },
12148+ { 0x0, 0x0, 234, 866, 961, 0, 0, -1 },
12149+ { 0x0, 0x0, 234, 867, 957, 0, 0, -1 },
12150+ { 0x1, 0x1, 234, 868, 602, 33, 1, 6 },
12151+ { 0x8000001, 0x8000001, 234, 869, 610, 6, 1, 7 },
12152+ { 0x1, 0x1, 234, 870, 606, 33, 1, 6 },
12153+ { 0x0, 0x0, 234, 871, 965, 0, 0, -1 },
12154+ { 0x1, 0x1, 234, 872, 622, 33, 1, 8 },
12155+ { 0x0, 0x0, 234, 873, 969, 0, 0, -1 },
12156+ { 0x1, 0x1, 234, 874, 634, 33, 1, 15 },
12157+ { 0x0, 0x0, 234, 875, 974, 0, 0, -1 },
12158+ { 0x0, 0x0, 234, 876, 978, 0, 0, -1 },
12159+ { 0x1, 0x1, 234, 877, 657, 33, 1, 17 },
12160+ { 0x1, 0x1, 234, 878, 661, 33, 1, 17 },
12161+ { 0x0, 0x0, 234, 879, 982, 0, 0, -1 },
12162+ { 0x0, 0x0, 234, 880, 986, 0, 0, -1 },
12163+ { 0x1, 0x1, 234, 881, 681, 33, 1, 18 },
12164+ { 0x8000001, 0x8000001, 234, 882, 685, 6, 1, 18 },
12165+ { 0x0, 0x0, 234, 883, 990, 0, 0, -1 },
12166+ { 0x1, 0x1, 234, 884, 697, 33, 1, 19 },
12167+ { 0x0, 0x0, 234, 885, 994, 0, 0, -1 },
12168+ { 0x0, 0x0, 234, 886, 998, 0, 0, -1 },
12169+ { 0x1, 0x1, 234, 887, 717, 33, 1, 20 },
12170+ { 0x8000001, 0x8000001, 234, 888, 721, 6, 1, 20 },
12171+ { 0x0, 0x0, 234, 889, 1002, 0, 0, -1 },
12172+ { 0x1, 0x1, 234, 890, 733, 33, 1, 21 },
12173+ { 0x0, 0x0, 234, 891, 1007, 0, 0, -1 },
12174+ { 0x0, 0x0, 234, 892, 1011, 0, 0, -1 },
12175+ { 0x1, 0x1, 234, 893, 756, 33, 1, 17 },
12176+ { 0x1, 0x1, 234, 894, 760, 33, 1, 17 },
12177+ { 0x0, 0x0, 234, 895, 1015, 0, 0, -1 },
12178+ { 0x1, 0x1, 234, 896, 772, 33, 1, 21 },
12179+ { 0x0, 0x0, 235, 2753, 952, 0, 0, -1 },
12180+ { 0x0, 0x0, 235, 2754, 960, 0, 0, -1 },
12181+ { 0x0, 0x0, 235, 2755, 956, 0, 0, -1 },
12182+ { 0x0, 0x0, 235, 2756, 601, 0, 1, 6 },
12183+ { 0x1, 0x1, 235, 2757, 609, 6, 1, 7 },
12184+ { 0x0, 0x0, 235, 2758, 605, 0, 1, 6 },
12185+ { 0x0, 0x0, 235, 2759, 964, 0, 0, -1 },
12186+ { 0x0, 0x0, 235, 2760, 621, 0, 1, 8 },
12187+ { 0x0, 0x0, 235, 2761, 968, 0, 0, -1 },
12188+ { 0x0, 0x0, 235, 2762, 633, 0, 1, 15 },
12189+ { 0x0, 0x0, 235, 2763, 973, 0, 0, -1 },
12190+ { 0x0, 0x0, 235, 2764, 977, 0, 0, -1 },
12191+ { 0x0, 0x0, 235, 2765, 656, 0, 1, 17 },
12192+ { 0x0, 0x0, 235, 2766, 660, 0, 1, 17 },
12193+ { 0x0, 0x0, 235, 2767, 981, 0, 0, -1 },
12194+ { 0x0, 0x0, 235, 2768, 985, 0, 0, -1 },
12195+ { 0x0, 0x0, 235, 2769, 680, 0, 1, 18 },
12196+ { 0x1, 0x1, 235, 2770, 684, 6, 1, 18 },
12197+ { 0x0, 0x0, 235, 2771, 989, 0, 0, -1 },
12198+ { 0x0, 0x0, 235, 2772, 696, 0, 1, 19 },
12199+ { 0x0, 0x0, 235, 2773, 993, 0, 0, -1 },
12200+ { 0x0, 0x0, 235, 2774, 997, 0, 0, -1 },
12201+ { 0x0, 0x0, 235, 2775, 716, 0, 1, 20 },
12202+ { 0x1, 0x1, 235, 2776, 720, 6, 1, 20 },
12203+ { 0x0, 0x0, 235, 2777, 1001, 0, 0, -1 },
12204+ { 0x0, 0x0, 235, 2778, 732, 0, 1, 21 },
12205+ { 0x0, 0x0, 235, 2779, 1006, 0, 0, -1 },
12206+ { 0x0, 0x0, 235, 2780, 1010, 0, 0, -1 },
12207+ { 0x0, 0x0, 235, 2781, 755, 0, 1, 17 },
12208+ { 0x0, 0x0, 235, 2782, 759, 0, 1, 17 },
12209+ { 0x0, 0x0, 235, 2783, 1014, 0, 0, -1 },
12210+ { 0x0, 0x0, 235, 2784, 771, 0, 1, 21 },
12211+ { 0x1, 0x1, 235, 897, 1137, 27, 1, 16 },
12212+ { 0x0, 0x0, 235, 898, 1135, 0, 1, 16 },
12213+ { 0x0, 0x0, 235, 1202, 1139, 0, 1, 22 },
12214+ { 0x0, 0x1, 235, 1147, 1145, 20, 1, 67 },
12215+ { 0x0, 0x0, 235, 111, 1143, 0, 1, 67 },
12216+ { 0x1, 0x1, 238, -1, -1, 29, 1, 0 },
12217+ { 0x0, 0x0, 238, -1, -1, 0, 1, 0 },
12218+ { 0x1, 0x1, 238, 2984, -1, 27, 1, 0 },
12219+ { 0x1, 0x1, 238, 2985, -1, 27, 1, 0 },
12220+ { 0x1, 0x1, 238, 2986, -1, 27, 1, 0 },
12221+ { 0x1, 0x1, 238, 2987, -1, 27, 1, 0 },
12222+ { 0x0, 0x0, 260, -1, 2310, 0, 0, -1 },
12223+ { 0x0, 0x0, 260, -1, 2312, 0, 0, -1 },
12224+ { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12225+ { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12226+ { 0x0, 0x0, 260, -1, 2351, 0, 0, -1 },
12227+ { 0x0, 0x0, 260, -1, 2353, 0, 0, -1 },
12228+ { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12229+ { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12230+ { 0x0, 0x0, 262, 23, -1, 0, 1, 0 },
12231+ { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
12232+ { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
12233+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12234+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12235+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12236+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12237+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12238+ { 0x0, 0x0, 262, 180, -1, 0, 1, 0 },
12239+ { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12240+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12241+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12242+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12243+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12244+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12245+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12246+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12247+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12248+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12249+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12250+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12251+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12252+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12253+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12254+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12255+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12256+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12257+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12258+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12259+ { 0x1, 0x1, 263, 299, -1, 12, 1, 2 },
12260+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12261+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12262+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12263+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12264+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12265+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12266+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12267+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12268+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12269+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12270+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12271+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12272+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12273+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12274+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12275+ { 0x1, 0x1, 263, 321, -1, 12, 1, 2 },
12276+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12277+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12278+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12279+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12280+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12281+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12282+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12283+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12284+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12285+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12286+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12287+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12288+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12289+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12290+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12291+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12292+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12293+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12294+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12295+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12296+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12297+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12298+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12299+ { 0x1, 0x1, 263, 347, -1, 12, 1, 2 },
12300+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12301+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12302+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12303+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12304+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12305+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12306+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12307+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12308+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12309+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12310+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12311+ { 0x1, 0x1, 263, 369, -1, 12, 1, 2 },
12312+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12313+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12314+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12315+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12316+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12317+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12318+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12319+ { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12320+ { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12321+ { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12322+ { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12323+ { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12324+ { 0x0, 0x0, 263, -1, 2262, 0, 0, -1 },
12325+ { 0x0, 0x0, 263, -1, 2264, 0, 0, -1 },
12326+ { 0x0, 0x0, 263, -1, 2266, 0, 0, -1 },
12327+ { 0x0, 0x0, 263, -1, 2268, 0, 0, -1 },
12328+ { 0x1, 0x1, 263, -1, 2270, 12, 1, 59 },
12329+ { 0x1, 0x1, 263, -1, 2272, 12, 1, 59 },
12330+ { 0x1, 0x1, 263, -1, 2274, 12, 1, 59 },
12331+ { 0x1, 0x1, 263, -1, 2276, 12, 1, 49 },
12332+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12333+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12334+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12335+ { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
12336+ { 0x0, 0x0, 263, -1, 2278, 0, 0, -1 },
12337+ { 0x0, 0x0, 263, -1, 2280, 0, 0, -1 },
12338+ { 0x1, 0x1, 263, -1, 2282, 12, 1, 59 },
12339+ { 0x1, 0x1, 263, -1, 2284, 12, 1, 59 },
12340+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12341+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12342+ { 0x0, 0x0, 263, -1, 2286, 0, 0, -1 },
12343+ { 0x0, 0x0, 263, -1, 2288, 0, 0, -1 },
12344+ { 0x0, 0x0, 263, -1, 2290, 0, 0, -1 },
12345+ { 0x0, 0x0, 263, -1, 2292, 0, 0, -1 },
12346+ { 0x1, 0x1, 263, -1, 2294, 12, 1, 59 },
12347+ { 0x1, 0x1, 263, -1, 2296, 12, 1, 59 },
12348+ { 0x1, 0x1, 263, -1, 2298, 12, 1, 59 },
12349+ { 0x1, 0x1, 263, -1, 2300, 12, 1, 49 },
12350+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12351+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12352+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12353+ { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
12354+ { 0x0, 0x0, 263, -1, 2302, 0, 0, -1 },
12355+ { 0x0, 0x0, 263, -1, 2304, 0, 0, -1 },
12356+ { 0x1, 0x1, 263, -1, 2306, 12, 1, 59 },
12357+ { 0x1, 0x1, 263, -1, 2308, 12, 1, 59 },
12358+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12359+ { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12360+ { 0x1, 0x1, 263, 391, -1, 12, 1, 2 },
12361+ { 0x1, 0x1, 263, 393, -1, 12, 1, 2 },
12362+ { 0x1, 0x1, 263, 507, -1, 12, 1, 2 },
12363+ { 0x1, 0x1, 263, 509, -1, 12, 1, 2 },
12364+ { 0x1, 0x1, 263, 399, -1, 12, 1, 2 },
12365+ { 0x1, 0x1, 263, 401, -1, 12, 1, 2 },
12366+ { 0x1, 0x1, 263, 515, -1, 12, 1, 2 },
12367+ { 0x1, 0x1, 263, 517, -1, 12, 1, 2 },
12368+ { 0x0, 0x0, 264, -1, 2269, 0, 0, -1 },
12369+ { 0x9, 0x9, 264, -1, 2277, 33, 1, 49 },
12370+ { 0x9, 0x9, 264, -1, 2941, 33, 1, 49 },
12371+ { 0x0, 0x0, 264, 1381, 2342, 0, 0, -1 },
12372+ { 0x3, 0x3, 264, 1382, -1, 27, 1, 49 },
12373+ { 0x0, 0x0, 268, 2822, -1, 0, 1, 0 },
12374+ { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12375+ { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12376+ { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12377+ { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12378+ { 0x1, 0x1, 270, 2980, -1, 28, 1, 0 },
12379+ { 0x1, 0x1, 270, 2981, -1, 28, 1, 0 },
12380+ { 0x1, 0x1, 270, 2982, -1, 28, 1, 0 },
12381+ { 0x1, 0x1, 270, 2983, -1, 28, 1, 0 },
12382+ { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
12383+ { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
12384+ { 0x0, 0x0, 271, -1, 950, 0, 0, -1 },
12385+ { 0x0, 0x0, 272, 2993, 2799, 0, 0, -1 },
12386+ { 0x0, 0x0, 272, 2994, 2801, 0, 0, -1 },
12387+ { 0x0, 0x0, 273, -1, 2800, 0, 0, -1 },
12388+ { 0x0, 0x0, 273, -1, 2802, 0, 0, -1 },
12389+ { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12390+ { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12391+ { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12392+ { 0x0, 0x0, 279, -1, -1, 0, 1, 33 },
12393+ { 0x0, 0x0, 283, -1, 2316, 0, 1, 29 },
12394+ { 0x0, 0x0, 284, -1, -1, 0, 1, 0 },
12395+ { 0x0, 0x0, 284, -1, -1, 0, 1, 71 },
12396+ { 0x0, 0x0, 284, 1983, 2966, 0, 1, 1 },
12397+ { 0x0, 0x0, 284, 1984, 2967, 0, 1, 1 },
12398+ { 0x0, 0x0, 284, -1, 508, 0, 0, -1 },
12399+ { 0x0, 0x0, 284, -1, 510, 0, 0, -1 },
12400+ { 0x0, 0x0, 284, 1987, 2970, 0, 1, 1 },
12401+ { 0x0, 0x0, 284, 1988, 2971, 0, 1, 1 },
12402+ { 0x0, 0x0, 284, -1, 516, 0, 0, -1 },
12403+ { 0x0, 0x0, 284, -1, 518, 0, 0, -1 },
12404+};
12405+
12406+static const struct ia64_main_table
12407+main_table[] = {
12408+ { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 0, },
12409+ { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 1, },
12410+ { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 2, },
12411+ { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 63, 26, 0, 0 }, 0x0, 3, },
12412+ { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 4, },
12413+ { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 5, },
12414+ { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 6, },
12415+ { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 7, },
12416+ { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 3, 52, 53, 54 }, 0x221, 8, },
12417+ { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 52, 53, 54, 0 }, 0x261, 9, },
12418+ { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 10, },
12419+ { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 11, },
12420+ { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 12, },
12421+ { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 13, },
12422+ { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 16, 0, 0, 0, 0 }, 0x40, 951, },
12423+ { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x0, 807, },
12424+ { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x40, 808, },
12425+ { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x200, 2200, },
12426+ { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x240, 2201, },
12427+ { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x0, 564, },
12428+ { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x40, 565, },
12429+ { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 972, },
12430+ { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 809, },
12431+ { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 810, },
12432+ { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x210, 2991, },
12433+ { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x250, 2992, },
12434+ { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x30, 572, },
12435+ { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x70, 573, },
12436+ { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x230, 570, },
12437+ { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x270, 571, },
12438+ { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x0, 566, },
12439+ { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x40, 567, },
12440+ { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 519, },
12441+ { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 942, },
12442+ { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1120, },
12443+ { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1245, },
12444+ { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2995, },
12445+ { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 16, },
12446+ { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 82, 0, 0, 0, 0 }, 0x40, 1005, },
12447+ { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x0, 811, },
12448+ { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x40, 812, },
12449+ { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x0, 568, },
12450+ { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x40, 569, },
12451+ { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 16, 77, 0, 0, 0 }, 0x20, 2818, },
12452+ { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 81, 77, 0, 0, 0 }, 0x20, 2819, },
12453+ { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 222, },
12454+ { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2205, },
12455+ { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 24, 81, 0, 0, 0 }, 0x0, 224, },
12456+ { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 18, 81, 0, 0, 0 }, 0x0, 225, },
12457+ { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2206, },
12458+ { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 19, 80, 0, 0, 0 }, 0x0, 2207, },
12459+ { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2208, },
12460+ { 25, 4, 0, 0x0000000020000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, },
12461+ { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1204, },
12462+ { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 25, 26, 0, 0 }, 0x40, 1205, },
12463+ { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1163, },
12464+ { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 26, 25, 0, 0 }, 0x40, 1164, },
12465+ { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 1072, },
12466+ { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 26, 25, 0, 0 }, 0x40, 1073, },
12467+ { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 1034, },
12468+ { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 25, 26, 0, 0 }, 0x40, 1035, },
12469+ { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1358, },
12470+ { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 1074, },
12471+ { 26, 1, 1, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 7, 26, 0, 0 }, 0x40, 1075, },
12472+ { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1208, },
12473+ { 26, 1, 1, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 26, 7, 0, 0 }, 0x40, 1209, },
12474+ { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1169, },
12475+ { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1211, },
12476+ { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 55, 26, 0, 0 }, 0x40, 1212, },
12477+ { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1170, },
12478+ { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 57, 26, 0, 0 }, 0x40, 1171, },
12479+ { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 1079, },
12480+ { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 57, 26, 0, 0 }, 0x40, 1080, },
12481+ { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 1041, },
12482+ { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 55, 26, 0, 0 }, 0x40, 1042, },
12483+ { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1363, },
12484+ { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 23, 59, 26, 0 }, 0x0, 1196, },
12485+ { 26, 1, 1, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 59, 26, 0, 0 }, 0x40, 1197, },
12486+ { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 22, 59, 26, 0 }, 0x0, 1107, },
12487+ { 26, 1, 1, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 59, 26, 0, 0 }, 0x40, 1108, },
12488+ { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1364, },
12489+ { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1172, },
12490+ { 26, 1, 1, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 7, 26, 0, 0 }, 0x40, 1173, },
12491+ { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 1045, },
12492+ { 26, 1, 1, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 26, 7, 0, 0 }, 0x40, 1046, },
12493+ { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1365, },
12494+ { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1217, },
12495+ { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 25, 26, 0, 0 }, 0x40, 1218, },
12496+ { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1176, },
12497+ { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 26, 25, 0, 0 }, 0x40, 1177, },
12498+ { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 1085, },
12499+ { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 26, 25, 0, 0 }, 0x40, 1086, },
12500+ { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 1047, },
12501+ { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 25, 26, 0, 0 }, 0x40, 1048, },
12502+ { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1370, },
12503+ { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 1087, },
12504+ { 27, 1, 1, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 7, 26, 0, 0 }, 0x40, 1088, },
12505+ { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1221, },
12506+ { 27, 1, 1, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 26, 7, 0, 0 }, 0x40, 1222, },
12507+ { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1182, },
12508+ { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1224, },
12509+ { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 55, 26, 0, 0 }, 0x40, 1225, },
12510+ { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1183, },
12511+ { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 57, 26, 0, 0 }, 0x40, 1184, },
12512+ { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 1092, },
12513+ { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 57, 26, 0, 0 }, 0x40, 1093, },
12514+ { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 1054, },
12515+ { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 55, 26, 0, 0 }, 0x40, 1055, },
12516+ { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1375, },
12517+ { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 56, 26, 0 }, 0x0, 1241, },
12518+ { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 56, 26, 0, 0 }, 0x40, 1242, },
12519+ { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 58, 26, 0 }, 0x0, 1200, },
12520+ { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 58, 26, 0, 0 }, 0x40, 1201, },
12521+ { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 58, 26, 0 }, 0x0, 1111, },
12522+ { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 58, 26, 0, 0 }, 0x40, 1112, },
12523+ { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 56, 26, 0 }, 0x0, 1070, },
12524+ { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 56, 26, 0, 0 }, 0x40, 1071, },
12525+ { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1376, },
12526+ { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1185, },
12527+ { 27, 1, 1, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 7, 26, 0, 0 }, 0x40, 1186, },
12528+ { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 1058, },
12529+ { 27, 1, 1, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 26, 7, 0, 0 }, 0x40, 1059, },
12530+ { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1377, },
12531+ { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 1, 2 }, 0x0, 257, },
12532+ { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 258, },
12533+ { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 259, },
12534+ { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 260, },
12535+ { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 261, },
12536+ { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 262, },
12537+ { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 263, },
12538+ { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 264, },
12539+ { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 265, },
12540+ { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 266, },
12541+ { 34, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 19, },
12542+ { 36, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1149, },
12543+ { 37, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1150, },
12544+ { 39, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 24, 25, 26, 47, 72 }, 0x0, 20, },
12545+ { 39, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 73, 0 }, 0x0, 3000, },
12546+ { 39, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 24, 55, 45, 73, 0 }, 0x0, 3001, },
12547+ { 39, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 24, 48, 26, 46, 73 }, 0x0, 21, },
12548+ { 43, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 22, },
12549+ { 48, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 73, 0 }, 0x0, 2836, },
12550+ { 50, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 24, },
12551+ { 51, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2257, },
12552+ { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2258, },
12553+ { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 26, },
12554+ { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2259, },
12555+ { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 27, },
12556+ { 54, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 28, },
12557+ { 55, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 29, },
12558+ { 57, 3, 0, 0x0000002180000000ull, 0x000001fff8000000ull, { 26, 0, 0, 0, 0 }, 0x0, 30, },
12559+ { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x0, 2260, },
12560+ { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x40, 31, },
12561+ { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 23, 19, 60, 0 }, 0x0, 1247, },
12562+ { 59, 5, 1, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 19, 60, 0, 0 }, 0x40, 1248, },
12563+ { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 22, 19, 60, 0 }, 0x40, 1402, },
12564+ { 59, 5, 1, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 19, 60, 0, 0 }, 0x40, 1403, },
12565+ { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 2261, },
12566+ { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 32, },
12567+ { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x0, 925, },
12568+ { 61, 5, 1, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 19, 20, 0, 0 }, 0x40, 926, },
12569+ { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x40, 927, },
12570+ { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x0, 1098, },
12571+ { 61, 5, 1, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 20, 19, 0, 0 }, 0x40, 1099, },
12572+ { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x40, 1100, },
12573+ { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x0, 1378, },
12574+ { 61, 5, 1, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 19, 20, 0, 0 }, 0x40, 1379, },
12575+ { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x40, 1380, },
12576+ { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x0, 1387, },
12577+ { 61, 5, 1, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 20, 19, 0, 0 }, 0x40, 1388, },
12578+ { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x40, 1389, },
12579+ { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 1024, },
12580+ { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 1025, },
12581+ { 62, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 2998, },
12582+ { 62, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2999, },
12583+ { 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 267, },
12584+ { 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 268, },
12585+ { 67, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 33, },
12586+ { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2319, },
12587+ { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 34, },
12588+ { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2320, },
12589+ { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 35, },
12590+ { 70, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2213, },
12591+ { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2321, },
12592+ { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 36, },
12593+ { 72, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1203, },
12594+ { 73, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2324, },
12595+ { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2327, },
12596+ { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 38, },
12597+ { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 39, },
12598+ { 76, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 40, },
12599+ { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2330, },
12600+ { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 41, },
12601+ { 78, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2333, },
12602+ { 79, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2336, },
12603+ { 80, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 44, },
12604+ { 81, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 45, },
12605+ { 82, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 46, },
12606+ { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2337, },
12607+ { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 47, },
12608+ { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2338, },
12609+ { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 48, },
12610+ { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 928, },
12611+ { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 929, },
12612+ { 85, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 1101, },
12613+ { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 1026, },
12614+ { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 1027, },
12615+ { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2355, },
12616+ { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 49, },
12617+ { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2356, },
12618+ { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 50, },
12619+ { 89, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2221, },
12620+ { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2357, },
12621+ { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 51, },
12622+ { 91, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2358, },
12623+ { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2359, },
12624+ { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 53, },
12625+ { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 54, },
12626+ { 94, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 55, },
12627+ { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2360, },
12628+ { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 56, },
12629+ { 96, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2361, },
12630+ { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2362, },
12631+ { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 58, },
12632+ { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2363, },
12633+ { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 59, },
12634+ { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2364, },
12635+ { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 60, },
12636+ { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2365, },
12637+ { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 61, },
12638+ { 101, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 18, 20, 21, 19, 0 }, 0x0, 62, },
12639+ { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x0, 2366, },
12640+ { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x40, 63, },
12641+ { 103, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2369, },
12642+ { 104, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 65, },
12643+ { 105, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2168, },
12644+ { 106, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 66, },
12645+ { 108, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 67, },
12646+ { 113, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 24, 19, 0, 0, 0 }, 0x0, 2747, },
12647+ { 118, 4, 0, 0x0000004008000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 520, },
12648+ { 118, 5, 0, 0x000000000c000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 943, },
12649+ { 118, 2, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1123, },
12650+ { 118, 3, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1249, },
12651+ { 118, 6, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2996, },
12652+ { 118, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 68, },
12653+ { 123, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 69, },
12654+ { 123, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0x0, 902, },
12655+ { 123, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 18, 0, 0, 0, 0 }, 0x0, 903, },
12656+ { 124, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0xc, 828, },
12657+ { 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 829, },
12658+ { 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 1125, },
12659+ { 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 70, },
12660+ { 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 71, },
12661+ { 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 72, },
12662+ { 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 33, 0, 0 }, 0x0, 73, },
12663+ { 128, 3, 1, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x40, 74, },
12664+ { 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 75, },
12665+ { 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 76, },
12666+ { 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 77, },
12667+ { 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 78, },
12668+ { 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 79, },
12669+ { 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 80, },
12670+ { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 81, },
12671+ { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 83, 0, 0 }, 0x0, 1321, },
12672+ { 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 82, },
12673+ { 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 83, },
12674+ { 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 1021, },
12675+ { 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 1022, },
12676+ { 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 1023, },
12677+ { 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 84, },
12678+ { 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 85, },
12679+ { 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 86, },
12680+ { 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 87, },
12681+ { 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 88, },
12682+ { 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 89, },
12683+ { 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 90, },
12684+ { 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 91, },
12685+ { 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 92, },
12686+ { 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 93, },
12687+ { 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 94, },
12688+ { 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 95, },
12689+ { 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 96, },
12690+ { 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 97, },
12691+ { 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 5, 0 }, 0x400, 98, },
12692+ { 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 99, },
12693+ { 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 100, },
12694+ { 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 101, },
12695+ { 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 33, 0, 0, 0, 0 }, 0x0, 102, },
12696+ { 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x400, 103, },
12697+ { 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 33, 62, 0, 0, 0 }, 0x400, 104, },
12698+ { 143, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 105, },
12699+ { 151, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 106, },
12700+ { 152, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2169, },
12701+ { 153, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2170, },
12702+ { 154, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2171, },
12703+ { 155, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 24, 26, 0, 0, 0 }, 0x0, 107, },
12704+ { 155, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 24, 66, 0, 0, 0 }, 0x40, 108, },
12705+ { 155, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 109, },
12706+ { 155, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 15, 25, 0, 0, 0 }, 0x40, 110, },
12707+ { 155, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 15, 25, 78, 0, 0 }, 0x0, 2821, },
12708+ { 155, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 24, 16, 0, 0, 0 }, 0x0, 112, },
12709+ { 155, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 9, 25, 64, 0, 0 }, 0x0, 113, },
12710+ { 155, 2, 1, 0x00000016ff001fc0ull, 0x000001feff001fc0ull, { 9, 25, 0, 0, 0 }, 0x40, 114, },
12711+ { 155, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 10, 68, 0, 0, 0 }, 0x0, 115, },
12712+ { 155, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 24, 8, 0, 0, 0 }, 0x0, 116, },
12713+ { 155, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 24, 9, 0, 0, 0 }, 0x0, 117, },
12714+ { 155, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1126, },
12715+ { 155, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1127, },
12716+ { 155, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1128, },
12717+ { 155, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1250, },
12718+ { 155, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1251, },
12719+ { 155, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1252, },
12720+ { 155, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 17, 25, 0, 0, 0 }, 0x8, 118, },
12721+ { 155, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 24, 17, 0, 0, 0 }, 0x8, 119, },
12722+ { 155, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 12, 25, 0, 0, 0 }, 0x8, 120, },
12723+ { 155, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 13, 25, 0, 0, 0 }, 0x0, 121, },
12724+ { 155, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 24, 11, 0, 0, 0 }, 0x8, 122, },
12725+ { 155, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 24, 13, 0, 0, 0 }, 0x0, 123, },
12726+ { 155, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 38, 25, 0, 0, 0 }, 0x8, 124, },
12727+ { 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 29, 25, 0, 0, 0 }, 0x8, 125, },
12728+ { 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 126, },
12729+ { 155, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 35, 25, 0, 0, 0 }, 0x8, 127, },
12730+ { 155, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 36, 25, 0, 0, 0 }, 0x8, 128, },
12731+ { 155, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 37, 25, 0, 0, 0 }, 0x8, 129, },
12732+ { 155, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 34, 25, 0, 0, 0 }, 0x8, 130, },
12733+ { 155, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 24, 38, 0, 0, 0 }, 0x8, 131, },
12734+ { 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x8, 132, },
12735+ { 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 32, 0, 0, 0 }, 0x8, 133, },
12736+ { 155, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 24, 35, 0, 0, 0 }, 0x8, 134, },
12737+ { 155, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 24, 36, 0, 0, 0 }, 0x8, 135, },
12738+ { 155, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 24, 37, 0, 0, 0 }, 0x0, 136, },
12739+ { 155, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 24, 34, 0, 0, 0 }, 0x8, 137, },
12740+ { 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 138, },
12741+ { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 14, 0, 0, 0 }, 0x0, 139, },
12742+ { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 55, 0, 0, 0 }, 0x0, 140, },
12743+ { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 25, 0, 0, 0 }, 0x0, 141, },
12744+ { 156, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 24, 70, 0, 0, 0 }, 0x0, 142, },
12745+ { 157, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 24, 25, 74, 0, 0 }, 0x0, 143, },
12746+ { 158, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 24, 25, 75, 0, 0 }, 0x0, 144, },
12747+ { 168, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 521, },
12748+ { 168, 5, 0, 0x0000000008000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 944, },
12749+ { 168, 2, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1129, },
12750+ { 168, 3, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1253, },
12751+ { 168, 6, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2997, },
12752+ { 168, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 145, },
12753+ { 175, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 146, },
12754+ { 175, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 147, },
12755+ { 178, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2979, },
12756+ { 179, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2823, },
12757+ { 180, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 148, },
12758+ { 181, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 149, },
12759+ { 182, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 150, },
12760+ { 183, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 151, },
12761+ { 184, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 152, },
12762+ { 185, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 153, },
12763+ { 186, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 154, },
12764+ { 187, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 930, },
12765+ { 188, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 931, },
12766+ { 189, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 932, },
12767+ { 190, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2837, },
12768+ { 191, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 155, },
12769+ { 192, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2838, },
12770+ { 193, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 156, },
12771+ { 194, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2172, },
12772+ { 195, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 24, 25, 26, 42, 0 }, 0x0, 157, },
12773+ { 196, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 24, 26, 0, 0, 0 }, 0x0, 158, },
12774+ { 198, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 24, 26, 25, 0, 0 }, 0x0, 2173, },
12775+ { 198, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 24, 26, 49, 0, 0 }, 0x0, 2174, },
12776+ { 198, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 26, 49, 0, 0, 0 }, 0x0, 2204, },
12777+ { 199, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 159, },
12778+ { 200, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 160, },
12779+ { 200, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 161, },
12780+ { 201, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 162, },
12781+ { 201, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 163, },
12782+ { 202, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 164, },
12783+ { 203, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 165, },
12784+ { 203, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 166, },
12785+ { 204, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 167, },
12786+ { 204, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 168, },
12787+ { 205, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 169, },
12788+ { 206, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 170, },
12789+ { 207, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 171, },
12790+ { 208, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 172, },
12791+ { 209, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 1157, },
12792+ { 209, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0xc, 1032, },
12793+ { 209, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 26, 0, 0, 0, 0 }, 0x8, 904, },
12794+ { 210, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 830, },
12795+ { 215, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 173, },
12796+ { 216, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 174, },
12797+ { 217, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 175, },
12798+ { 226, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 18, 25, 0, 0, 0 }, 0x0, 2748, },
12799+ { 227, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 0, 0 }, 0x140, 176, },
12800+ { 227, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 177, },
12801+ { 228, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 178, },
12802+ { 229, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 179, },
12803+ { 230, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 0, 0 }, 0x140, 2844, },
12804+ { 230, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 181, },
12805+ { 231, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 24, 25, 26, 44, 0 }, 0x0, 182, },
12806+ { 236, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 832, },
12807+ { 237, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 183, },
12808+ { 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 184, },
12809+ { 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 185, },
12810+ { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 1, 0, 0 }, 0x0, 186, },
12811+ { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x40, 187, },
12812+ { 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 188, },
12813+ { 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 189, },
12814+ { 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 190, },
12815+ { 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 191, },
12816+ { 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 192, },
12817+ { 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 193, },
12818+ { 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 2751, },
12819+ { 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 2752, },
12820+ { 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 194, },
12821+ { 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 195, },
12822+ { 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 196, },
12823+ { 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 197, },
12824+ { 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 198, },
12825+ { 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 199, },
12826+ { 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 200, },
12827+ { 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 201, },
12828+ { 249, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 202, },
12829+ { 249, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 203, },
12830+ { 249, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 204, },
12831+ { 250, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 205, },
12832+ { 251, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 206, },
12833+ { 252, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 207, },
12834+ { 253, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 208, },
12835+ { 254, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1132, },
12836+ { 255, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 209, },
12837+ { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 23, 26, 76, 0 }, 0x0, 3002, },
12838+ { 256, 2, 1, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 26, 76, 0, 0 }, 0x40, 3003, },
12839+ { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 22, 26, 76, 0 }, 0x40, 1985, },
12840+ { 256, 2, 1, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 26, 76, 0, 0 }, 0x40, 1986, },
12841+ { 257, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 210, },
12842+ { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 23, 26, 0, 0 }, 0x0, 3006, },
12843+ { 258, 2, 1, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 26, 0, 0, 0 }, 0x40, 3007, },
12844+ { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 22, 26, 0, 0 }, 0x40, 1989, },
12845+ { 258, 2, 1, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 26, 0, 0, 0 }, 0x40, 1990, },
12846+ { 259, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 211, },
12847+ { 261, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 212, },
12848+ { 265, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1113, },
12849+ { 266, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1114, },
12850+ { 267, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1115, },
12851+ { 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 213, },
12852+ { 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 214, },
12853+ { 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 215, },
12854+ { 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 216, },
12855+ { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1161, },
12856+ { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 1243, },
12857+ { 281, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1162, },
12858+ { 282, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 217, },
12859+ { 282, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 218, },
12860+ { 285, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 219, },
12861+ { 286, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 220, },
12862+ { 287, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 221, },
12863+};
12864+
12865+static const char dis_table[] = {
12866+0xa0, 0xc5, 0xe8, 0xa0, 0x2e, 0x98, 0xa0, 0x2c, 0x80, 0xa0, 0x1b, 0xc0,
12867+0x98, 0xb0, 0x02, 0x50, 0x90, 0x50, 0x90, 0x28, 0x24, 0x38, 0x28, 0x24,
12868+0x38, 0x20, 0x90, 0x28, 0x24, 0x38, 0x18, 0x24, 0x38, 0x10, 0x91, 0x60,
12869+0x90, 0x28, 0x24, 0x38, 0x00, 0x10, 0x10, 0x58, 0x41, 0x61, 0xbf, 0xc0,
12870+0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
12871+0x10, 0x10, 0x52, 0xc0, 0xc0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
12872+0x10, 0x10, 0x10, 0x24, 0x23, 0x70, 0x90, 0x28, 0x24, 0x37, 0xf0, 0x24,
12873+0x37, 0xe8, 0xa8, 0x0b, 0x48, 0x15, 0x20, 0x97, 0x20, 0x95, 0xc8, 0x9a,
12874+0xb8, 0x05, 0x38, 0x91, 0x18, 0x90, 0xa0, 0x90, 0x60, 0x80, 0x90, 0x20,
12875+0x34, 0x86, 0xa4, 0x24, 0x00, 0x34, 0x83, 0x80, 0xa4, 0x35, 0xa0, 0x36,
12876+0xb9, 0x90, 0x50, 0x90, 0x28, 0x80, 0x36, 0xaf, 0x80, 0x34, 0x66, 0x81,
12877+0x33, 0xe2, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x23, 0x10, 0x34,
12878+0x63, 0xa4, 0x1f, 0x08, 0x34, 0x60, 0x90, 0x38, 0xa4, 0x37, 0xa0, 0x36,
12879+0xfa, 0xa4, 0x37, 0x48, 0x36, 0xee, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x36,
12880+0x20, 0x36, 0xcf, 0xa4, 0x35, 0xf8, 0x36, 0xca, 0x80, 0xa4, 0x22, 0xf0,
12881+0x34, 0x5f, 0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, 0xf8, 0xdb,
12882+0x84, 0x60, 0xf9, 0x40, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x58, 0x8c, 0x42,
12883+0xb8, 0x84, 0x38, 0x61, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x48, 0x8c, 0x42,
12884+0x98, 0x84, 0x38, 0x5f, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38,
12885+0x13, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x11, 0xa4, 0x1f, 0x18, 0x33, 0xe4,
12886+0x80, 0x90, 0x28, 0x80, 0x33, 0xe0, 0x80, 0x34, 0x68, 0x81, 0x90, 0x38,
12887+0xa4, 0x23, 0x80, 0x34, 0x6b, 0xa4, 0x23, 0x48, 0x34, 0x65, 0xc0, 0x40,
12888+0x10, 0x10, 0x90, 0x38, 0xa4, 0x1e, 0xf0, 0x33, 0xdf, 0xa4, 0x1e, 0xe0,
12889+0x33, 0xdd, 0x18, 0x24, 0x23, 0xf8, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0,
12890+0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x28, 0x38, 0x4b, 0xc0, 0xc0, 0x80, 0xa4,
12891+0x41, 0x18, 0x38, 0x47, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38,
12892+0x0d, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x0b, 0x92, 0xb8, 0x99, 0x84, 0x23,
12893+0x68, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35, 0x98, 0x36,
12894+0xb8, 0x82, 0x36, 0xae, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x37,
12895+0x98, 0x36, 0xf9, 0xa4, 0x37, 0x40, 0x36, 0xed, 0x80, 0x90, 0x38, 0xa4,
12896+0x36, 0x18, 0x36, 0xce, 0xa4, 0x35, 0xf0, 0x36, 0xc9, 0x83, 0x90, 0xa8,
12897+0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xf8, 0x38, 0x3f, 0xc0,
12898+0xc0, 0x80, 0xa4, 0x40, 0xe8, 0x38, 0x3b, 0xd3, 0x82, 0x40, 0x50, 0xc0,
12899+0xc0, 0x81, 0x38, 0x07, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x05, 0x18, 0x24,
12900+0x23, 0x78, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4,
12901+0x40, 0xc8, 0x38, 0x33, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xb8, 0x38, 0x2f,
12902+0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x01, 0x50, 0xc0, 0xc0,
12903+0x81, 0x37, 0xff, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1f, 0x48, 0x90,
12904+0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35, 0x90, 0x36, 0xb7, 0x82,
12905+0x36, 0xad, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x37, 0x90, 0x36,
12906+0xf8, 0xa4, 0x37, 0x38, 0x36, 0xec, 0x80, 0x90, 0x38, 0xa4, 0x36, 0x10,
12907+0x36, 0xcd, 0xa4, 0x35, 0xe8, 0x36, 0xc8, 0x83, 0x90, 0xe8, 0xd3, 0x83,
12908+0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x68, 0x8c, 0x42, 0xd8, 0x84, 0x38,
12909+0x63, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x50, 0x8c, 0x42, 0xa8, 0x84, 0x38,
12910+0x60, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x15, 0x50, 0xc0,
12911+0xc0, 0x81, 0x38, 0x12, 0x18, 0x24, 0x1f, 0x40, 0x83, 0x90, 0xa8, 0xd3,
12912+0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x38, 0x38, 0x4f, 0xc0, 0xc0,
12913+0x80, 0xa4, 0x41, 0x20, 0x38, 0x49, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0,
12914+0x81, 0x38, 0x0f, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x0c, 0x92, 0xb8, 0x99,
12915+0x84, 0x1f, 0x38, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35,
12916+0x88, 0x36, 0xb6, 0x82, 0x36, 0xac, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38,
12917+0xa4, 0x37, 0x88, 0x36, 0xf7, 0xa4, 0x37, 0x30, 0x36, 0xeb, 0x80, 0x90,
12918+0x38, 0xa4, 0x36, 0x08, 0x36, 0xcc, 0xa4, 0x35, 0xe0, 0x36, 0xc7, 0x83,
12919+0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x08, 0x38,
12920+0x43, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xf0, 0x38, 0x3d, 0xd3, 0x82, 0x40,
12921+0x50, 0xc0, 0xc0, 0x81, 0x38, 0x09, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x06,
12922+0x18, 0x20, 0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0,
12923+0x80, 0xa4, 0x40, 0xd8, 0x38, 0x37, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xc0,
12924+0x38, 0x31, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x03, 0x50,
12925+0xc0, 0xc0, 0x81, 0x38, 0x00, 0xda, 0x06, 0xe0, 0xf9, 0x80, 0x90, 0x60,
12926+0x90, 0x38, 0xa4, 0x23, 0xe8, 0x34, 0x7b, 0x80, 0x34, 0x78, 0x90, 0x38,
12927+0xa4, 0x23, 0x90, 0x34, 0x76, 0x80, 0x34, 0x73, 0x90, 0x60, 0x90, 0x38,
12928+0xa4, 0x23, 0xd0, 0x34, 0x7c, 0x80, 0x34, 0x79, 0x90, 0x38, 0xa4, 0x23,
12929+0xa8, 0x34, 0x77, 0x80, 0x34, 0x74, 0xc8, 0x40, 0x19, 0x00, 0x91, 0x58,
12930+0x90, 0x60, 0x82, 0x90, 0x20, 0x36, 0xab, 0xa4, 0x35, 0x48, 0x36, 0xaa,
12931+0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0xb9, 0x00, 0x85,
12932+0x36, 0xe3, 0xc9, 0xe1, 0xb8, 0x40, 0x85, 0x36, 0xe0, 0x80, 0x36, 0xdf,
12933+0x10, 0x10, 0x81, 0x36, 0xbb, 0x90, 0xa8, 0x10, 0x10, 0x90, 0x28, 0x81,
12934+0x36, 0xd9, 0x90, 0x38, 0xa4, 0x36, 0xa0, 0x36, 0xd5, 0xa4, 0x36, 0x90,
12935+0x36, 0xd3, 0x90, 0x70, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x36, 0xb8, 0x36,
12936+0xd8, 0x80, 0x36, 0xd6, 0x90, 0x60, 0x90, 0x28, 0x24, 0x36, 0xf0, 0xa4,
12937+0x36, 0xe0, 0x36, 0xdd, 0x80, 0xa4, 0x36, 0xd0, 0x36, 0xdb, 0x80, 0x90,
12938+0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x80, 0x37, 0xf7, 0x80, 0x37,
12939+0xfe, 0x80, 0xa4, 0x3f, 0xe0, 0x37, 0xfd, 0x90, 0x28, 0x81, 0x37, 0xfb,
12940+0x80, 0xa4, 0x3f, 0xc8, 0x37, 0xfa, 0x83, 0x37, 0xf8, 0x98, 0xe8, 0x01,
12941+0xb0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x35, 0x38, 0x10, 0x10, 0x10, 0x10,
12942+0x83, 0x33, 0xb7, 0x24, 0x35, 0x30, 0x90, 0x28, 0x24, 0x35, 0x28, 0x24,
12943+0x35, 0x20, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x35, 0x10, 0x10, 0x10, 0x10,
12944+0x10, 0x83, 0x33, 0xb6, 0x24, 0x35, 0x08, 0x90, 0x28, 0x24, 0x35, 0x00,
12945+0x24, 0x34, 0xf8, 0xa8, 0x09, 0x00, 0x0e, 0x20, 0x96, 0x48, 0x95, 0xe8,
12946+0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x1e,
12947+0x60, 0x33, 0xcd, 0xa4, 0x1e, 0x50, 0x33, 0xcb, 0x90, 0x38, 0xa4, 0x1e,
12948+0x40, 0x33, 0xc9, 0x80, 0x33, 0xc7, 0x90, 0x60, 0x90, 0x28, 0x24, 0x1e,
12949+0x00, 0xa4, 0x1d, 0xf0, 0x33, 0xbf, 0x90, 0x38, 0xa4, 0x1d, 0xe0, 0x33,
12950+0xbd, 0xa4, 0x1e, 0x28, 0x33, 0xc6, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38,
12951+0xa4, 0x1e, 0x18, 0x33, 0xc4, 0xa4, 0x1e, 0x08, 0x33, 0xc2, 0x90, 0x38,
12952+0xa4, 0x34, 0xb0, 0x36, 0x9c, 0xa4, 0x34, 0x50, 0x36, 0x90, 0x90, 0x70,
12953+0x90, 0x38, 0xa4, 0x31, 0x90, 0x36, 0x3e, 0xa4, 0x31, 0x60, 0x36, 0x38,
12954+0x10, 0x10, 0xa4, 0x1d, 0xd0, 0x33, 0xbb, 0x99, 0x60, 0x02, 0x70, 0x90,
12955+0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1e, 0x90, 0x80, 0x33, 0xda, 0x80,
12956+0xa4, 0x1e, 0x98, 0x33, 0xd8, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1e, 0xa0,
12957+0x80, 0x33, 0xdb, 0x90, 0x38, 0xa4, 0x1e, 0xa8, 0x33, 0xd9, 0xa4, 0x1e,
12958+0x70, 0x33, 0xcf, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x33, 0xe8,
12959+0x36, 0x85, 0xa4, 0x33, 0x48, 0x36, 0x72, 0x90, 0x38, 0xa4, 0x32, 0xe0,
12960+0x36, 0x63, 0xa4, 0x32, 0x50, 0x36, 0x52, 0x81, 0xa4, 0x1e, 0x80, 0x33,
12961+0xd1, 0xe4, 0xa1, 0xfc, 0x40, 0x37, 0xf3, 0x18, 0x24, 0x1d, 0xc8, 0xe4,
12962+0xe1, 0xfa, 0xc0, 0x37, 0xed, 0x92, 0x40, 0x91, 0x08, 0x10, 0x10, 0x90,
12963+0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x34, 0xa8, 0x36, 0x9b, 0xa4, 0x34,
12964+0x48, 0x36, 0x8f, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x88, 0x36, 0x3d, 0xa4,
12965+0x31, 0x58, 0x36, 0x37, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90,
12966+0x38, 0xa4, 0x33, 0xd8, 0x36, 0x84, 0xa4, 0x33, 0x40, 0x36, 0x70, 0x90,
12967+0x38, 0xa4, 0x32, 0xd0, 0x36, 0x62, 0xa4, 0x32, 0x48, 0x36, 0x50, 0xe4,
12968+0xa1, 0xf9, 0x40, 0x37, 0xe7, 0x18, 0x24, 0x1d, 0xc0, 0xe4, 0xe1, 0xf7,
12969+0xc0, 0x37, 0xe1, 0x92, 0x90, 0x92, 0x40, 0x91, 0x08, 0x10, 0x10, 0x90,
12970+0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x34, 0xa0, 0x36, 0x9a, 0xa4, 0x34,
12971+0x40, 0x36, 0x8e, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x80, 0x36, 0x3c, 0xa4,
12972+0x31, 0x50, 0x36, 0x36, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90,
12973+0x38, 0xa4, 0x33, 0xc8, 0x36, 0x83, 0xa4, 0x33, 0x38, 0x36, 0x6e, 0x90,
12974+0x38, 0xa4, 0x32, 0xc0, 0x36, 0x61, 0xa4, 0x32, 0x40, 0x36, 0x4e, 0xe4,
12975+0xa1, 0xfc, 0x80, 0x37, 0xf5, 0x10, 0x10, 0xe4, 0xe1, 0xfb, 0x00, 0x37,
12976+0xef, 0x92, 0x50, 0x99, 0x1c, 0x1e, 0xb0, 0x10, 0x10, 0x90, 0x80, 0x10,
12977+0x10, 0x90, 0x38, 0xa4, 0x34, 0x98, 0x36, 0x99, 0xa4, 0x34, 0x38, 0x36,
12978+0x8d, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x78, 0x36, 0x3b, 0xa4, 0x31, 0x48,
12979+0x36, 0x35, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90, 0x38, 0xa4,
12980+0x33, 0xb8, 0x36, 0x82, 0xa4, 0x33, 0x30, 0x36, 0x6c, 0x90, 0x38, 0xa4,
12981+0x32, 0xb0, 0x36, 0x60, 0xa4, 0x32, 0x38, 0x36, 0x4c, 0xe4, 0xa1, 0xf9,
12982+0x80, 0x37, 0xe9, 0x10, 0x10, 0xe4, 0xe1, 0xf8, 0x00, 0x37, 0xe3, 0xc0,
12983+0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0x90,
12984+0x80, 0x85, 0x36, 0x46, 0xc9, 0xe1, 0x91, 0x00, 0x85, 0x36, 0x43, 0x80,
12985+0x36, 0x41, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, 0xc0, 0x80, 0x10, 0x10,
12986+0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xdd, 0x80, 0x37, 0xdb,
12987+0xd5, 0x81, 0x80, 0x80, 0x37, 0xd9, 0x80, 0x37, 0xd7, 0xc0, 0x80, 0x10,
12988+0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xde, 0x80, 0x37,
12989+0xdc, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xda, 0x80, 0x37, 0xd8, 0xc0, 0x80,
12990+0x83, 0xa4, 0x3e, 0xa8, 0x37, 0xd6, 0xa0, 0x57, 0xc0, 0xa0, 0x41, 0xe0,
12991+0xa8, 0x1e, 0xb0, 0x34, 0x88, 0xa0, 0x12, 0x38, 0xa0, 0x0b, 0x48, 0x96,
12992+0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90,
12993+0x38, 0xa4, 0x15, 0x58, 0x33, 0xb5, 0xa4, 0x15, 0x78, 0x33, 0xb4, 0x10,
12994+0x10, 0xa4, 0x15, 0x68, 0x33, 0xb3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14,
12995+0xf8, 0x33, 0x9a, 0xa4, 0x15, 0x18, 0x33, 0x99, 0x10, 0x10, 0xa4, 0x15,
12996+0x08, 0x33, 0x98, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x98,
12997+0x33, 0x7f, 0xa4, 0x14, 0xb8, 0x33, 0x7e, 0x10, 0x10, 0xa4, 0x14, 0xa8,
12998+0x33, 0x7d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, 0x63, 0xa4,
12999+0x14, 0x58, 0x33, 0x62, 0x10, 0x10, 0xa4, 0x14, 0x48, 0x33, 0x61, 0x91,
13000+0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x15, 0x28, 0x33, 0xb0,
13001+0xa4, 0x15, 0x48, 0x33, 0xb2, 0x10, 0x10, 0xa4, 0x15, 0x38, 0x33, 0xb1,
13002+0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0xc8, 0x33, 0x95, 0xa4, 0x14, 0xe8,
13003+0x33, 0x97, 0x10, 0x10, 0xa4, 0x14, 0xd8, 0x33, 0x96, 0x90, 0xb8, 0x90,
13004+0x70, 0x90, 0x38, 0xa4, 0x14, 0x68, 0x33, 0x7a, 0xa4, 0x14, 0x88, 0x33,
13005+0x7c, 0x10, 0x10, 0xa4, 0x14, 0x78, 0x33, 0x7b, 0x90, 0x70, 0x90, 0x38,
13006+0xa4, 0x14, 0x08, 0x33, 0x5e, 0xa4, 0x14, 0x28, 0x33, 0x60, 0x10, 0x10,
13007+0xa4, 0x14, 0x18, 0x33, 0x5f, 0xe4, 0xe1, 0x83, 0x40, 0x36, 0x21, 0x9a,
13008+0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4,
13009+0x13, 0xa0, 0x33, 0xad, 0xa4, 0x13, 0x98, 0x33, 0xaf, 0x10, 0x10, 0xa4,
13010+0x13, 0x90, 0x33, 0xae, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x88, 0x33,
13011+0x92, 0xa4, 0x13, 0x80, 0x33, 0x94, 0x10, 0x10, 0xa4, 0x13, 0x78, 0x33,
13012+0x93, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, 0x33, 0x77,
13013+0xa4, 0x13, 0x68, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x13, 0x60, 0x33, 0x78,
13014+0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x5b, 0xa4, 0x13, 0x50,
13015+0x33, 0x5d, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x5c, 0x91, 0x10, 0x90,
13016+0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xaa, 0x80, 0x33, 0xac, 0x10,
13017+0x10, 0x80, 0x33, 0xab, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x8f, 0x80,
13018+0x33, 0x91, 0x10, 0x10, 0x80, 0x33, 0x90, 0x90, 0x88, 0x90, 0x50, 0x90,
13019+0x28, 0x80, 0x33, 0x74, 0x80, 0x33, 0x76, 0x10, 0x10, 0x80, 0x33, 0x75,
13020+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x58, 0x80, 0x33, 0x5a, 0x10, 0x10,
13021+0x80, 0x33, 0x59, 0xe4, 0xe1, 0x5e, 0x40, 0x35, 0xa1, 0x95, 0x40, 0x9a,
13022+0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13023+0x33, 0xa7, 0x80, 0x33, 0xa9, 0x10, 0x10, 0x80, 0x33, 0xa8, 0x90, 0x50,
13024+0x90, 0x28, 0x80, 0x33, 0x8c, 0x80, 0x33, 0x8e, 0x10, 0x10, 0x80, 0x33,
13025+0x8d, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, 0x33, 0x71,
13026+0xa4, 0x13, 0x40, 0x33, 0x73, 0x10, 0x10, 0xa4, 0x13, 0x38, 0x33, 0x72,
13027+0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x55, 0xa4, 0x13, 0x10,
13028+0x33, 0x57, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x56, 0x91, 0x10, 0x90,
13029+0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xa4, 0x80, 0x33, 0xa6, 0x10,
13030+0x10, 0x80, 0x33, 0xa5, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x89, 0x80,
13031+0x33, 0x8b, 0x10, 0x10, 0x80, 0x33, 0x8a, 0x90, 0xb8, 0x90, 0x70, 0x90,
13032+0x38, 0xa4, 0x13, 0x18, 0x33, 0x6e, 0xa4, 0x13, 0x28, 0x33, 0x70, 0x10,
13033+0x10, 0xa4, 0x13, 0x20, 0x33, 0x6f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x12,
13034+0xe8, 0x33, 0x52, 0xa4, 0x12, 0xf8, 0x33, 0x54, 0x10, 0x10, 0xa4, 0x12,
13035+0xf0, 0x33, 0x53, 0xe4, 0xe1, 0x82, 0x40, 0x36, 0x1d, 0x98, 0xb8, 0x01,
13036+0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4f,
13037+0x80, 0x33, 0x51, 0x10, 0x10, 0x80, 0x33, 0x50, 0x90, 0x60, 0x90, 0x30,
13038+0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, 0x60, 0xa0,
13039+0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x5c, 0x40, 0x35, 0x99,
13040+0xa0, 0x08, 0x08, 0x94, 0xe0, 0x9a, 0x60, 0x04, 0xa0, 0x91, 0x40, 0x90,
13041+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x9e, 0xa4, 0x13,
13042+0xf8, 0x33, 0xa3, 0x10, 0x10, 0xa4, 0x13, 0xe8, 0x33, 0xa2, 0x90, 0x50,
13043+0x90, 0x28, 0x80, 0x33, 0x83, 0x80, 0x33, 0x88, 0x10, 0x10, 0x80, 0x33,
13044+0x87, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x68, 0x80, 0x33,
13045+0x6d, 0x10, 0x10, 0x80, 0x33, 0x6c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13046+0x49, 0x80, 0x33, 0x4e, 0x10, 0x10, 0x80, 0x33, 0x4d, 0x91, 0x40, 0x90,
13047+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xa8, 0x33, 0x9b, 0xa4, 0x13,
13048+0xc8, 0x33, 0x9d, 0x10, 0x10, 0xa4, 0x13, 0xb8, 0x33, 0x9c, 0x90, 0x50,
13049+0x90, 0x28, 0x80, 0x33, 0x80, 0x80, 0x33, 0x82, 0x10, 0x10, 0x80, 0x33,
13050+0x81, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x65, 0x80, 0x33,
13051+0x67, 0x10, 0x10, 0x80, 0x33, 0x66, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13052+0x46, 0x80, 0x33, 0x48, 0x10, 0x10, 0x80, 0x33, 0x47, 0xe4, 0xe1, 0x81,
13053+0x40, 0x36, 0x19, 0x9a, 0x60, 0x02, 0xe0, 0x91, 0x40, 0x90, 0xb8, 0x90,
13054+0x70, 0x90, 0x38, 0xa4, 0x1a, 0x20, 0x33, 0x9f, 0xa4, 0x1a, 0x10, 0x33,
13055+0xa1, 0x10, 0x10, 0xa4, 0x1a, 0x00, 0x33, 0xa0, 0x90, 0x50, 0x90, 0x28,
13056+0x80, 0x33, 0x84, 0x80, 0x33, 0x86, 0x10, 0x10, 0x80, 0x33, 0x85, 0x90,
13057+0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x69, 0x80, 0x33, 0x6b, 0x10,
13058+0x10, 0x80, 0x33, 0x6a, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4a, 0x80,
13059+0x33, 0x4c, 0x10, 0x10, 0x80, 0x33, 0x4b, 0x81, 0x90, 0x50, 0x90, 0x28,
13060+0x24, 0x19, 0xd0, 0x24, 0x19, 0xf0, 0x10, 0x10, 0x24, 0x19, 0xe0, 0xe4,
13061+0xe1, 0x5a, 0x40, 0x35, 0x91, 0x93, 0x90, 0x99, 0xb8, 0x03, 0x50, 0x90,
13062+0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x15, 0xb8, 0x32, 0xca, 0x10,
13063+0x10, 0xa4, 0x15, 0xa8, 0x32, 0xc9, 0x90, 0x28, 0x81, 0x32, 0xc6, 0x10,
13064+0x10, 0x80, 0x32, 0xc5, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0xc2, 0x10,
13065+0x10, 0x80, 0x32, 0xc1, 0x90, 0x28, 0x81, 0x32, 0xbe, 0x10, 0x10, 0x80,
13066+0x32, 0xbd, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x15, 0x88,
13067+0x32, 0xc7, 0x10, 0x10, 0xa4, 0x15, 0x98, 0x32, 0xc8, 0x90, 0x28, 0x81,
13068+0x32, 0xc3, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x90, 0x60, 0x90, 0x28, 0x81,
13069+0x32, 0xbf, 0x10, 0x10, 0x80, 0x32, 0xc0, 0x90, 0x28, 0x81, 0x32, 0xbb,
13070+0x10, 0x10, 0x80, 0x32, 0xbc, 0xe4, 0xe1, 0x80, 0x40, 0x36, 0x15, 0x88,
13071+0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x32, 0xb9, 0x10,
13072+0x10, 0x80, 0x32, 0xba, 0xe4, 0xe1, 0x58, 0x40, 0x35, 0x89, 0xa0, 0x0e,
13073+0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10,
13074+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x39, 0x80, 0x33, 0x38,
13075+0x10, 0x10, 0x80, 0x33, 0x37, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x1e,
13076+0x80, 0x33, 0x1d, 0x10, 0x10, 0x80, 0x33, 0x1c, 0x90, 0x88, 0x90, 0x50,
13077+0x90, 0x28, 0x80, 0x33, 0x03, 0x80, 0x33, 0x02, 0x10, 0x10, 0x80, 0x33,
13078+0x01, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe8, 0x80, 0x32, 0xe7, 0x10,
13079+0x10, 0x80, 0x32, 0xe6, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13080+0x80, 0x33, 0x34, 0x80, 0x33, 0x36, 0x10, 0x10, 0x80, 0x33, 0x35, 0x90,
13081+0x50, 0x90, 0x28, 0x80, 0x33, 0x19, 0x80, 0x33, 0x1b, 0x10, 0x10, 0x80,
13082+0x33, 0x1a, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xfe, 0x80,
13083+0x33, 0x00, 0x10, 0x10, 0x80, 0x32, 0xff, 0x90, 0x50, 0x90, 0x28, 0x80,
13084+0x32, 0xe3, 0x80, 0x32, 0xe5, 0x10, 0x10, 0x80, 0x32, 0xe4, 0xe4, 0xe1,
13085+0x72, 0x40, 0x35, 0xf1, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88,
13086+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x31, 0x80, 0x33, 0x33, 0x10, 0x10,
13087+0x80, 0x33, 0x32, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x16, 0x80, 0x33,
13088+0x18, 0x10, 0x10, 0x80, 0x33, 0x17, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13089+0x80, 0x32, 0xfb, 0x80, 0x32, 0xfd, 0x10, 0x10, 0x80, 0x32, 0xfc, 0x90,
13090+0x50, 0x90, 0x28, 0x80, 0x32, 0xe0, 0x80, 0x32, 0xe2, 0x10, 0x10, 0x80,
13091+0x32, 0xe1, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13092+0x2e, 0x80, 0x33, 0x30, 0x10, 0x10, 0x80, 0x33, 0x2f, 0x90, 0x50, 0x90,
13093+0x28, 0x80, 0x33, 0x13, 0x80, 0x33, 0x15, 0x10, 0x10, 0x80, 0x33, 0x14,
13094+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf8, 0x80, 0x32, 0xfa,
13095+0x10, 0x10, 0x80, 0x32, 0xf9, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xdd,
13096+0x80, 0x32, 0xdf, 0x10, 0x10, 0x80, 0x32, 0xde, 0xe4, 0xe1, 0x51, 0x40,
13097+0x35, 0x59, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88,
13098+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x2b, 0x80, 0x33, 0x2d, 0x10, 0x10,
13099+0x80, 0x33, 0x2c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x10, 0x80, 0x33,
13100+0x12, 0x10, 0x10, 0x80, 0x33, 0x11, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13101+0x80, 0x32, 0xf5, 0x80, 0x32, 0xf7, 0x10, 0x10, 0x80, 0x32, 0xf6, 0x90,
13102+0x50, 0x90, 0x28, 0x80, 0x32, 0xda, 0x80, 0x32, 0xdc, 0x10, 0x10, 0x80,
13103+0x32, 0xdb, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13104+0x28, 0x80, 0x33, 0x2a, 0x10, 0x10, 0x80, 0x33, 0x29, 0x90, 0x50, 0x90,
13105+0x28, 0x80, 0x33, 0x0d, 0x80, 0x33, 0x0f, 0x10, 0x10, 0x80, 0x33, 0x0e,
13106+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf2, 0x80, 0x32, 0xf4,
13107+0x10, 0x10, 0x80, 0x32, 0xf3, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd7,
13108+0x80, 0x32, 0xd9, 0x10, 0x10, 0x80, 0x32, 0xd8, 0xe4, 0xe1, 0x70, 0x40,
13109+0x35, 0xe9, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90,
13110+0x28, 0x80, 0x32, 0xd4, 0x80, 0x32, 0xd6, 0x10, 0x10, 0x80, 0x32, 0xd5,
13111+0xe4, 0xe1, 0x50, 0x40, 0x35, 0x55, 0x96, 0xe8, 0x94, 0x80, 0x9a, 0x30,
13112+0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13113+0x22, 0x80, 0x33, 0x27, 0x10, 0x10, 0x80, 0x33, 0x26, 0x90, 0x50, 0x90,
13114+0x28, 0x80, 0x33, 0x07, 0x80, 0x33, 0x0c, 0x10, 0x10, 0x80, 0x33, 0x0b,
13115+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xec, 0x80, 0x32, 0xf1,
13116+0x10, 0x10, 0x80, 0x32, 0xf0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xce,
13117+0x80, 0x32, 0xd3, 0x10, 0x10, 0x80, 0x32, 0xd2, 0x91, 0x10, 0x90, 0x88,
13118+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x1f, 0x80, 0x33, 0x21, 0x10, 0x10,
13119+0x80, 0x33, 0x20, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x04, 0x80, 0x33,
13120+0x06, 0x10, 0x10, 0x80, 0x33, 0x05, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13121+0x80, 0x32, 0xe9, 0x80, 0x32, 0xeb, 0x10, 0x10, 0x80, 0x32, 0xea, 0x90,
13122+0x50, 0x90, 0x28, 0x80, 0x32, 0xcb, 0x80, 0x32, 0xcd, 0x10, 0x10, 0x80,
13123+0x32, 0xcc, 0xe4, 0xe1, 0x6e, 0x40, 0x35, 0xe1, 0x88, 0x02, 0x28, 0x91,
13124+0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x23, 0x80, 0x33,
13125+0x25, 0x10, 0x10, 0x80, 0x33, 0x24, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13126+0x08, 0x80, 0x33, 0x0a, 0x10, 0x10, 0x80, 0x33, 0x09, 0x90, 0x88, 0x90,
13127+0x50, 0x90, 0x28, 0x80, 0x32, 0xed, 0x80, 0x32, 0xef, 0x10, 0x10, 0x80,
13128+0x32, 0xee, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcf, 0x80, 0x32, 0xd1,
13129+0x10, 0x10, 0x80, 0x32, 0xd0, 0xe4, 0xe1, 0x4f, 0x40, 0x35, 0x51, 0x90,
13130+0x40, 0xe5, 0x21, 0x6c, 0x40, 0x35, 0xd9, 0xe5, 0x21, 0x4e, 0x40, 0x35,
13131+0x4d, 0x9e, 0xb4, 0x22, 0xe8, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80,
13132+0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x3e, 0x38, 0x84, 0x37, 0xd1,
13133+0xa4, 0x3c, 0x18, 0x37, 0x9b, 0x90, 0x28, 0x24, 0x3b, 0x58, 0xa4, 0x39,
13134+0xd8, 0x37, 0x53, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x3e, 0x18,
13135+0x84, 0x37, 0xcf, 0xa4, 0x3c, 0x08, 0x37, 0x99, 0x90, 0x28, 0x24, 0x3b,
13136+0x48, 0xa4, 0x39, 0xc8, 0x37, 0x51, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40,
13137+0x90, 0x28, 0x80, 0x37, 0xbb, 0xa4, 0x3b, 0xe8, 0x37, 0x95, 0x90, 0x28,
13138+0x24, 0x3b, 0x28, 0xa4, 0x39, 0xa8, 0x37, 0x4d, 0xd0, 0xc3, 0x40, 0x90,
13139+0x28, 0x80, 0x37, 0xb7, 0xa4, 0x3b, 0xd8, 0x37, 0x93, 0x90, 0x28, 0x24,
13140+0x3b, 0x18, 0xa4, 0x39, 0x98, 0x37, 0x4b, 0x91, 0x98, 0xd5, 0x06, 0x80,
13141+0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xaf, 0xa4, 0x3b, 0xb8, 0x37,
13142+0x8f, 0x90, 0x28, 0x24, 0x3a, 0xf8, 0xa4, 0x39, 0x78, 0x37, 0x47, 0xd0,
13143+0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xab, 0xa4, 0x3b, 0xa8, 0x37, 0x8d,
13144+0x90, 0x28, 0x24, 0x3a, 0xe8, 0xa4, 0x39, 0x68, 0x37, 0x45, 0xd5, 0x06,
13145+0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xa3, 0xa4, 0x3b, 0x88,
13146+0x37, 0x89, 0x90, 0x28, 0x24, 0x3a, 0xc8, 0xa4, 0x39, 0x48, 0x37, 0x41,
13147+0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0x9f, 0xa4, 0x3b, 0x78, 0x37,
13148+0x87, 0x90, 0x28, 0x24, 0x3a, 0xb8, 0xa4, 0x39, 0x38, 0x37, 0x3f, 0x93,
13149+0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80,
13150+0x8c, 0x3e, 0x58, 0x84, 0x37, 0xd3, 0xa4, 0x3c, 0x28, 0x37, 0x9d, 0x90,
13151+0x28, 0x24, 0x3b, 0x68, 0xa4, 0x39, 0xe8, 0x37, 0x55, 0xd0, 0xc4, 0x40,
13152+0x90, 0x48, 0x80, 0x8c, 0x3e, 0x28, 0x84, 0x37, 0xd0, 0xa4, 0x3c, 0x10,
13153+0x37, 0x9a, 0x90, 0x28, 0x24, 0x3b, 0x50, 0xa4, 0x39, 0xd0, 0x37, 0x52,
13154+0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xbf, 0xa4,
13155+0x3b, 0xf8, 0x37, 0x97, 0x90, 0x28, 0x24, 0x3b, 0x38, 0xa4, 0x39, 0xb8,
13156+0x37, 0x4f, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xb9, 0xa4, 0x3b,
13157+0xe0, 0x37, 0x94, 0x90, 0x28, 0x24, 0x3b, 0x20, 0xa4, 0x39, 0xa0, 0x37,
13158+0x4c, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80,
13159+0x37, 0xb3, 0xa4, 0x3b, 0xc8, 0x37, 0x91, 0x90, 0x28, 0x24, 0x3b, 0x08,
13160+0xa4, 0x39, 0x88, 0x37, 0x49, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37,
13161+0xad, 0xa4, 0x3b, 0xb0, 0x37, 0x8e, 0x90, 0x28, 0x24, 0x3a, 0xf0, 0xa4,
13162+0x39, 0x70, 0x37, 0x46, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28,
13163+0x80, 0x37, 0xa7, 0xa4, 0x3b, 0x98, 0x37, 0x8b, 0x90, 0x28, 0x24, 0x3a,
13164+0xd8, 0xa4, 0x39, 0x58, 0x37, 0x43, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80,
13165+0x37, 0xa1, 0xa4, 0x3b, 0x80, 0x37, 0x88, 0x90, 0x28, 0x24, 0x3a, 0xc0,
13166+0xa4, 0x39, 0x40, 0x37, 0x40, 0x99, 0x08, 0x01, 0xf0, 0x81, 0x90, 0x78,
13167+0xd4, 0xc2, 0x00, 0xa4, 0x22, 0x80, 0x34, 0x40, 0xa4, 0x21, 0x80, 0x34,
13168+0x20, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xa0, 0x34, 0x44, 0xa4, 0x20, 0xa0,
13169+0x34, 0x24, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xe0, 0x34,
13170+0x4c, 0xa4, 0x20, 0xe0, 0x34, 0x2c, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xc0,
13171+0x34, 0x48, 0xa4, 0x20, 0xc0, 0x34, 0x28, 0xa8, 0x0b, 0x18, 0x13, 0xa8,
13172+0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60,
13173+0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, 0xb0, 0x90, 0x38,
13174+0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, 0x60, 0x90, 0x38,
13175+0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, 0x38, 0xa4, 0x10,
13176+0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38,
13177+0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, 0x38, 0xa4, 0x11,
13178+0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10,
13179+0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, 0x10, 0x20, 0x32,
13180+0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0xc8, 0x40, 0x37, 0x23, 0x99, 0x90,
13181+0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x90, 0x32,
13182+0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, 0x32, 0x35, 0x24,
13183+0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, 0x32, 0x1a, 0x24,
13184+0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, 0x24, 0x10, 0x00,
13185+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, 0x32, 0x4d, 0x24,
13186+0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, 0x24, 0x11, 0x98,
13187+0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, 0x24, 0x10, 0xc0,
13188+0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, 0xe8, 0xe4, 0xe1,
13189+0xc6, 0xc0, 0x37, 0x1d, 0x93, 0x78, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0,
13190+0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, 0x24, 0x12, 0x58,
13191+0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, 0x80, 0x90, 0x60,
13192+0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, 0xa8, 0x90, 0x38,
13193+0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, 0xc0, 0x90, 0x60,
13194+0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, 0x40, 0x90, 0x38,
13195+0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, 0x60, 0x90, 0x38,
13196+0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, 0x38, 0xa4, 0x0f,
13197+0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa1, 0x16, 0x00, 0x02, 0x00,
13198+0x34, 0x5a, 0xa4, 0x38, 0xa8, 0x37, 0x17, 0x88, 0x00, 0x88, 0x10, 0x10,
13199+0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, 0x24, 0x0f, 0xa0,
13200+0xe9, 0x61, 0x15, 0x40, 0x02, 0x00, 0x34, 0x56, 0xe3, 0x61, 0xc3, 0xc0,
13201+0x37, 0x11, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0,
13202+0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, 0x24, 0x12, 0x28,
13203+0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, 0x50, 0x90, 0x60,
13204+0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, 0x78, 0x90, 0x38,
13205+0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, 0xc0, 0x90, 0x60,
13206+0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, 0xf8, 0x90, 0x38,
13207+0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, 0x60, 0x90, 0x38,
13208+0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, 0x38, 0xa4, 0x0f,
13209+0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0xc8, 0x80, 0x37, 0x25,
13210+0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x20,
13211+0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, 0x48, 0x32, 0x27,
13212+0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x70, 0x32, 0x0c,
13213+0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, 0xee, 0x24, 0x0f,
13214+0x78, 0xe4, 0xe1, 0xc7, 0x00, 0x37, 0x1f, 0x92, 0xd0, 0x99, 0x50, 0x02,
13215+0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe9, 0x24, 0x0f,
13216+0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, 0x90, 0x50, 0x90,
13217+0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, 0x80, 0x31, 0xdd,
13218+0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe6,
13219+0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, 0x0f, 0x18, 0x90,
13220+0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, 0x90, 0x28, 0x80,
13221+0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0xc5, 0xa1, 0x17, 0x00, 0x37,
13222+0x19, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x80, 0x31,
13223+0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0xc4, 0x21, 0x15, 0x00, 0x37, 0x13,
13224+0xe5, 0xa1, 0x4d, 0x40, 0x35, 0x31, 0xa0, 0x2a, 0x10, 0xa8, 0x16, 0x60,
13225+0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, 0x60, 0x92, 0xb0,
13226+0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xa1, 0x80,
13227+0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, 0x90, 0x38, 0xa4,
13228+0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, 0x10, 0x10, 0xa4,
13229+0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09,
13230+0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, 0x10, 0xa4, 0x09,
13231+0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x28, 0x31, 0xc5,
13232+0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, 0x18, 0x31, 0xc3,
13233+0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x9c, 0x80,
13234+0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, 0x90, 0x38, 0xa4,
13235+0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, 0x10, 0x10, 0xa4,
13236+0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09,
13237+0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, 0x10, 0xa4, 0x09,
13238+0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x00, 0x31, 0xc0,
13239+0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, 0x08, 0x31, 0xc1,
13240+0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31,
13241+0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, 0x90, 0x70, 0x90,
13242+0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, 0x31, 0xad, 0x10,
13243+0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38,
13244+0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, 0xd1, 0x10, 0x10,
13245+0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0xe8,
13246+0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, 0xa4, 0x08, 0xf0,
13247+0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31,
13248+0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, 0x90, 0x70, 0x90,
13249+0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, 0x31, 0xaa, 0x10,
13250+0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38,
13251+0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, 0xce, 0x10, 0x10,
13252+0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0xd0,
13253+0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, 0xa4, 0x08, 0xd8,
13254+0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50,
13255+0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, 0x10, 0x80, 0x31,
13256+0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, 0x60, 0xa0, 0x2a,
13257+0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, 0x2a, 0x00, 0x97,
13258+0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13259+0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, 0x80, 0x31, 0x94,
13260+0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, 0xa4, 0x08, 0x38,
13261+0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, 0x90, 0xb8, 0x90,
13262+0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, 0x09, 0x58, 0x31,
13263+0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, 0x70, 0x90, 0x38,
13264+0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, 0xb9, 0x10, 0x10,
13265+0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13266+0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, 0x80, 0x31, 0x91,
13267+0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, 0xa4, 0x08, 0x20,
13268+0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, 0x90, 0xb8, 0x90,
13269+0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, 0x09, 0x40, 0x31,
13270+0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, 0x70, 0x90, 0x38,
13271+0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, 0xb6, 0x10, 0x10,
13272+0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, 0x90, 0xa0, 0x90,
13273+0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, 0x90, 0x28, 0x80,
13274+0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xc4,
13275+0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, 0x30, 0xc5, 0x90,
13276+0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, 0x30, 0xc3, 0x90,
13277+0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, 0x90, 0x28, 0x80,
13278+0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, 0xbf, 0x80, 0x30,
13279+0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31,
13280+0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, 0x31, 0x3d, 0x10,
13281+0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31, 0x41, 0x10,
13282+0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, 0x10, 0x10, 0x80,
13283+0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x31, 0x38,
13284+0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, 0x0a, 0xc8, 0x95,
13285+0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13286+0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, 0x54, 0x90, 0x70,
13287+0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, 0xe0, 0x31, 0x67,
13288+0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, 0x90, 0x70, 0x90,
13289+0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, 0x31, 0x8b, 0x10,
13290+0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07,
13291+0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, 0x10, 0xa4, 0x07,
13292+0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13293+0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, 0x52, 0x90, 0x70,
13294+0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, 0xd0, 0x31, 0x65,
13295+0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, 0x90, 0x70, 0x90,
13296+0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, 0x31, 0x89, 0x10,
13297+0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07,
13298+0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, 0x10, 0xa4, 0x07,
13299+0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13300+0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, 0x80, 0x31, 0x4f,
13301+0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, 0xa4, 0x06, 0xb8,
13302+0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, 0x90, 0xb8, 0x90,
13303+0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, 0x07, 0xd8, 0x31,
13304+0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, 0x70, 0x90, 0x38,
13305+0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, 0x74, 0x10, 0x10,
13306+0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13307+0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, 0x80, 0x31, 0x4c,
13308+0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, 0xa4, 0x06, 0xa0,
13309+0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, 0x90, 0xb8, 0x90,
13310+0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, 0x07, 0xc0, 0x31,
13311+0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, 0x70, 0x90, 0x38,
13312+0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, 0x71, 0x10, 0x10,
13313+0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, 0x10, 0x10, 0x10,
13314+0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, 0x44, 0x10, 0x10,
13315+0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88,
13316+0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, 0x4a, 0x10, 0x10,
13317+0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x78, 0x31, 0x5a,
13318+0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, 0x80, 0x31, 0x5b,
13319+0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, 0x31, 0x7e, 0xa4,
13320+0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, 0x31, 0x7f, 0x90,
13321+0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, 0x07, 0x18, 0x31,
13322+0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, 0x40, 0x90, 0x88,
13323+0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, 0x47, 0x10, 0x10,
13324+0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x60, 0x31, 0x57,
13325+0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, 0x68, 0x31, 0x58,
13326+0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, 0x31, 0x7b, 0xa4,
13327+0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, 0x31, 0x7c, 0x90,
13328+0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, 0x07, 0x00, 0x31,
13329+0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, 0x10, 0x91, 0x40,
13330+0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, 0x80, 0x30, 0xba,
13331+0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, 0x50, 0x90, 0x28,
13332+0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, 0x30, 0xb6, 0x80,
13333+0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xac, 0x80,
13334+0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, 0xb1, 0x90, 0x50,
13335+0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, 0x28, 0x80, 0x30,
13336+0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, 0xe8, 0x07, 0x60,
13337+0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, 0x80, 0x90, 0x50,
13338+0x90, 0x28, 0x80, 0x33, 0xf8, 0x80, 0x33, 0xf9, 0x81, 0x33, 0xef, 0xd0,
13339+0x41, 0x80, 0x24, 0x20, 0x90, 0x24, 0x20, 0x98, 0x10, 0x10, 0x80, 0x90,
13340+0x58, 0x80, 0x90, 0x28, 0x24, 0x1f, 0x90, 0x24, 0x1f, 0x98, 0x81, 0x24,
13341+0x1f, 0x50, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, 0x90, 0x30, 0x80,
13342+0x24, 0x20, 0x00, 0x90, 0x38, 0xa4, 0x1f, 0xf8, 0x34, 0x06, 0x80, 0x34,
13343+0x05, 0x80, 0x90, 0x28, 0x80, 0x34, 0x0f, 0xa4, 0x1f, 0xe0, 0x34, 0x0e,
13344+0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x34, 0x09, 0xa4, 0x1f,
13345+0xf0, 0x34, 0x08, 0x90, 0x28, 0x80, 0x34, 0x04, 0xa4, 0x1f, 0xe8, 0x34,
13346+0x03, 0x90, 0x50, 0x90, 0x28, 0x80, 0x34, 0x0d, 0x80, 0x34, 0x0c, 0x90,
13347+0x28, 0x24, 0x20, 0x88, 0x24, 0x20, 0x80, 0x90, 0x58, 0x80, 0x10, 0x10,
13348+0x80, 0x10, 0x10, 0x80, 0x33, 0xfb, 0x80, 0x90, 0x40, 0x10, 0x10, 0x80,
13349+0x24, 0x1f, 0x60, 0x80, 0x10, 0x10, 0x80, 0x33, 0xfa, 0x91, 0x58, 0x91,
13350+0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xf6, 0x80,
13351+0x33, 0xf7, 0x81, 0x33, 0xee, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13352+0xf4, 0x80, 0x33, 0xf5, 0x81, 0x33, 0xed, 0x83, 0x90, 0x28, 0x24, 0x1f,
13353+0x80, 0x24, 0x1f, 0x88, 0x90, 0xe8, 0x81, 0x90, 0x88, 0x90, 0x38, 0x10,
13354+0x10, 0x80, 0x34, 0x07, 0x90, 0x28, 0x80, 0x34, 0x02, 0x80, 0x34, 0x01,
13355+0x80, 0x90, 0x28, 0x80, 0x34, 0x0b, 0x80, 0x34, 0x0a, 0x82, 0x10, 0x10,
13356+0x80, 0x24, 0x1f, 0x58, 0x97, 0x10, 0x9e, 0x10, 0x06, 0x98, 0x93, 0x00,
13357+0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x80, 0x30,
13358+0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, 0x30, 0x83, 0x24,
13359+0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, 0x30, 0xa7, 0x24,
13360+0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, 0x24, 0x04, 0x98,
13361+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, 0x30, 0x6c, 0x24,
13362+0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, 0x24, 0x03, 0xf8,
13363+0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, 0x24, 0x05, 0x18,
13364+0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, 0x88, 0x91, 0x80,
13365+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, 0x30, 0x69, 0x24,
13366+0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, 0x24, 0x03, 0xe0,
13367+0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, 0x24, 0x05, 0x00,
13368+0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, 0x70, 0x90, 0xc0,
13369+0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, 0x24, 0x03, 0x38,
13370+0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, 0xc8, 0x90, 0x60,
13371+0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, 0xe8, 0x90, 0x38,
13372+0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, 0x10, 0x80, 0x10,
13373+0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, 0x5d, 0x24, 0x02,
13374+0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x38, 0x58, 0x37, 0x0d, 0xa4, 0x38, 0x38,
13375+0x37, 0x09, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, 0x80, 0x90, 0xc0,
13376+0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, 0x24, 0x03, 0x20,
13377+0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, 0xb0, 0x90, 0x60,
13378+0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, 0xd0, 0x90, 0x38,
13379+0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, 0xc0, 0x90, 0x60,
13380+0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, 0x08, 0x90, 0x38,
13381+0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, 0x60, 0x90, 0x38,
13382+0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, 0x38, 0xa4, 0x04,
13383+0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, 0xe0, 0x90, 0x70,
13384+0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, 0x78, 0x30, 0x50,
13385+0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, 0x60, 0x30, 0x4d,
13386+0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, 0xa4, 0x02, 0x40,
13387+0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, 0xa4, 0x02, 0x28,
13388+0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80,
13389+0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, 0x58, 0x24, 0x02,
13390+0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, 0x02, 0xd8, 0x90,
13391+0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, 0x10, 0x10, 0x10,
13392+0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, 0x42, 0x00, 0xa4,
13393+0x38, 0x60, 0x37, 0x0e, 0xa4, 0x38, 0x40, 0x37, 0x0a, 0xa0, 0x14, 0x68,
13394+0xa0, 0x10, 0x90, 0xa0, 0x0c, 0x60, 0x9e, 0x88, 0x09, 0xd0, 0x94, 0xf0,
13395+0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x44, 0x40,
13396+0x85, 0x35, 0x2d, 0xcb, 0x61, 0x3d, 0x00, 0x85, 0x35, 0x03, 0x9a, 0x00,
13397+0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, 0x90, 0x68, 0x90,
13398+0x20, 0x3a, 0x53, 0xc9, 0xe2, 0x94, 0x40, 0x85, 0x35, 0x2b, 0xa4, 0x52,
13399+0x78, 0x3a, 0x50, 0x90, 0x38, 0xa4, 0x52, 0x40, 0x3a, 0x49, 0xa4, 0x52,
13400+0x30, 0x3a, 0x47, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x51, 0xf8, 0x3a, 0x40,
13401+0x10, 0x10, 0x80, 0x3a, 0x3c, 0x81, 0x10, 0x10, 0x80, 0xa4, 0x51, 0xc8,
13402+0x3a, 0x3a, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38,
13403+0xa4, 0x52, 0x68, 0x3a, 0x4e, 0xa4, 0x52, 0x58, 0x3a, 0x4c, 0x90, 0x38,
13404+0xa4, 0x52, 0x20, 0x3a, 0x45, 0xa4, 0x52, 0x10, 0x3a, 0x43, 0x90, 0x48,
13405+0x10, 0x10, 0xa4, 0x51, 0xe8, 0x3a, 0x3e, 0x10, 0x10, 0x80, 0x3a, 0x3b,
13406+0x90, 0x28, 0x80, 0x3a, 0x34, 0x80, 0x3a, 0x33, 0x81, 0x10, 0x10, 0x80,
13407+0xa4, 0x51, 0xb8, 0x3a, 0x38, 0xcb, 0x61, 0x3c, 0xc0, 0x85, 0x35, 0x02,
13408+0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, 0xc0, 0x85, 0x3a,
13409+0x56, 0xc9, 0xe1, 0x44, 0x00, 0x85, 0x35, 0x29, 0xcb, 0x61, 0x3c, 0x80,
13410+0x85, 0x35, 0x01, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x43,
13411+0xc0, 0x85, 0x35, 0x27, 0xcb, 0x61, 0x3c, 0x40, 0x85, 0x35, 0x00, 0x91,
13412+0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x43,
13413+0x40, 0x85, 0x35, 0x23, 0xcb, 0x61, 0x3b, 0xc0, 0x85, 0x34, 0xfe, 0x88,
13414+0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, 0x20, 0x3a, 0x4a,
13415+0xc9, 0xe1, 0x43, 0x00, 0x85, 0x35, 0x21, 0x81, 0x3a, 0x41, 0x81, 0x10,
13416+0x10, 0x80, 0xa4, 0x51, 0xa8, 0x3a, 0x36, 0xcb, 0x61, 0x3b, 0x80, 0x85,
13417+0x34, 0xfd, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1,
13418+0x42, 0xc0, 0x85, 0x35, 0x1f, 0xcb, 0x61, 0x3b, 0x40, 0x85, 0x34, 0xfc,
13419+0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x42, 0x80, 0x85, 0x35,
13420+0x1d, 0xcb, 0x61, 0x3b, 0x00, 0x85, 0x34, 0xfb, 0x92, 0x38, 0x81, 0x91,
13421+0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, 0x53, 0x28, 0x3a,
13422+0x66, 0x80, 0xa4, 0x53, 0x20, 0x3a, 0x63, 0x90, 0x28, 0x81, 0x3a, 0x62,
13423+0x90, 0x38, 0xa4, 0x53, 0x00, 0x3a, 0x61, 0xa4, 0x52, 0xf0, 0x3a, 0x5f,
13424+0x90, 0x28, 0x80, 0x3a, 0x5d, 0x80, 0x3a, 0x5c, 0x80, 0x90, 0x40, 0x10,
13425+0x10, 0x80, 0x24, 0x52, 0xd8, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x52, 0xc8,
13426+0x3a, 0x5a, 0xa4, 0x52, 0xb8, 0x3a, 0x58, 0x90, 0x28, 0x80, 0x3a, 0x55,
13427+0x80, 0x3a, 0x54, 0x9a, 0xd0, 0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88,
13428+0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x42, 0x00, 0x85, 0x35, 0x19,
13429+0xcb, 0x61, 0x3a, 0x80, 0x85, 0x34, 0xf9, 0x88, 0x00, 0x68, 0x84, 0x10,
13430+0x10, 0xc9, 0xe1, 0x41, 0xc0, 0x85, 0x35, 0x17, 0xcb, 0x61, 0x3a, 0x40,
13431+0x85, 0x34, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9,
13432+0xe1, 0x41, 0x80, 0x85, 0x35, 0x15, 0xcb, 0x61, 0x3a, 0x00, 0x85, 0x34,
13433+0xf7, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x41, 0x40, 0x85,
13434+0x35, 0x13, 0xcb, 0x61, 0x39, 0xc0, 0x85, 0x34, 0xf6, 0x90, 0x90, 0x90,
13435+0x48, 0xcb, 0xa1, 0x38, 0x00, 0x85, 0x34, 0xe5, 0xcb, 0xa1, 0x37, 0xc0,
13436+0x85, 0x34, 0xe4, 0x90, 0x48, 0xcb, 0xa1, 0x37, 0x80, 0x85, 0x34, 0xe3,
13437+0xcb, 0xa1, 0x37, 0x40, 0x85, 0x34, 0xe2, 0xcb, 0xa2, 0x8c, 0x40, 0x80,
13438+0x3a, 0x32, 0x92, 0x40, 0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26,
13439+0x60, 0x84, 0x24, 0x26, 0xd8, 0x8c, 0x26, 0x58, 0x84, 0x24, 0x26, 0xd0,
13440+0x90, 0x48, 0x8c, 0x26, 0x50, 0x84, 0x24, 0x26, 0xc8, 0x8c, 0x26, 0x48,
13441+0x84, 0x24, 0x26, 0xc0, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26, 0x38, 0x84,
13442+0x24, 0x26, 0xb0, 0x8c, 0x26, 0x30, 0x84, 0x24, 0x26, 0xa8, 0x90, 0x48,
13443+0x8c, 0x26, 0x28, 0x84, 0x24, 0x26, 0xa0, 0x8c, 0x26, 0x20, 0x84, 0x24,
13444+0x26, 0x98, 0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26, 0x10, 0x84,
13445+0x24, 0x26, 0x88, 0x8c, 0x26, 0x08, 0x84, 0x24, 0x26, 0x80, 0x90, 0x48,
13446+0x8c, 0x26, 0x00, 0x84, 0x24, 0x26, 0x78, 0x8c, 0x25, 0xf8, 0x84, 0x24,
13447+0x26, 0x70, 0x90, 0x38, 0xa4, 0x25, 0xe0, 0x34, 0xbd, 0xa4, 0x25, 0xd0,
13448+0x34, 0xbb, 0xa0, 0x0f, 0x50, 0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40,
13449+0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x8a, 0x40,
13450+0x3a, 0x21, 0xe5, 0x22, 0x82, 0x40, 0x3a, 0x1d, 0xcb, 0x61, 0x2a, 0x40,
13451+0x85, 0x34, 0xb8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x7a, 0x40, 0x39,
13452+0xe1, 0xe5, 0x22, 0x72, 0x40, 0x39, 0xdd, 0xcb, 0x61, 0x2a, 0x00, 0x85,
13453+0x34, 0xb7, 0x90, 0x48, 0xcb, 0xa1, 0x29, 0xc0, 0x85, 0x34, 0xb6, 0xcb,
13454+0xa1, 0x29, 0x80, 0x85, 0x34, 0xb5, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50,
13455+0x00, 0x80, 0xe5, 0x22, 0x64, 0x40, 0x39, 0xa9, 0xe5, 0x22, 0x58, 0x40,
13456+0x39, 0x79, 0xcb, 0x61, 0x29, 0x00, 0x85, 0x34, 0xb3, 0x98, 0x50, 0x00,
13457+0x80, 0xe5, 0x22, 0x4c, 0x40, 0x39, 0x49, 0xe5, 0x22, 0x40, 0x40, 0x39,
13458+0x19, 0xcb, 0x61, 0x28, 0xc0, 0x85, 0x34, 0xb2, 0x90, 0x48, 0xcb, 0xa1,
13459+0x28, 0x80, 0x85, 0x34, 0xb1, 0xcb, 0xa1, 0x28, 0x40, 0x85, 0x34, 0xb0,
13460+0x92, 0x20, 0x91, 0x30, 0x90, 0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81,
13461+0x8c, 0x01, 0xa0, 0x84, 0x30, 0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80,
13462+0x84, 0x30, 0x3c, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0,
13463+0xc0, 0x81, 0x30, 0x24, 0x90, 0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81,
13464+0x30, 0x1c, 0xc0, 0xc0, 0x81, 0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0,
13465+0x81, 0x30, 0x10, 0xc0, 0xc0, 0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8,
13466+0xd5, 0x03, 0x80, 0xc8, 0xe2, 0x38, 0x40, 0x81, 0x8c, 0x01, 0xc0, 0x84,
13467+0x30, 0x40, 0xc8, 0xe2, 0x3a, 0x40, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30,
13468+0x3d, 0xd5, 0x02, 0x80, 0xc8, 0xe2, 0x37, 0x40, 0x81, 0x30, 0x2c, 0xc8,
13469+0xe2, 0x31, 0xc0, 0x81, 0x30, 0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8,
13470+0xe2, 0x26, 0xc0, 0x81, 0x30, 0x20, 0xc8, 0xe2, 0x28, 0xc0, 0x81, 0x30,
13471+0x1a, 0xd5, 0x02, 0x80, 0xc8, 0xe2, 0x25, 0xc0, 0x81, 0x30, 0x14, 0xc8,
13472+0xe2, 0x20, 0x40, 0x81, 0x30, 0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90,
13473+0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x7e, 0x40, 0x39, 0xf1,
13474+0xe5, 0x22, 0x80, 0x40, 0x3a, 0x15, 0xcb, 0x61, 0x27, 0xc0, 0x85, 0x34,
13475+0xae, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x6e, 0x40, 0x39, 0xb1, 0xe5,
13476+0x22, 0x70, 0x40, 0x39, 0xd5, 0xcb, 0x61, 0x27, 0x80, 0x85, 0x34, 0xad,
13477+0x90, 0x48, 0xcb, 0xa1, 0x27, 0x40, 0x85, 0x34, 0xac, 0xcb, 0xa1, 0x27,
13478+0x00, 0x85, 0x34, 0xab, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80,
13479+0xe5, 0x22, 0x60, 0x40, 0x39, 0x99, 0xe5, 0x22, 0x54, 0x40, 0x39, 0x69,
13480+0xcb, 0x61, 0x25, 0x40, 0x85, 0x34, 0x9a, 0x98, 0x50, 0x00, 0x80, 0xe5,
13481+0x22, 0x48, 0x40, 0x39, 0x39, 0xe5, 0x22, 0x3c, 0x40, 0x39, 0x09, 0xcb,
13482+0x61, 0x25, 0x00, 0x85, 0x34, 0x99, 0x90, 0x48, 0xcb, 0xa1, 0x24, 0xc0,
13483+0x85, 0x34, 0x98, 0xcb, 0xa1, 0x24, 0x80, 0x85, 0x34, 0x97, 0x91, 0x00,
13484+0x90, 0x80, 0x90, 0x40, 0xe5, 0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20,
13485+0x01, 0x80, 0x30, 0x07, 0x90, 0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04,
13486+0xe5, 0x20, 0x00, 0x00, 0x30, 0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22,
13487+0x2d, 0x40, 0x38, 0xab, 0xe5, 0x22, 0x2f, 0x80, 0x38, 0xd3, 0x90, 0x40,
13488+0xe5, 0x22, 0x1b, 0xc0, 0x38, 0x65, 0xe5, 0x22, 0x1e, 0x00, 0x38, 0x8d,
13489+0x80, 0x99, 0x28, 0x02, 0xf0, 0x8c, 0x24, 0x48, 0x90, 0x80, 0x90, 0x40,
13490+0xe5, 0x22, 0x84, 0x40, 0x3a, 0x0d, 0xe5, 0x22, 0x81, 0x40, 0x3a, 0x19,
13491+0x90, 0x40, 0xe5, 0x22, 0x74, 0x40, 0x39, 0xcd, 0xe5, 0x22, 0x71, 0x40,
13492+0x39, 0xd9, 0x91, 0x48, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22,
13493+0x62, 0x40, 0x39, 0xa1, 0xe5, 0x22, 0x56, 0x40, 0x39, 0x71, 0xcb, 0x61,
13494+0x23, 0x00, 0x85, 0x34, 0x90, 0x90, 0x40, 0xe5, 0x22, 0x4a, 0x40, 0x39,
13495+0x41, 0xe5, 0x22, 0x3e, 0x40, 0x39, 0x11, 0x90, 0x48, 0xcb, 0xa1, 0x22,
13496+0x80, 0x85, 0x34, 0x8e, 0xcb, 0xa1, 0x22, 0xc0, 0x85, 0x34, 0x8f, 0x10,
13497+0x10, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x33, 0xc0, 0x38, 0xcb, 0xe5,
13498+0x22, 0x30, 0xc0, 0x38, 0xd9, 0x90, 0x40, 0xe5, 0x22, 0x22, 0x40, 0x38,
13499+0x85, 0xe5, 0x22, 0x1f, 0x40, 0x38, 0x93,
13500+};
13501+
13502+static const struct ia64_dis_names ia64_dis_names[] = {
13503+{ 0x51, 41, 0, 10 },
13504+{ 0x31, 41, 1, 20 },
13505+{ 0x11, 42, 0, 19 },
13506+{ 0x29, 41, 0, 12 },
13507+{ 0x19, 41, 1, 24 },
13508+{ 0x9, 42, 0, 23 },
13509+{ 0x15, 41, 0, 14 },
13510+{ 0xd, 41, 1, 28 },
13511+{ 0x5, 42, 0, 27 },
13512+{ 0xb, 41, 0, 16 },
13513+{ 0x7, 41, 1, 32 },
13514+{ 0x3, 42, 0, 31 },
13515+{ 0x51, 39, 1, 58 },
13516+{ 0x50, 39, 0, 34 },
13517+{ 0xd1, 39, 1, 57 },
13518+{ 0xd0, 39, 0, 33 },
13519+{ 0x31, 39, 1, 68 },
13520+{ 0x30, 39, 1, 44 },
13521+{ 0x11, 40, 1, 67 },
13522+{ 0x10, 40, 0, 43 },
13523+{ 0x71, 39, 1, 66 },
13524+{ 0x70, 39, 1, 42 },
13525+{ 0x31, 40, 1, 65 },
13526+{ 0x30, 40, 0, 41 },
13527+{ 0x29, 39, 1, 60 },
13528+{ 0x28, 39, 0, 36 },
13529+{ 0x69, 39, 1, 59 },
13530+{ 0x68, 39, 0, 35 },
13531+{ 0x19, 39, 1, 72 },
13532+{ 0x18, 39, 1, 48 },
13533+{ 0x9, 40, 1, 71 },
13534+{ 0x8, 40, 0, 47 },
13535+{ 0x39, 39, 1, 70 },
13536+{ 0x38, 39, 1, 46 },
13537+{ 0x19, 40, 1, 69 },
13538+{ 0x18, 40, 0, 45 },
13539+{ 0x15, 39, 1, 62 },
13540+{ 0x14, 39, 0, 38 },
13541+{ 0x35, 39, 1, 61 },
13542+{ 0x34, 39, 0, 37 },
13543+{ 0xd, 39, 1, 76 },
13544+{ 0xc, 39, 1, 52 },
13545+{ 0x5, 40, 1, 75 },
13546+{ 0x4, 40, 0, 51 },
13547+{ 0x1d, 39, 1, 74 },
13548+{ 0x1c, 39, 1, 50 },
13549+{ 0xd, 40, 1, 73 },
13550+{ 0xc, 40, 0, 49 },
13551+{ 0xb, 39, 1, 64 },
13552+{ 0xa, 39, 0, 40 },
13553+{ 0x1b, 39, 1, 63 },
13554+{ 0x1a, 39, 0, 39 },
13555+{ 0x7, 39, 1, 80 },
13556+{ 0x6, 39, 1, 56 },
13557+{ 0x3, 40, 1, 79 },
13558+{ 0x2, 40, 0, 55 },
13559+{ 0xf, 39, 1, 78 },
13560+{ 0xe, 39, 1, 54 },
13561+{ 0x7, 40, 1, 77 },
13562+{ 0x6, 40, 0, 53 },
13563+{ 0x8, 38, 0, 82 },
13564+{ 0x18, 38, 0, 81 },
13565+{ 0x1, 38, 1, 86 },
13566+{ 0x2, 38, 0, 85 },
13567+{ 0x3, 38, 1, 84 },
13568+{ 0x4, 38, 0, 83 },
13569+{ 0x1, 336, 0, 87 },
13570+{ 0x20, 289, 0, 98 },
13571+{ 0x220, 289, 0, 94 },
13572+{ 0x1220, 289, 0, 91 },
13573+{ 0xa20, 289, 0, 92 },
13574+{ 0x620, 289, 0, 93 },
13575+{ 0x120, 289, 0, 95 },
13576+{ 0xa0, 289, 0, 96 },
13577+{ 0x60, 289, 0, 97 },
13578+{ 0x10, 289, 0, 102 },
13579+{ 0x90, 289, 0, 99 },
13580+{ 0x50, 289, 0, 100 },
13581+{ 0x30, 289, 0, 101 },
13582+{ 0x8, 289, 0, 103 },
13583+{ 0x4, 289, 0, 104 },
13584+{ 0x2, 289, 0, 105 },
13585+{ 0x1, 289, 0, 106 },
13586+{ 0x1, 411, 0, 108 },
13587+{ 0x3, 411, 0, 107 },
13588+{ 0x2, 417, 0, 109 },
13589+{ 0x1, 417, 0, 110 },
13590+{ 0x2, 413, 0, 111 },
13591+{ 0x1, 413, 0, 112 },
13592+{ 0x2, 415, 0, 113 },
13593+{ 0x1, 415, 0, 114 },
13594+{ 0x2, 419, 0, 115 },
13595+{ 0x1, 419, 0, 116 },
13596+{ 0x1, 268, 0, 143 },
13597+{ 0x5, 268, 0, 141 },
13598+{ 0x3, 268, 0, 142 },
13599+{ 0x140, 277, 0, 119 },
13600+{ 0x540, 277, 0, 117 },
13601+{ 0x340, 277, 0, 118 },
13602+{ 0xc0, 277, 0, 131 },
13603+{ 0x2c0, 277, 0, 129 },
13604+{ 0x1c0, 277, 0, 130 },
13605+{ 0x20, 277, 0, 146 },
13606+{ 0xa0, 277, 0, 144 },
13607+{ 0x60, 277, 0, 145 },
13608+{ 0x10, 277, 0, 158 },
13609+{ 0x50, 277, 0, 156 },
13610+{ 0x30, 277, 0, 157 },
13611+{ 0x8, 277, 0, 170 },
13612+{ 0x28, 277, 0, 168 },
13613+{ 0x18, 277, 0, 169 },
13614+{ 0x4, 277, 0, 180 },
13615+{ 0x2, 277, 0, 181 },
13616+{ 0x1, 277, 0, 182 },
13617+{ 0x140, 271, 0, 122 },
13618+{ 0x540, 271, 0, 120 },
13619+{ 0x340, 271, 0, 121 },
13620+{ 0xc0, 271, 0, 134 },
13621+{ 0x2c0, 271, 0, 132 },
13622+{ 0x1c0, 271, 0, 133 },
13623+{ 0x20, 271, 0, 149 },
13624+{ 0xa0, 271, 0, 147 },
13625+{ 0x60, 271, 0, 148 },
13626+{ 0x10, 271, 0, 161 },
13627+{ 0x50, 271, 0, 159 },
13628+{ 0x30, 271, 0, 160 },
13629+{ 0x8, 271, 0, 173 },
13630+{ 0x28, 271, 0, 171 },
13631+{ 0x18, 271, 0, 172 },
13632+{ 0x4, 271, 0, 183 },
13633+{ 0x2, 271, 0, 184 },
13634+{ 0x1, 271, 0, 185 },
13635+{ 0x140, 274, 0, 125 },
13636+{ 0x540, 274, 0, 123 },
13637+{ 0x340, 274, 0, 124 },
13638+{ 0xc0, 274, 0, 137 },
13639+{ 0x2c0, 274, 0, 135 },
13640+{ 0x1c0, 274, 0, 136 },
13641+{ 0x20, 274, 0, 152 },
13642+{ 0xa0, 274, 0, 150 },
13643+{ 0x60, 274, 0, 151 },
13644+{ 0x10, 274, 0, 164 },
13645+{ 0x50, 274, 0, 162 },
13646+{ 0x30, 274, 0, 163 },
13647+{ 0x8, 274, 0, 176 },
13648+{ 0x28, 274, 0, 174 },
13649+{ 0x18, 274, 0, 175 },
13650+{ 0x4, 274, 0, 186 },
13651+{ 0x2, 274, 0, 187 },
13652+{ 0x1, 274, 0, 188 },
13653+{ 0x140, 286, 0, 128 },
13654+{ 0x540, 286, 0, 126 },
13655+{ 0x340, 286, 0, 127 },
13656+{ 0xc0, 286, 0, 140 },
13657+{ 0x2c0, 286, 0, 138 },
13658+{ 0x1c0, 286, 0, 139 },
13659+{ 0x20, 286, 0, 155 },
13660+{ 0xa0, 286, 0, 153 },
13661+{ 0x60, 286, 0, 154 },
13662+{ 0x10, 286, 0, 167 },
13663+{ 0x50, 286, 0, 165 },
13664+{ 0x30, 286, 0, 166 },
13665+{ 0x8, 286, 0, 179 },
13666+{ 0x28, 286, 0, 177 },
13667+{ 0x18, 286, 0, 178 },
13668+{ 0x4, 286, 0, 189 },
13669+{ 0x2, 286, 0, 190 },
13670+{ 0x1, 286, 0, 191 },
13671+{ 0x8, 390, 0, 192 },
13672+{ 0x4, 390, 0, 193 },
13673+{ 0x2, 390, 0, 194 },
13674+{ 0x1, 390, 0, 195 },
13675+{ 0x20, 288, 0, 203 },
13676+{ 0x220, 288, 0, 199 },
13677+{ 0x1220, 288, 0, 196 },
13678+{ 0xa20, 288, 0, 197 },
13679+{ 0x620, 288, 0, 198 },
13680+{ 0x120, 288, 0, 200 },
13681+{ 0xa0, 288, 0, 201 },
13682+{ 0x60, 288, 0, 202 },
13683+{ 0x10, 288, 0, 207 },
13684+{ 0x90, 288, 0, 204 },
13685+{ 0x50, 288, 0, 205 },
13686+{ 0x30, 288, 0, 206 },
13687+{ 0x8, 288, 0, 208 },
13688+{ 0x4, 288, 0, 209 },
13689+{ 0x2, 288, 0, 210 },
13690+{ 0x1, 288, 0, 211 },
13691+{ 0x20, 287, 0, 219 },
13692+{ 0x220, 287, 0, 215 },
13693+{ 0x1220, 287, 0, 212 },
13694+{ 0xa20, 287, 0, 213 },
13695+{ 0x620, 287, 0, 214 },
13696+{ 0x120, 287, 0, 216 },
13697+{ 0xa0, 287, 0, 217 },
13698+{ 0x60, 287, 0, 218 },
13699+{ 0x10, 287, 0, 223 },
13700+{ 0x90, 287, 0, 220 },
13701+{ 0x50, 287, 0, 221 },
13702+{ 0x30, 287, 0, 222 },
13703+{ 0x8, 287, 0, 224 },
13704+{ 0x4, 287, 0, 225 },
13705+{ 0x2, 287, 0, 226 },
13706+{ 0x1, 287, 0, 227 },
13707+{ 0x140, 279, 0, 230 },
13708+{ 0x540, 279, 0, 228 },
13709+{ 0x340, 279, 0, 229 },
13710+{ 0xc0, 279, 0, 239 },
13711+{ 0x2c0, 279, 0, 237 },
13712+{ 0x1c0, 279, 0, 238 },
13713+{ 0x20, 279, 0, 248 },
13714+{ 0xa0, 279, 0, 246 },
13715+{ 0x60, 279, 0, 247 },
13716+{ 0x10, 279, 0, 257 },
13717+{ 0x50, 279, 0, 255 },
13718+{ 0x30, 279, 0, 256 },
13719+{ 0x8, 279, 0, 266 },
13720+{ 0x28, 279, 0, 264 },
13721+{ 0x18, 279, 0, 265 },
13722+{ 0x4, 279, 0, 273 },
13723+{ 0x2, 279, 0, 274 },
13724+{ 0x1, 279, 0, 275 },
13725+{ 0x140, 281, 0, 233 },
13726+{ 0x540, 281, 0, 231 },
13727+{ 0x340, 281, 0, 232 },
13728+{ 0xc0, 281, 0, 242 },
13729+{ 0x2c0, 281, 0, 240 },
13730+{ 0x1c0, 281, 0, 241 },
13731+{ 0x20, 281, 0, 251 },
13732+{ 0xa0, 281, 0, 249 },
13733+{ 0x60, 281, 0, 250 },
13734+{ 0x10, 281, 0, 260 },
13735+{ 0x50, 281, 0, 258 },
13736+{ 0x30, 281, 0, 259 },
13737+{ 0x8, 281, 0, 269 },
13738+{ 0x28, 281, 0, 267 },
13739+{ 0x18, 281, 0, 268 },
13740+{ 0x4, 281, 0, 276 },
13741+{ 0x2, 281, 0, 277 },
13742+{ 0x1, 281, 0, 278 },
13743+{ 0x140, 283, 0, 236 },
13744+{ 0x540, 283, 0, 234 },
13745+{ 0x340, 283, 0, 235 },
13746+{ 0xc0, 283, 0, 245 },
13747+{ 0x2c0, 283, 0, 243 },
13748+{ 0x1c0, 283, 0, 244 },
13749+{ 0x20, 283, 0, 254 },
13750+{ 0xa0, 283, 0, 252 },
13751+{ 0x60, 283, 0, 253 },
13752+{ 0x10, 283, 0, 263 },
13753+{ 0x50, 283, 0, 261 },
13754+{ 0x30, 283, 0, 262 },
13755+{ 0x8, 283, 0, 272 },
13756+{ 0x28, 283, 0, 270 },
13757+{ 0x18, 283, 0, 271 },
13758+{ 0x4, 283, 0, 279 },
13759+{ 0x2, 283, 0, 280 },
13760+{ 0x1, 283, 0, 281 },
13761+{ 0x140, 278, 0, 284 },
13762+{ 0x540, 278, 0, 282 },
13763+{ 0x340, 278, 0, 283 },
13764+{ 0xc0, 278, 0, 293 },
13765+{ 0x2c0, 278, 0, 291 },
13766+{ 0x1c0, 278, 0, 292 },
13767+{ 0x20, 278, 0, 302 },
13768+{ 0xa0, 278, 0, 300 },
13769+{ 0x60, 278, 0, 301 },
13770+{ 0x10, 278, 0, 311 },
13771+{ 0x50, 278, 0, 309 },
13772+{ 0x30, 278, 0, 310 },
13773+{ 0x8, 278, 0, 320 },
13774+{ 0x28, 278, 0, 318 },
13775+{ 0x18, 278, 0, 319 },
13776+{ 0x4, 278, 0, 327 },
13777+{ 0x2, 278, 0, 328 },
13778+{ 0x1, 278, 0, 329 },
13779+{ 0x140, 280, 0, 287 },
13780+{ 0x540, 280, 0, 285 },
13781+{ 0x340, 280, 0, 286 },
13782+{ 0xc0, 280, 0, 296 },
13783+{ 0x2c0, 280, 0, 294 },
13784+{ 0x1c0, 280, 0, 295 },
13785+{ 0x20, 280, 0, 305 },
13786+{ 0xa0, 280, 0, 303 },
13787+{ 0x60, 280, 0, 304 },
13788+{ 0x10, 280, 0, 314 },
13789+{ 0x50, 280, 0, 312 },
13790+{ 0x30, 280, 0, 313 },
13791+{ 0x8, 280, 0, 323 },
13792+{ 0x28, 280, 0, 321 },
13793+{ 0x18, 280, 0, 322 },
13794+{ 0x4, 280, 0, 330 },
13795+{ 0x2, 280, 0, 331 },
13796+{ 0x1, 280, 0, 332 },
13797+{ 0x140, 282, 0, 290 },
13798+{ 0x540, 282, 0, 288 },
13799+{ 0x340, 282, 0, 289 },
13800+{ 0xc0, 282, 0, 299 },
13801+{ 0x2c0, 282, 0, 297 },
13802+{ 0x1c0, 282, 0, 298 },
13803+{ 0x20, 282, 0, 308 },
13804+{ 0xa0, 282, 0, 306 },
13805+{ 0x60, 282, 0, 307 },
13806+{ 0x10, 282, 0, 317 },
13807+{ 0x50, 282, 0, 315 },
13808+{ 0x30, 282, 0, 316 },
13809+{ 0x8, 282, 0, 326 },
13810+{ 0x28, 282, 0, 324 },
13811+{ 0x18, 282, 0, 325 },
13812+{ 0x4, 282, 0, 333 },
13813+{ 0x2, 282, 0, 334 },
13814+{ 0x1, 282, 0, 335 },
13815+{ 0x1, 410, 0, 337 },
13816+{ 0x3, 410, 0, 336 },
13817+{ 0x2, 416, 0, 338 },
13818+{ 0x1, 416, 0, 339 },
13819+{ 0x2, 412, 0, 340 },
13820+{ 0x1, 412, 0, 341 },
13821+{ 0x2, 414, 0, 342 },
13822+{ 0x1, 414, 0, 343 },
13823+{ 0x2, 418, 0, 344 },
13824+{ 0x1, 418, 0, 345 },
13825+{ 0x1, 267, 0, 372 },
13826+{ 0x5, 267, 0, 370 },
13827+{ 0x3, 267, 0, 371 },
13828+{ 0x140, 276, 0, 348 },
13829+{ 0x540, 276, 0, 346 },
13830+{ 0x340, 276, 0, 347 },
13831+{ 0xc0, 276, 0, 360 },
13832+{ 0x2c0, 276, 0, 358 },
13833+{ 0x1c0, 276, 0, 359 },
13834+{ 0x20, 276, 0, 375 },
13835+{ 0xa0, 276, 0, 373 },
13836+{ 0x60, 276, 0, 374 },
13837+{ 0x10, 276, 0, 387 },
13838+{ 0x50, 276, 0, 385 },
13839+{ 0x30, 276, 0, 386 },
13840+{ 0x8, 276, 0, 399 },
13841+{ 0x28, 276, 0, 397 },
13842+{ 0x18, 276, 0, 398 },
13843+{ 0x4, 276, 0, 409 },
13844+{ 0x2, 276, 0, 410 },
13845+{ 0x1, 276, 0, 411 },
13846+{ 0x140, 270, 0, 351 },
13847+{ 0x540, 270, 0, 349 },
13848+{ 0x340, 270, 0, 350 },
13849+{ 0xc0, 270, 0, 363 },
13850+{ 0x2c0, 270, 0, 361 },
13851+{ 0x1c0, 270, 0, 362 },
13852+{ 0x20, 270, 0, 378 },
13853+{ 0xa0, 270, 0, 376 },
13854+{ 0x60, 270, 0, 377 },
13855+{ 0x10, 270, 0, 390 },
13856+{ 0x50, 270, 0, 388 },
13857+{ 0x30, 270, 0, 389 },
13858+{ 0x8, 270, 0, 402 },
13859+{ 0x28, 270, 0, 400 },
13860+{ 0x18, 270, 0, 401 },
13861+{ 0x4, 270, 0, 412 },
13862+{ 0x2, 270, 0, 413 },
13863+{ 0x1, 270, 0, 414 },
13864+{ 0x140, 273, 0, 354 },
13865+{ 0x540, 273, 0, 352 },
13866+{ 0x340, 273, 0, 353 },
13867+{ 0xc0, 273, 0, 366 },
13868+{ 0x2c0, 273, 0, 364 },
13869+{ 0x1c0, 273, 0, 365 },
13870+{ 0x20, 273, 0, 381 },
13871+{ 0xa0, 273, 0, 379 },
13872+{ 0x60, 273, 0, 380 },
13873+{ 0x10, 273, 0, 393 },
13874+{ 0x50, 273, 0, 391 },
13875+{ 0x30, 273, 0, 392 },
13876+{ 0x8, 273, 0, 405 },
13877+{ 0x28, 273, 0, 403 },
13878+{ 0x18, 273, 0, 404 },
13879+{ 0x4, 273, 0, 415 },
13880+{ 0x2, 273, 0, 416 },
13881+{ 0x1, 273, 0, 417 },
13882+{ 0x140, 285, 0, 357 },
13883+{ 0x540, 285, 0, 355 },
13884+{ 0x340, 285, 0, 356 },
13885+{ 0xc0, 285, 0, 369 },
13886+{ 0x2c0, 285, 0, 367 },
13887+{ 0x1c0, 285, 0, 368 },
13888+{ 0x20, 285, 0, 384 },
13889+{ 0xa0, 285, 0, 382 },
13890+{ 0x60, 285, 0, 383 },
13891+{ 0x10, 285, 0, 396 },
13892+{ 0x50, 285, 0, 394 },
13893+{ 0x30, 285, 0, 395 },
13894+{ 0x8, 285, 0, 408 },
13895+{ 0x28, 285, 0, 406 },
13896+{ 0x18, 285, 0, 407 },
13897+{ 0x4, 285, 0, 418 },
13898+{ 0x2, 285, 0, 419 },
13899+{ 0x1, 285, 0, 420 },
13900+{ 0x1, 266, 0, 447 },
13901+{ 0x5, 266, 0, 445 },
13902+{ 0x3, 266, 0, 446 },
13903+{ 0x140, 275, 0, 423 },
13904+{ 0x540, 275, 0, 421 },
13905+{ 0x340, 275, 0, 422 },
13906+{ 0xc0, 275, 0, 435 },
13907+{ 0x2c0, 275, 0, 433 },
13908+{ 0x1c0, 275, 0, 434 },
13909+{ 0x20, 275, 0, 450 },
13910+{ 0xa0, 275, 0, 448 },
13911+{ 0x60, 275, 0, 449 },
13912+{ 0x10, 275, 0, 462 },
13913+{ 0x50, 275, 0, 460 },
13914+{ 0x30, 275, 0, 461 },
13915+{ 0x8, 275, 0, 474 },
13916+{ 0x28, 275, 0, 472 },
13917+{ 0x18, 275, 0, 473 },
13918+{ 0x4, 275, 0, 484 },
13919+{ 0x2, 275, 0, 485 },
13920+{ 0x1, 275, 0, 486 },
13921+{ 0x140, 269, 0, 426 },
13922+{ 0x540, 269, 0, 424 },
13923+{ 0x340, 269, 0, 425 },
13924+{ 0xc0, 269, 0, 438 },
13925+{ 0x2c0, 269, 0, 436 },
13926+{ 0x1c0, 269, 0, 437 },
13927+{ 0x20, 269, 0, 453 },
13928+{ 0xa0, 269, 0, 451 },
13929+{ 0x60, 269, 0, 452 },
13930+{ 0x10, 269, 0, 465 },
13931+{ 0x50, 269, 0, 463 },
13932+{ 0x30, 269, 0, 464 },
13933+{ 0x8, 269, 0, 477 },
13934+{ 0x28, 269, 0, 475 },
13935+{ 0x18, 269, 0, 476 },
13936+{ 0x4, 269, 0, 487 },
13937+{ 0x2, 269, 0, 488 },
13938+{ 0x1, 269, 0, 489 },
13939+{ 0x140, 272, 0, 429 },
13940+{ 0x540, 272, 0, 427 },
13941+{ 0x340, 272, 0, 428 },
13942+{ 0xc0, 272, 0, 441 },
13943+{ 0x2c0, 272, 0, 439 },
13944+{ 0x1c0, 272, 0, 440 },
13945+{ 0x20, 272, 0, 456 },
13946+{ 0xa0, 272, 0, 454 },
13947+{ 0x60, 272, 0, 455 },
13948+{ 0x10, 272, 0, 468 },
13949+{ 0x50, 272, 0, 466 },
13950+{ 0x30, 272, 0, 467 },
13951+{ 0x8, 272, 0, 480 },
13952+{ 0x28, 272, 0, 478 },
13953+{ 0x18, 272, 0, 479 },
13954+{ 0x4, 272, 0, 490 },
13955+{ 0x2, 272, 0, 491 },
13956+{ 0x1, 272, 0, 492 },
13957+{ 0x140, 284, 0, 432 },
13958+{ 0x540, 284, 0, 430 },
13959+{ 0x340, 284, 0, 431 },
13960+{ 0xc0, 284, 0, 444 },
13961+{ 0x2c0, 284, 0, 442 },
13962+{ 0x1c0, 284, 0, 443 },
13963+{ 0x20, 284, 0, 459 },
13964+{ 0xa0, 284, 0, 457 },
13965+{ 0x60, 284, 0, 458 },
13966+{ 0x10, 284, 0, 471 },
13967+{ 0x50, 284, 0, 469 },
13968+{ 0x30, 284, 0, 470 },
13969+{ 0x8, 284, 0, 483 },
13970+{ 0x28, 284, 0, 481 },
13971+{ 0x18, 284, 0, 482 },
13972+{ 0x4, 284, 0, 493 },
13973+{ 0x2, 284, 0, 494 },
13974+{ 0x1, 284, 0, 495 },
13975+{ 0x8, 409, 0, 497 },
13976+{ 0x18, 409, 0, 496 },
13977+{ 0x4, 409, 0, 499 },
13978+{ 0xc, 409, 0, 498 },
13979+{ 0x2, 409, 0, 506 },
13980+{ 0x1, 409, 0, 507 },
13981+{ 0x4, 407, 0, 501 },
13982+{ 0xc, 407, 0, 500 },
13983+{ 0x2, 407, 0, 508 },
13984+{ 0x1, 407, 0, 509 },
13985+{ 0x4, 405, 0, 503 },
13986+{ 0xc, 405, 0, 502 },
13987+{ 0x2, 405, 0, 510 },
13988+{ 0x1, 405, 0, 511 },
13989+{ 0x4, 401, 0, 505 },
13990+{ 0xc, 401, 0, 504 },
13991+{ 0x2, 401, 0, 512 },
13992+{ 0x1, 401, 0, 513 },
13993+{ 0xa00, 265, 0, 528 },
13994+{ 0x2a00, 265, 0, 526 },
13995+{ 0x1a00, 265, 0, 527 },
13996+{ 0x600, 265, 0, 540 },
13997+{ 0x2600, 265, 0, 516 },
13998+{ 0xa600, 265, 0, 514 },
13999+{ 0x6600, 265, 0, 515 },
14000+{ 0x1600, 265, 0, 538 },
14001+{ 0xe00, 265, 0, 539 },
14002+{ 0x100, 265, 0, 552 },
14003+{ 0x500, 265, 0, 550 },
14004+{ 0x300, 265, 0, 551 },
14005+{ 0x80, 265, 0, 555 },
14006+{ 0x280, 265, 0, 553 },
14007+{ 0x180, 265, 0, 554 },
14008+{ 0x40, 265, 0, 567 },
14009+{ 0x140, 265, 0, 565 },
14010+{ 0xc0, 265, 0, 566 },
14011+{ 0x20, 265, 0, 579 },
14012+{ 0xa0, 265, 0, 577 },
14013+{ 0x60, 265, 0, 578 },
14014+{ 0x10, 265, 0, 591 },
14015+{ 0x50, 265, 0, 589 },
14016+{ 0x30, 265, 0, 590 },
14017+{ 0x8, 265, 0, 603 },
14018+{ 0x28, 265, 0, 601 },
14019+{ 0x18, 265, 0, 602 },
14020+{ 0x4, 265, 0, 613 },
14021+{ 0x2, 265, 0, 614 },
14022+{ 0x1, 265, 0, 615 },
14023+{ 0x500, 261, 0, 531 },
14024+{ 0x1500, 261, 0, 529 },
14025+{ 0xd00, 261, 0, 530 },
14026+{ 0x300, 261, 0, 543 },
14027+{ 0x1300, 261, 0, 519 },
14028+{ 0x5300, 261, 0, 517 },
14029+{ 0x3300, 261, 0, 518 },
14030+{ 0xb00, 261, 0, 541 },
14031+{ 0x700, 261, 0, 542 },
14032+{ 0x80, 261, 0, 558 },
14033+{ 0x280, 261, 0, 556 },
14034+{ 0x180, 261, 0, 557 },
14035+{ 0x40, 261, 0, 570 },
14036+{ 0x140, 261, 0, 568 },
14037+{ 0xc0, 261, 0, 569 },
14038+{ 0x20, 261, 0, 582 },
14039+{ 0xa0, 261, 0, 580 },
14040+{ 0x60, 261, 0, 581 },
14041+{ 0x10, 261, 0, 594 },
14042+{ 0x50, 261, 0, 592 },
14043+{ 0x30, 261, 0, 593 },
14044+{ 0x8, 261, 0, 606 },
14045+{ 0x28, 261, 0, 604 },
14046+{ 0x18, 261, 0, 605 },
14047+{ 0x4, 261, 0, 616 },
14048+{ 0x2, 261, 0, 617 },
14049+{ 0x1, 261, 0, 618 },
14050+{ 0x500, 258, 0, 534 },
14051+{ 0x1500, 258, 0, 532 },
14052+{ 0xd00, 258, 0, 533 },
14053+{ 0x300, 258, 0, 546 },
14054+{ 0x1300, 258, 0, 522 },
14055+{ 0x5300, 258, 0, 520 },
14056+{ 0x3300, 258, 0, 521 },
14057+{ 0xb00, 258, 0, 544 },
14058+{ 0x700, 258, 0, 545 },
14059+{ 0x80, 258, 0, 561 },
14060+{ 0x280, 258, 0, 559 },
14061+{ 0x180, 258, 0, 560 },
14062+{ 0x40, 258, 0, 573 },
14063+{ 0x140, 258, 0, 571 },
14064+{ 0xc0, 258, 0, 572 },
14065+{ 0x20, 258, 0, 585 },
14066+{ 0xa0, 258, 0, 583 },
14067+{ 0x60, 258, 0, 584 },
14068+{ 0x10, 258, 0, 597 },
14069+{ 0x50, 258, 0, 595 },
14070+{ 0x30, 258, 0, 596 },
14071+{ 0x8, 258, 0, 609 },
14072+{ 0x28, 258, 0, 607 },
14073+{ 0x18, 258, 0, 608 },
14074+{ 0x4, 258, 0, 619 },
14075+{ 0x2, 258, 0, 620 },
14076+{ 0x1, 258, 0, 621 },
14077+{ 0x500, 253, 0, 537 },
14078+{ 0x1500, 253, 0, 535 },
14079+{ 0xd00, 253, 0, 536 },
14080+{ 0x300, 253, 0, 549 },
14081+{ 0x1300, 253, 0, 525 },
14082+{ 0x5300, 253, 0, 523 },
14083+{ 0x3300, 253, 0, 524 },
14084+{ 0xb00, 253, 0, 547 },
14085+{ 0x700, 253, 0, 548 },
14086+{ 0x80, 253, 0, 564 },
14087+{ 0x280, 253, 0, 562 },
14088+{ 0x180, 253, 0, 563 },
14089+{ 0x40, 253, 0, 576 },
14090+{ 0x140, 253, 0, 574 },
14091+{ 0xc0, 253, 0, 575 },
14092+{ 0x20, 253, 0, 588 },
14093+{ 0xa0, 253, 0, 586 },
14094+{ 0x60, 253, 0, 587 },
14095+{ 0x10, 253, 0, 600 },
14096+{ 0x50, 253, 0, 598 },
14097+{ 0x30, 253, 0, 599 },
14098+{ 0x8, 253, 0, 612 },
14099+{ 0x28, 253, 0, 610 },
14100+{ 0x18, 253, 0, 611 },
14101+{ 0x4, 253, 0, 622 },
14102+{ 0x2, 253, 0, 623 },
14103+{ 0x1, 253, 0, 624 },
14104+{ 0x8, 238, 0, 625 },
14105+{ 0x4, 238, 0, 626 },
14106+{ 0x2, 238, 0, 627 },
14107+{ 0x1, 238, 0, 628 },
14108+{ 0x2, 176, 0, 631 },
14109+{ 0xa, 176, 0, 629 },
14110+{ 0x6, 176, 0, 630 },
14111+{ 0x1, 176, 0, 637 },
14112+{ 0x5, 176, 0, 635 },
14113+{ 0x3, 176, 0, 636 },
14114+{ 0x2, 175, 0, 634 },
14115+{ 0xa, 175, 0, 632 },
14116+{ 0x6, 175, 0, 633 },
14117+{ 0x1, 175, 0, 640 },
14118+{ 0x5, 175, 0, 638 },
14119+{ 0x3, 175, 0, 639 },
14120+{ 0x4, 446, 0, 641 },
14121+{ 0x2, 446, 0, 642 },
14122+{ 0x1, 446, 0, 643 },
14123+{ 0x4, 445, 0, 644 },
14124+{ 0x2, 445, 0, 645 },
14125+{ 0x1, 445, 0, 646 },
14126+{ 0x4, 444, 0, 647 },
14127+{ 0x2, 444, 0, 648 },
14128+{ 0x1, 444, 0, 649 },
14129+{ 0x4, 443, 0, 650 },
14130+{ 0x2, 443, 0, 651 },
14131+{ 0x1, 443, 0, 652 },
14132+{ 0x2, 123, 1, 658 },
14133+{ 0x2, 124, 0, 657 },
14134+{ 0xa, 123, 1, 654 },
14135+{ 0xa, 124, 0, 653 },
14136+{ 0x6, 123, 1, 656 },
14137+{ 0x6, 124, 0, 655 },
14138+{ 0x1, 123, 1, 688 },
14139+{ 0x1, 124, 0, 687 },
14140+{ 0x5, 123, 1, 684 },
14141+{ 0x5, 124, 0, 683 },
14142+{ 0x3, 123, 1, 686 },
14143+{ 0x3, 124, 0, 685 },
14144+{ 0x2, 131, 1, 664 },
14145+{ 0x2, 132, 0, 663 },
14146+{ 0xa, 131, 1, 660 },
14147+{ 0xa, 132, 0, 659 },
14148+{ 0x6, 131, 1, 662 },
14149+{ 0x6, 132, 0, 661 },
14150+{ 0x1, 131, 1, 694 },
14151+{ 0x1, 132, 0, 693 },
14152+{ 0x5, 131, 1, 690 },
14153+{ 0x5, 132, 0, 689 },
14154+{ 0x3, 131, 1, 692 },
14155+{ 0x3, 132, 0, 691 },
14156+{ 0x2, 129, 1, 670 },
14157+{ 0x2, 130, 0, 669 },
14158+{ 0xa, 129, 1, 666 },
14159+{ 0xa, 130, 0, 665 },
14160+{ 0x6, 129, 1, 668 },
14161+{ 0x6, 130, 0, 667 },
14162+{ 0x1, 129, 1, 700 },
14163+{ 0x1, 130, 0, 699 },
14164+{ 0x5, 129, 1, 696 },
14165+{ 0x5, 130, 0, 695 },
14166+{ 0x3, 129, 1, 698 },
14167+{ 0x3, 130, 0, 697 },
14168+{ 0x2, 127, 1, 676 },
14169+{ 0x2, 128, 0, 675 },
14170+{ 0xa, 127, 1, 672 },
14171+{ 0xa, 128, 0, 671 },
14172+{ 0x6, 127, 1, 674 },
14173+{ 0x6, 128, 0, 673 },
14174+{ 0x1, 127, 1, 706 },
14175+{ 0x1, 128, 0, 705 },
14176+{ 0x5, 127, 1, 702 },
14177+{ 0x5, 128, 0, 701 },
14178+{ 0x3, 127, 1, 704 },
14179+{ 0x3, 128, 0, 703 },
14180+{ 0x2, 125, 1, 682 },
14181+{ 0x2, 126, 0, 681 },
14182+{ 0xa, 125, 1, 678 },
14183+{ 0xa, 126, 0, 677 },
14184+{ 0x6, 125, 1, 680 },
14185+{ 0x6, 126, 0, 679 },
14186+{ 0x1, 125, 1, 712 },
14187+{ 0x1, 126, 0, 711 },
14188+{ 0x5, 125, 1, 708 },
14189+{ 0x5, 126, 0, 707 },
14190+{ 0x3, 125, 1, 710 },
14191+{ 0x3, 126, 0, 709 },
14192+{ 0x4, 402, 1, 718 },
14193+{ 0x4, 403, 0, 717 },
14194+{ 0xc, 402, 1, 716 },
14195+{ 0xc, 403, 0, 715 },
14196+{ 0x2, 402, 1, 728 },
14197+{ 0x2, 403, 0, 727 },
14198+{ 0x1, 402, 1, 730 },
14199+{ 0x1, 403, 0, 729 },
14200+{ 0x8, 408, 0, 714 },
14201+{ 0x18, 408, 0, 713 },
14202+{ 0x4, 408, 0, 720 },
14203+{ 0xc, 408, 0, 719 },
14204+{ 0x2, 408, 0, 731 },
14205+{ 0x1, 408, 0, 732 },
14206+{ 0x4, 406, 0, 722 },
14207+{ 0xc, 406, 0, 721 },
14208+{ 0x2, 406, 0, 733 },
14209+{ 0x1, 406, 0, 734 },
14210+{ 0x4, 404, 0, 724 },
14211+{ 0xc, 404, 0, 723 },
14212+{ 0x2, 404, 0, 735 },
14213+{ 0x1, 404, 0, 736 },
14214+{ 0x4, 400, 0, 726 },
14215+{ 0xc, 400, 0, 725 },
14216+{ 0x2, 400, 0, 737 },
14217+{ 0x1, 400, 0, 738 },
14218+{ 0xa00, 264, 0, 753 },
14219+{ 0x2a00, 264, 0, 751 },
14220+{ 0x1a00, 264, 0, 752 },
14221+{ 0x600, 264, 0, 765 },
14222+{ 0x2600, 264, 0, 741 },
14223+{ 0xa600, 264, 0, 739 },
14224+{ 0x6600, 264, 0, 740 },
14225+{ 0x1600, 264, 0, 763 },
14226+{ 0xe00, 264, 0, 764 },
14227+{ 0x100, 264, 0, 777 },
14228+{ 0x500, 264, 0, 775 },
14229+{ 0x300, 264, 0, 776 },
14230+{ 0x80, 264, 0, 780 },
14231+{ 0x280, 264, 0, 778 },
14232+{ 0x180, 264, 0, 779 },
14233+{ 0x40, 264, 0, 792 },
14234+{ 0x140, 264, 0, 790 },
14235+{ 0xc0, 264, 0, 791 },
14236+{ 0x20, 264, 0, 804 },
14237+{ 0xa0, 264, 0, 802 },
14238+{ 0x60, 264, 0, 803 },
14239+{ 0x10, 264, 0, 816 },
14240+{ 0x50, 264, 0, 814 },
14241+{ 0x30, 264, 0, 815 },
14242+{ 0x8, 264, 0, 828 },
14243+{ 0x28, 264, 0, 826 },
14244+{ 0x18, 264, 0, 827 },
14245+{ 0x4, 264, 0, 838 },
14246+{ 0x2, 264, 0, 839 },
14247+{ 0x1, 264, 0, 840 },
14248+{ 0x500, 260, 0, 756 },
14249+{ 0x1500, 260, 0, 754 },
14250+{ 0xd00, 260, 0, 755 },
14251+{ 0x300, 260, 0, 768 },
14252+{ 0x1300, 260, 0, 744 },
14253+{ 0x5300, 260, 0, 742 },
14254+{ 0x3300, 260, 0, 743 },
14255+{ 0xb00, 260, 0, 766 },
14256+{ 0x700, 260, 0, 767 },
14257+{ 0x80, 260, 0, 783 },
14258+{ 0x280, 260, 0, 781 },
14259+{ 0x180, 260, 0, 782 },
14260+{ 0x40, 260, 0, 795 },
14261+{ 0x140, 260, 0, 793 },
14262+{ 0xc0, 260, 0, 794 },
14263+{ 0x20, 260, 0, 807 },
14264+{ 0xa0, 260, 0, 805 },
14265+{ 0x60, 260, 0, 806 },
14266+{ 0x10, 260, 0, 819 },
14267+{ 0x50, 260, 0, 817 },
14268+{ 0x30, 260, 0, 818 },
14269+{ 0x8, 260, 0, 831 },
14270+{ 0x28, 260, 0, 829 },
14271+{ 0x18, 260, 0, 830 },
14272+{ 0x4, 260, 0, 841 },
14273+{ 0x2, 260, 0, 842 },
14274+{ 0x1, 260, 0, 843 },
14275+{ 0x500, 257, 0, 759 },
14276+{ 0x1500, 257, 0, 757 },
14277+{ 0xd00, 257, 0, 758 },
14278+{ 0x300, 257, 0, 771 },
14279+{ 0x1300, 257, 0, 747 },
14280+{ 0x5300, 257, 0, 745 },
14281+{ 0x3300, 257, 0, 746 },
14282+{ 0xb00, 257, 0, 769 },
14283+{ 0x700, 257, 0, 770 },
14284+{ 0x80, 257, 0, 786 },
14285+{ 0x280, 257, 0, 784 },
14286+{ 0x180, 257, 0, 785 },
14287+{ 0x40, 257, 0, 798 },
14288+{ 0x140, 257, 0, 796 },
14289+{ 0xc0, 257, 0, 797 },
14290+{ 0x20, 257, 0, 810 },
14291+{ 0xa0, 257, 0, 808 },
14292+{ 0x60, 257, 0, 809 },
14293+{ 0x10, 257, 0, 822 },
14294+{ 0x50, 257, 0, 820 },
14295+{ 0x30, 257, 0, 821 },
14296+{ 0x8, 257, 0, 834 },
14297+{ 0x28, 257, 0, 832 },
14298+{ 0x18, 257, 0, 833 },
14299+{ 0x4, 257, 0, 844 },
14300+{ 0x2, 257, 0, 845 },
14301+{ 0x1, 257, 0, 846 },
14302+{ 0x500, 252, 0, 762 },
14303+{ 0x1500, 252, 0, 760 },
14304+{ 0xd00, 252, 0, 761 },
14305+{ 0x300, 252, 0, 774 },
14306+{ 0x1300, 252, 0, 750 },
14307+{ 0x5300, 252, 0, 748 },
14308+{ 0x3300, 252, 0, 749 },
14309+{ 0xb00, 252, 0, 772 },
14310+{ 0x700, 252, 0, 773 },
14311+{ 0x80, 252, 0, 789 },
14312+{ 0x280, 252, 0, 787 },
14313+{ 0x180, 252, 0, 788 },
14314+{ 0x40, 252, 0, 801 },
14315+{ 0x140, 252, 0, 799 },
14316+{ 0xc0, 252, 0, 800 },
14317+{ 0x20, 252, 0, 813 },
14318+{ 0xa0, 252, 0, 811 },
14319+{ 0x60, 252, 0, 812 },
14320+{ 0x10, 252, 0, 825 },
14321+{ 0x50, 252, 0, 823 },
14322+{ 0x30, 252, 0, 824 },
14323+{ 0x8, 252, 0, 837 },
14324+{ 0x28, 252, 0, 835 },
14325+{ 0x18, 252, 0, 836 },
14326+{ 0x4, 252, 0, 847 },
14327+{ 0x2, 252, 0, 848 },
14328+{ 0x1, 252, 0, 849 },
14329+{ 0x8, 254, 1, 895 },
14330+{ 0x8, 255, 0, 894 },
14331+{ 0x28, 254, 1, 891 },
14332+{ 0x28, 255, 0, 890 },
14333+{ 0x18, 254, 1, 893 },
14334+{ 0x18, 255, 0, 892 },
14335+{ 0x4, 254, 1, 957 },
14336+{ 0x4, 255, 0, 956 },
14337+{ 0x2, 254, 1, 959 },
14338+{ 0x2, 255, 0, 958 },
14339+{ 0x1, 254, 1, 961 },
14340+{ 0x1, 255, 0, 960 },
14341+{ 0xa00, 262, 0, 865 },
14342+{ 0x2a00, 262, 0, 863 },
14343+{ 0x1a00, 262, 0, 864 },
14344+{ 0x600, 262, 0, 877 },
14345+{ 0x2600, 262, 0, 853 },
14346+{ 0xa600, 262, 0, 851 },
14347+{ 0x6600, 262, 0, 852 },
14348+{ 0x1600, 262, 0, 875 },
14349+{ 0xe00, 262, 0, 876 },
14350+{ 0x100, 262, 0, 889 },
14351+{ 0x500, 262, 0, 887 },
14352+{ 0x300, 262, 0, 888 },
14353+{ 0x80, 262, 0, 898 },
14354+{ 0x280, 262, 0, 896 },
14355+{ 0x180, 262, 0, 897 },
14356+{ 0x40, 262, 0, 910 },
14357+{ 0x140, 262, 0, 908 },
14358+{ 0xc0, 262, 0, 909 },
14359+{ 0x20, 262, 0, 922 },
14360+{ 0xa0, 262, 0, 920 },
14361+{ 0x60, 262, 0, 921 },
14362+{ 0x10, 262, 0, 934 },
14363+{ 0x50, 262, 0, 932 },
14364+{ 0x30, 262, 0, 933 },
14365+{ 0x8, 262, 0, 946 },
14366+{ 0x28, 262, 0, 944 },
14367+{ 0x18, 262, 0, 945 },
14368+{ 0x4, 262, 0, 962 },
14369+{ 0x2, 262, 0, 963 },
14370+{ 0x1, 262, 1, 964 },
14371+{ 0x1, 263, 0, 850 },
14372+{ 0x500, 259, 0, 868 },
14373+{ 0x1500, 259, 0, 866 },
14374+{ 0xd00, 259, 0, 867 },
14375+{ 0x300, 259, 0, 880 },
14376+{ 0x1300, 259, 0, 856 },
14377+{ 0x5300, 259, 0, 854 },
14378+{ 0x3300, 259, 0, 855 },
14379+{ 0xb00, 259, 0, 878 },
14380+{ 0x700, 259, 0, 879 },
14381+{ 0x80, 259, 0, 901 },
14382+{ 0x280, 259, 0, 899 },
14383+{ 0x180, 259, 0, 900 },
14384+{ 0x40, 259, 0, 913 },
14385+{ 0x140, 259, 0, 911 },
14386+{ 0xc0, 259, 0, 912 },
14387+{ 0x20, 259, 0, 925 },
14388+{ 0xa0, 259, 0, 923 },
14389+{ 0x60, 259, 0, 924 },
14390+{ 0x10, 259, 0, 937 },
14391+{ 0x50, 259, 0, 935 },
14392+{ 0x30, 259, 0, 936 },
14393+{ 0x8, 259, 0, 949 },
14394+{ 0x28, 259, 0, 947 },
14395+{ 0x18, 259, 0, 948 },
14396+{ 0x4, 259, 0, 965 },
14397+{ 0x2, 259, 0, 966 },
14398+{ 0x1, 259, 0, 967 },
14399+{ 0x500, 256, 0, 871 },
14400+{ 0x1500, 256, 0, 869 },
14401+{ 0xd00, 256, 0, 870 },
14402+{ 0x300, 256, 0, 883 },
14403+{ 0x1300, 256, 0, 859 },
14404+{ 0x5300, 256, 0, 857 },
14405+{ 0x3300, 256, 0, 858 },
14406+{ 0xb00, 256, 0, 881 },
14407+{ 0x700, 256, 0, 882 },
14408+{ 0x80, 256, 0, 904 },
14409+{ 0x280, 256, 0, 902 },
14410+{ 0x180, 256, 0, 903 },
14411+{ 0x40, 256, 0, 916 },
14412+{ 0x140, 256, 0, 914 },
14413+{ 0xc0, 256, 0, 915 },
14414+{ 0x20, 256, 0, 928 },
14415+{ 0xa0, 256, 0, 926 },
14416+{ 0x60, 256, 0, 927 },
14417+{ 0x10, 256, 0, 940 },
14418+{ 0x50, 256, 0, 938 },
14419+{ 0x30, 256, 0, 939 },
14420+{ 0x8, 256, 0, 952 },
14421+{ 0x28, 256, 0, 950 },
14422+{ 0x18, 256, 0, 951 },
14423+{ 0x4, 256, 0, 968 },
14424+{ 0x2, 256, 0, 969 },
14425+{ 0x1, 256, 0, 970 },
14426+{ 0x500, 251, 0, 874 },
14427+{ 0x1500, 251, 0, 872 },
14428+{ 0xd00, 251, 0, 873 },
14429+{ 0x300, 251, 0, 886 },
14430+{ 0x1300, 251, 0, 862 },
14431+{ 0x5300, 251, 0, 860 },
14432+{ 0x3300, 251, 0, 861 },
14433+{ 0xb00, 251, 0, 884 },
14434+{ 0x700, 251, 0, 885 },
14435+{ 0x80, 251, 0, 907 },
14436+{ 0x280, 251, 0, 905 },
14437+{ 0x180, 251, 0, 906 },
14438+{ 0x40, 251, 0, 919 },
14439+{ 0x140, 251, 0, 917 },
14440+{ 0xc0, 251, 0, 918 },
14441+{ 0x20, 251, 0, 931 },
14442+{ 0xa0, 251, 0, 929 },
14443+{ 0x60, 251, 0, 930 },
14444+{ 0x10, 251, 0, 943 },
14445+{ 0x50, 251, 0, 941 },
14446+{ 0x30, 251, 0, 942 },
14447+{ 0x8, 251, 0, 955 },
14448+{ 0x28, 251, 0, 953 },
14449+{ 0x18, 251, 0, 954 },
14450+{ 0x4, 251, 0, 971 },
14451+{ 0x2, 251, 0, 972 },
14452+{ 0x1, 251, 0, 973 },
14453+{ 0x2, 150, 0, 975 },
14454+{ 0x1, 150, 0, 976 },
14455+{ 0x1, 50, 0, 977 },
14456+{ 0x3, 49, 0, 978 },
14457+{ 0x1, 428, 0, 979 },
14458+{ 0x1, 438, 0, 980 },
14459+{ 0x2, 386, 0, 983 },
14460+{ 0x1, 386, 0, 984 },
14461+{ 0x2, 384, 0, 985 },
14462+{ 0x1, 384, 0, 986 },
14463+{ 0x1, 383, 0, 987 },
14464+{ 0x1, 328, 0, 992 },
14465+{ 0x1, 327, 0, 993 },
14466+{ 0x1, 326, 0, 994 },
14467+{ 0x1, 325, 0, 995 },
14468+{ 0x1, 250, 0, 996 },
14469+{ 0x1, 249, 0, 997 },
14470+{ 0x1, 324, 0, 998 },
14471+{ 0x1, 323, 0, 999 },
14472+{ 0x1, 322, 0, 1000 },
14473+{ 0x1, 321, 0, 1001 },
14474+{ 0x1, 320, 0, 1002 },
14475+{ 0x1, 319, 0, 1003 },
14476+{ 0x1, 318, 0, 1004 },
14477+{ 0x2, 248, 0, 1005 },
14478+{ 0x1, 248, 0, 1006 },
14479+{ 0x2, 366, 0, 1012 },
14480+{ 0x1, 366, 0, 1013 },
14481+{ 0x1, 317, 0, 1014 },
14482+{ 0x1, 316, 0, 1015 },
14483+{ 0x1, 315, 0, 1016 },
14484+{ 0x1, 314, 0, 1017 },
14485+{ 0x1, 8, 1, 1019 },
14486+{ 0x1, 9, 0, 1018 },
14487+{ 0x1, 313, 0, 1020 },
14488+{ 0x1, 312, 0, 1021 },
14489+{ 0x1, 311, 0, 1022 },
14490+{ 0x1, 310, 0, 1023 },
14491+{ 0x1, 388, 0, 1024 },
14492+{ 0x1, 399, 0, 1025 },
14493+{ 0x1, 389, 0, 1026 },
14494+{ 0x1, 423, 0, 1027 },
14495+{ 0x1, 309, 0, 1031 },
14496+{ 0x1, 247, 0, 1032 },
14497+{ 0x1, 177, 0, 1035 },
14498+{ 0x2, 291, 0, 1039 },
14499+{ 0x1, 291, 0, 1040 },
14500+{ 0x1, 236, 0, 1041 },
14501+{ 0x5, 48, 0, 1043 },
14502+{ 0x3, 48, 0, 1044 },
14503+{ 0x5, 47, 0, 1045 },
14504+{ 0x3, 47, 0, 1046 },
14505+{ 0x1, 365, 0, 1047 },
14506+{ 0x1, 373, 0, 1048 },
14507+{ 0x1, 371, 0, 1049 },
14508+{ 0x1, 392, 0, 1050 },
14509+{ 0x1, 372, 0, 1051 },
14510+{ 0x1, 370, 0, 1052 },
14511+{ 0x2, 378, 0, 1053 },
14512+{ 0x1, 378, 0, 1055 },
14513+{ 0x2, 376, 0, 1054 },
14514+{ 0x1, 376, 0, 1056 },
14515+{ 0x2, 396, 0, 1057 },
14516+{ 0x1, 396, 0, 1060 },
14517+{ 0x2, 377, 0, 1058 },
14518+{ 0x1, 377, 0, 1061 },
14519+{ 0x2, 375, 0, 1059 },
14520+{ 0x1, 375, 0, 1062 },
14521+{ 0x1, 338, 0, 1063 },
14522+{ 0x1, 337, 0, 1064 },
14523+{ 0x1, 369, 0, 1065 },
14524+{ 0x1, 360, 0, 1066 },
14525+{ 0x1, 362, 0, 1067 },
14526+{ 0x1, 359, 0, 1068 },
14527+{ 0x1, 361, 0, 1069 },
14528+{ 0x2, 442, 0, 1070 },
14529+{ 0x1, 442, 0, 1073 },
14530+{ 0x2, 441, 0, 1071 },
14531+{ 0x1, 441, 0, 1074 },
14532+{ 0x2, 440, 0, 1072 },
14533+{ 0x1, 440, 0, 1075 },
14534+{ 0x1, 348, 0, 1076 },
14535+{ 0x2, 347, 0, 1077 },
14536+{ 0x1, 347, 0, 1078 },
14537+{ 0x2, 294, 0, 1079 },
14538+{ 0x1, 294, 0, 1082 },
14539+{ 0x2, 293, 0, 1080 },
14540+{ 0x1, 293, 0, 1083 },
14541+{ 0x2, 292, 0, 1081 },
14542+{ 0x1, 292, 0, 1084 },
14543+{ 0x2, 363, 0, 1085 },
14544+{ 0x1, 363, 0, 1086 },
14545+{ 0x2, 364, 0, 1087 },
14546+{ 0x1, 364, 0, 1088 },
14547+{ 0xa, 434, 1, 1100 },
14548+{ 0xa, 435, 1, 1099 },
14549+{ 0xa, 436, 1, 1098 },
14550+{ 0xa, 437, 0, 1097 },
14551+{ 0x1a, 434, 1, 1092 },
14552+{ 0x1a, 435, 1, 1091 },
14553+{ 0x32, 436, 1, 1090 },
14554+{ 0x32, 437, 0, 1089 },
14555+{ 0x6, 434, 1, 1108 },
14556+{ 0x6, 435, 1, 1107 },
14557+{ 0x6, 436, 1, 1106 },
14558+{ 0x6, 437, 0, 1105 },
14559+{ 0x1, 434, 1, 1120 },
14560+{ 0x1, 435, 1, 1119 },
14561+{ 0x1, 436, 1, 1118 },
14562+{ 0x1, 437, 0, 1117 },
14563+{ 0x9, 434, 1, 1104 },
14564+{ 0x9, 435, 1, 1103 },
14565+{ 0x9, 436, 1, 1102 },
14566+{ 0x9, 437, 0, 1101 },
14567+{ 0x19, 434, 1, 1096 },
14568+{ 0x19, 435, 1, 1095 },
14569+{ 0x31, 436, 1, 1094 },
14570+{ 0x31, 437, 0, 1093 },
14571+{ 0x5, 434, 1, 1112 },
14572+{ 0x5, 435, 1, 1111 },
14573+{ 0x5, 436, 1, 1110 },
14574+{ 0x5, 437, 0, 1109 },
14575+{ 0x3, 434, 1, 1116 },
14576+{ 0x3, 435, 1, 1115 },
14577+{ 0x3, 436, 1, 1114 },
14578+{ 0x3, 437, 0, 1113 },
14579+{ 0xa, 429, 1, 1132 },
14580+{ 0xa, 430, 1, 1131 },
14581+{ 0xa, 431, 1, 1130 },
14582+{ 0xa, 432, 0, 1129 },
14583+{ 0x1a, 429, 1, 1124 },
14584+{ 0x1a, 430, 1, 1123 },
14585+{ 0x32, 431, 1, 1122 },
14586+{ 0x32, 432, 0, 1121 },
14587+{ 0x6, 429, 1, 1140 },
14588+{ 0x6, 430, 1, 1139 },
14589+{ 0x6, 431, 1, 1138 },
14590+{ 0x6, 432, 0, 1137 },
14591+{ 0x1, 429, 1, 1152 },
14592+{ 0x1, 430, 1, 1151 },
14593+{ 0x1, 431, 1, 1150 },
14594+{ 0x1, 432, 0, 1149 },
14595+{ 0x9, 429, 1, 1136 },
14596+{ 0x9, 430, 1, 1135 },
14597+{ 0x9, 431, 1, 1134 },
14598+{ 0x9, 432, 0, 1133 },
14599+{ 0x19, 429, 1, 1128 },
14600+{ 0x19, 430, 1, 1127 },
14601+{ 0x31, 431, 1, 1126 },
14602+{ 0x31, 432, 0, 1125 },
14603+{ 0x5, 429, 1, 1144 },
14604+{ 0x5, 430, 1, 1143 },
14605+{ 0x5, 431, 1, 1142 },
14606+{ 0x5, 432, 0, 1141 },
14607+{ 0x3, 429, 1, 1148 },
14608+{ 0x3, 430, 1, 1147 },
14609+{ 0x3, 431, 1, 1146 },
14610+{ 0x3, 432, 0, 1145 },
14611+{ 0x1, 139, 0, 1153 },
14612+{ 0x1, 138, 0, 1154 },
14613+{ 0x1, 391, 1, 1156 },
14614+{ 0x1, 137, 0, 1155 },
14615+{ 0x2, 395, 1, 1158 },
14616+{ 0x2, 141, 0, 1157 },
14617+{ 0x1, 395, 1, 1160 },
14618+{ 0x1, 141, 0, 1159 },
14619+{ 0x1, 397, 0, 1161 },
14620+{ 0x1, 136, 0, 1162 },
14621+{ 0x2, 135, 0, 1163 },
14622+{ 0x2, 134, 0, 1164 },
14623+{ 0x1, 454, 1, 1170 },
14624+{ 0x1, 246, 0, 1033 },
14625+{ 0x1, 453, 0, 1171 },
14626+{ 0x1, 452, 1, 1172 },
14627+{ 0x1, 245, 0, 1042 },
14628+{ 0x1, 308, 0, 1173 },
14629+{ 0x1, 307, 1, 1174 },
14630+{ 0x1, 290, 0, 1034 },
14631+{ 0x1, 306, 0, 1175 },
14632+{ 0x1, 305, 1, 1176 },
14633+{ 0x1, 427, 0, 1036 },
14634+{ 0x1, 304, 1, 1177 },
14635+{ 0x1, 398, 0, 1038 },
14636+{ 0x1, 303, 0, 1178 },
14637+{ 0x1, 302, 0, 1179 },
14638+{ 0x1, 301, 0, 1180 },
14639+{ 0x1, 300, 1, 1181 },
14640+{ 0x2, 398, 0, 1037 },
14641+{ 0x10, 299, 0, 1185 },
14642+{ 0x90, 299, 0, 1183 },
14643+{ 0x190, 299, 0, 1182 },
14644+{ 0x50, 299, 0, 1184 },
14645+{ 0x30, 299, 0, 1187 },
14646+{ 0x70, 299, 0, 1186 },
14647+{ 0x8, 299, 0, 1189 },
14648+{ 0x18, 299, 0, 1188 },
14649+{ 0x4, 299, 0, 1190 },
14650+{ 0x1, 299, 0, 1193 },
14651+{ 0x3, 299, 0, 1192 },
14652+{ 0x1, 298, 1, 1194 },
14653+{ 0x2, 299, 0, 1191 },
14654+{ 0x3, 46, 0, 1195 },
14655+{ 0x1, 241, 1, 1196 },
14656+{ 0x1, 242, 1, 1028 },
14657+{ 0x1, 243, 0, 88 },
14658+{ 0x1, 341, 1, 1197 },
14659+{ 0x1, 342, 1, 1029 },
14660+{ 0x1, 343, 0, 89 },
14661+{ 0x1, 34, 1, 1198 },
14662+{ 0x1, 35, 1, 1030 },
14663+{ 0x1, 36, 0, 90 },
14664+{ 0x1, 230, 0, 1199 },
14665+{ 0x4, 447, 0, 1200 },
14666+{ 0x2, 447, 0, 1201 },
14667+{ 0x1, 447, 1, 1203 },
14668+{ 0x1, 448, 0, 1202 },
14669+{ 0x8, 449, 0, 1204 },
14670+{ 0x4, 449, 0, 1205 },
14671+{ 0x1, 449, 1, 1207 },
14672+{ 0x2, 449, 0, 1206 },
14673+{ 0x8, 219, 0, 1208 },
14674+{ 0x4, 219, 0, 1209 },
14675+{ 0x2, 219, 0, 1210 },
14676+{ 0x1, 219, 1, 1212 },
14677+{ 0x1, 220, 0, 1211 },
14678+{ 0x10, 221, 0, 1213 },
14679+{ 0x8, 221, 0, 1214 },
14680+{ 0x4, 221, 0, 1215 },
14681+{ 0x1, 221, 1, 1217 },
14682+{ 0x2, 221, 0, 1216 },
14683+{ 0x220, 191, 0, 1218 },
14684+{ 0x120, 191, 0, 1219 },
14685+{ 0xa0, 191, 0, 1220 },
14686+{ 0x60, 191, 1, 1222 },
14687+{ 0x4, 192, 0, 1221 },
14688+{ 0x110, 191, 0, 1228 },
14689+{ 0x90, 191, 0, 1229 },
14690+{ 0x50, 191, 0, 1230 },
14691+{ 0x30, 191, 1, 1232 },
14692+{ 0x2, 192, 0, 1231 },
14693+{ 0x8, 191, 0, 1233 },
14694+{ 0x4, 191, 0, 1234 },
14695+{ 0x2, 191, 0, 1235 },
14696+{ 0x1, 191, 1, 1237 },
14697+{ 0x1, 192, 0, 1236 },
14698+{ 0x440, 193, 0, 1223 },
14699+{ 0x240, 193, 0, 1224 },
14700+{ 0x140, 193, 0, 1225 },
14701+{ 0xc0, 193, 1, 1227 },
14702+{ 0x40, 193, 0, 1226 },
14703+{ 0x220, 193, 0, 1238 },
14704+{ 0x120, 193, 0, 1239 },
14705+{ 0xa0, 193, 0, 1240 },
14706+{ 0x60, 193, 1, 1242 },
14707+{ 0x20, 193, 0, 1241 },
14708+{ 0x10, 193, 0, 1243 },
14709+{ 0x8, 193, 0, 1244 },
14710+{ 0x4, 193, 0, 1245 },
14711+{ 0x1, 193, 1, 1247 },
14712+{ 0x2, 193, 0, 1246 },
14713+{ 0x8, 215, 0, 1248 },
14714+{ 0x4, 215, 0, 1249 },
14715+{ 0x2, 215, 0, 1250 },
14716+{ 0x1, 215, 1, 1252 },
14717+{ 0x1, 216, 0, 1251 },
14718+{ 0x220, 187, 0, 1253 },
14719+{ 0x120, 187, 0, 1254 },
14720+{ 0xa0, 187, 0, 1255 },
14721+{ 0x60, 187, 1, 1257 },
14722+{ 0x4, 188, 0, 1256 },
14723+{ 0x110, 187, 0, 1263 },
14724+{ 0x90, 187, 0, 1264 },
14725+{ 0x50, 187, 0, 1265 },
14726+{ 0x30, 187, 1, 1267 },
14727+{ 0x2, 188, 0, 1266 },
14728+{ 0x8, 187, 0, 1268 },
14729+{ 0x4, 187, 0, 1269 },
14730+{ 0x2, 187, 0, 1270 },
14731+{ 0x1, 187, 1, 1272 },
14732+{ 0x1, 188, 0, 1271 },
14733+{ 0x440, 233, 0, 1258 },
14734+{ 0x240, 233, 0, 1259 },
14735+{ 0x140, 233, 0, 1260 },
14736+{ 0xc0, 233, 1, 1262 },
14737+{ 0x40, 233, 0, 1261 },
14738+{ 0x220, 233, 0, 1273 },
14739+{ 0x120, 233, 0, 1274 },
14740+{ 0xa0, 233, 0, 1275 },
14741+{ 0x60, 233, 1, 1277 },
14742+{ 0x20, 233, 0, 1276 },
14743+{ 0x10, 233, 0, 1278 },
14744+{ 0x8, 233, 0, 1279 },
14745+{ 0x4, 233, 0, 1280 },
14746+{ 0x1, 233, 1, 1282 },
14747+{ 0x2, 233, 0, 1281 },
14748+{ 0x8, 207, 0, 1283 },
14749+{ 0x4, 207, 0, 1284 },
14750+{ 0x2, 207, 0, 1285 },
14751+{ 0x1, 207, 1, 1287 },
14752+{ 0x1, 208, 0, 1286 },
14753+{ 0x10, 214, 0, 1288 },
14754+{ 0x8, 214, 0, 1289 },
14755+{ 0x4, 214, 0, 1290 },
14756+{ 0x1, 214, 1, 1292 },
14757+{ 0x2, 214, 0, 1291 },
14758+{ 0x220, 178, 0, 1293 },
14759+{ 0x120, 178, 0, 1294 },
14760+{ 0xa0, 178, 0, 1295 },
14761+{ 0x60, 178, 1, 1297 },
14762+{ 0x4, 179, 0, 1296 },
14763+{ 0x110, 178, 0, 1318 },
14764+{ 0x90, 178, 0, 1319 },
14765+{ 0x50, 178, 0, 1320 },
14766+{ 0x30, 178, 1, 1322 },
14767+{ 0x2, 179, 0, 1321 },
14768+{ 0x8, 178, 0, 1323 },
14769+{ 0x4, 178, 0, 1324 },
14770+{ 0x2, 178, 0, 1325 },
14771+{ 0x1, 178, 1, 1327 },
14772+{ 0x1, 179, 0, 1326 },
14773+{ 0x440, 186, 0, 1298 },
14774+{ 0x240, 186, 0, 1299 },
14775+{ 0x140, 186, 0, 1300 },
14776+{ 0xc0, 186, 1, 1302 },
14777+{ 0x40, 186, 0, 1301 },
14778+{ 0x220, 186, 0, 1328 },
14779+{ 0x120, 186, 0, 1329 },
14780+{ 0xa0, 186, 0, 1330 },
14781+{ 0x60, 186, 1, 1332 },
14782+{ 0x20, 186, 0, 1331 },
14783+{ 0x10, 186, 0, 1333 },
14784+{ 0x8, 186, 0, 1334 },
14785+{ 0x4, 186, 0, 1335 },
14786+{ 0x1, 186, 1, 1337 },
14787+{ 0x2, 186, 0, 1336 },
14788+{ 0x440, 143, 0, 1303 },
14789+{ 0x240, 143, 0, 1304 },
14790+{ 0x140, 143, 0, 1305 },
14791+{ 0xc0, 143, 1, 1307 },
14792+{ 0x40, 143, 0, 1306 },
14793+{ 0x220, 143, 0, 1338 },
14794+{ 0x120, 143, 0, 1339 },
14795+{ 0xa0, 143, 0, 1340 },
14796+{ 0x60, 143, 1, 1342 },
14797+{ 0x20, 143, 0, 1341 },
14798+{ 0x10, 143, 0, 1343 },
14799+{ 0x8, 143, 0, 1344 },
14800+{ 0x1, 143, 1, 1347 },
14801+{ 0x2, 143, 0, 1346 },
14802+{ 0x440, 194, 1, 1313 },
14803+{ 0x441, 174, 0, 1308 },
14804+{ 0x240, 194, 1, 1314 },
14805+{ 0x241, 174, 0, 1309 },
14806+{ 0x140, 194, 1, 1315 },
14807+{ 0x141, 174, 0, 1310 },
14808+{ 0xc0, 194, 1, 1317 },
14809+{ 0x40, 194, 1, 1316 },
14810+{ 0xc1, 174, 1, 1312 },
14811+{ 0x41, 174, 0, 1311 },
14812+{ 0x220, 194, 1, 1358 },
14813+{ 0x221, 174, 0, 1348 },
14814+{ 0x120, 194, 1, 1359 },
14815+{ 0x121, 174, 0, 1349 },
14816+{ 0xa0, 194, 1, 1360 },
14817+{ 0xa1, 174, 0, 1350 },
14818+{ 0x60, 194, 1, 1362 },
14819+{ 0x20, 194, 1, 1361 },
14820+{ 0x61, 174, 1, 1352 },
14821+{ 0x21, 174, 0, 1351 },
14822+{ 0x10, 194, 1, 1363 },
14823+{ 0x11, 174, 0, 1353 },
14824+{ 0x8, 194, 1, 1364 },
14825+{ 0x9, 174, 0, 1354 },
14826+{ 0x4, 194, 1, 1365 },
14827+{ 0x5, 174, 0, 1355 },
14828+{ 0x1, 194, 1, 1367 },
14829+{ 0x2, 194, 1, 1366 },
14830+{ 0x3, 174, 1, 1357 },
14831+{ 0x1, 174, 0, 1356 },
14832+{ 0x1, 153, 1, 1375 },
14833+{ 0x1, 154, 1, 1374 },
14834+{ 0x1, 155, 1, 1373 },
14835+{ 0x1, 156, 0, 1372 },
14836+{ 0x3, 153, 1, 1371 },
14837+{ 0x3, 154, 1, 1370 },
14838+{ 0x3, 155, 1, 1369 },
14839+{ 0x3, 156, 0, 1368 },
14840+{ 0x1108, 159, 1, 1537 },
14841+{ 0x1108, 160, 1, 1536 },
14842+{ 0x1108, 165, 1, 1377 },
14843+{ 0x1108, 166, 0, 1376 },
14844+{ 0x908, 159, 1, 1539 },
14845+{ 0x908, 160, 1, 1538 },
14846+{ 0x908, 165, 1, 1379 },
14847+{ 0x908, 166, 0, 1378 },
14848+{ 0x508, 159, 1, 1541 },
14849+{ 0x508, 160, 1, 1540 },
14850+{ 0x508, 165, 1, 1381 },
14851+{ 0x508, 166, 0, 1380 },
14852+{ 0x308, 159, 1, 1545 },
14853+{ 0x308, 160, 1, 1544 },
14854+{ 0x108, 160, 1, 1542 },
14855+{ 0x18, 161, 1, 1543 },
14856+{ 0x308, 165, 1, 1385 },
14857+{ 0x308, 166, 1, 1384 },
14858+{ 0x108, 166, 1, 1382 },
14859+{ 0x18, 167, 0, 1383 },
14860+{ 0x88, 159, 1, 1577 },
14861+{ 0x88, 160, 1, 1576 },
14862+{ 0x88, 165, 1, 1457 },
14863+{ 0x88, 166, 0, 1456 },
14864+{ 0x48, 159, 1, 1579 },
14865+{ 0x48, 160, 1, 1578 },
14866+{ 0x48, 165, 1, 1459 },
14867+{ 0x48, 166, 0, 1458 },
14868+{ 0x28, 159, 1, 1581 },
14869+{ 0x28, 160, 1, 1580 },
14870+{ 0x28, 165, 1, 1461 },
14871+{ 0x28, 166, 0, 1460 },
14872+{ 0x18, 159, 1, 1585 },
14873+{ 0x18, 160, 1, 1584 },
14874+{ 0x8, 160, 1, 1582 },
14875+{ 0x8, 161, 1, 1583 },
14876+{ 0x18, 165, 1, 1465 },
14877+{ 0x18, 166, 1, 1464 },
14878+{ 0x8, 166, 1, 1462 },
14879+{ 0x8, 167, 0, 1463 },
14880+{ 0x884, 159, 1, 1547 },
14881+{ 0x884, 160, 1, 1546 },
14882+{ 0x442, 162, 1, 1437 },
14883+{ 0x442, 163, 1, 1436 },
14884+{ 0x884, 165, 1, 1407 },
14885+{ 0x884, 166, 1, 1406 },
14886+{ 0x442, 168, 1, 1387 },
14887+{ 0x442, 169, 0, 1386 },
14888+{ 0x484, 159, 1, 1549 },
14889+{ 0x484, 160, 1, 1548 },
14890+{ 0x242, 162, 1, 1439 },
14891+{ 0x242, 163, 1, 1438 },
14892+{ 0x484, 165, 1, 1409 },
14893+{ 0x484, 166, 1, 1408 },
14894+{ 0x242, 168, 1, 1389 },
14895+{ 0x242, 169, 0, 1388 },
14896+{ 0x284, 159, 1, 1551 },
14897+{ 0x284, 160, 1, 1550 },
14898+{ 0x142, 162, 1, 1441 },
14899+{ 0x142, 163, 1, 1440 },
14900+{ 0x284, 165, 1, 1411 },
14901+{ 0x284, 166, 1, 1410 },
14902+{ 0x142, 168, 1, 1391 },
14903+{ 0x142, 169, 0, 1390 },
14904+{ 0x184, 159, 1, 1555 },
14905+{ 0x184, 160, 1, 1554 },
14906+{ 0x84, 160, 1, 1552 },
14907+{ 0xc, 161, 1, 1553 },
14908+{ 0xc2, 162, 1, 1445 },
14909+{ 0xc2, 163, 1, 1444 },
14910+{ 0x42, 163, 1, 1442 },
14911+{ 0x6, 164, 1, 1443 },
14912+{ 0x184, 165, 1, 1415 },
14913+{ 0x184, 166, 1, 1414 },
14914+{ 0x84, 166, 1, 1412 },
14915+{ 0xc, 167, 1, 1413 },
14916+{ 0xc2, 168, 1, 1395 },
14917+{ 0xc2, 169, 1, 1394 },
14918+{ 0x42, 169, 1, 1392 },
14919+{ 0x6, 170, 0, 1393 },
14920+{ 0x44, 159, 1, 1587 },
14921+{ 0x44, 160, 1, 1586 },
14922+{ 0x22, 162, 1, 1517 },
14923+{ 0x22, 163, 1, 1516 },
14924+{ 0x44, 165, 1, 1487 },
14925+{ 0x44, 166, 1, 1486 },
14926+{ 0x22, 168, 1, 1467 },
14927+{ 0x22, 169, 0, 1466 },
14928+{ 0x24, 159, 1, 1589 },
14929+{ 0x24, 160, 1, 1588 },
14930+{ 0x12, 162, 1, 1519 },
14931+{ 0x12, 163, 1, 1518 },
14932+{ 0x24, 165, 1, 1489 },
14933+{ 0x24, 166, 1, 1488 },
14934+{ 0x12, 168, 1, 1469 },
14935+{ 0x12, 169, 0, 1468 },
14936+{ 0x14, 159, 1, 1591 },
14937+{ 0x14, 160, 1, 1590 },
14938+{ 0xa, 162, 1, 1521 },
14939+{ 0xa, 163, 1, 1520 },
14940+{ 0x14, 165, 1, 1491 },
14941+{ 0x14, 166, 1, 1490 },
14942+{ 0xa, 168, 1, 1471 },
14943+{ 0xa, 169, 0, 1470 },
14944+{ 0xc, 159, 1, 1595 },
14945+{ 0xc, 160, 1, 1594 },
14946+{ 0x4, 160, 1, 1592 },
14947+{ 0x4, 161, 1, 1593 },
14948+{ 0x6, 162, 1, 1525 },
14949+{ 0x6, 163, 1, 1524 },
14950+{ 0x2, 163, 1, 1522 },
14951+{ 0x2, 164, 1, 1523 },
14952+{ 0xc, 165, 1, 1495 },
14953+{ 0xc, 166, 1, 1494 },
14954+{ 0x4, 166, 1, 1492 },
14955+{ 0x4, 167, 1, 1493 },
14956+{ 0x6, 168, 1, 1475 },
14957+{ 0x6, 169, 1, 1474 },
14958+{ 0x2, 169, 1, 1472 },
14959+{ 0x2, 170, 0, 1473 },
14960+{ 0x442, 159, 1, 1557 },
14961+{ 0x442, 160, 1, 1556 },
14962+{ 0x221, 162, 1, 1447 },
14963+{ 0x221, 163, 1, 1446 },
14964+{ 0x442, 165, 1, 1417 },
14965+{ 0x442, 166, 1, 1416 },
14966+{ 0x221, 168, 1, 1397 },
14967+{ 0x221, 169, 0, 1396 },
14968+{ 0x242, 159, 1, 1559 },
14969+{ 0x242, 160, 1, 1558 },
14970+{ 0x121, 162, 1, 1449 },
14971+{ 0x121, 163, 1, 1448 },
14972+{ 0x242, 165, 1, 1419 },
14973+{ 0x242, 166, 1, 1418 },
14974+{ 0x121, 168, 1, 1399 },
14975+{ 0x121, 169, 0, 1398 },
14976+{ 0x142, 159, 1, 1561 },
14977+{ 0x142, 160, 1, 1560 },
14978+{ 0xa1, 162, 1, 1451 },
14979+{ 0xa1, 163, 1, 1450 },
14980+{ 0x142, 165, 1, 1421 },
14981+{ 0x142, 166, 1, 1420 },
14982+{ 0xa1, 168, 1, 1401 },
14983+{ 0xa1, 169, 0, 1400 },
14984+{ 0xc2, 159, 1, 1565 },
14985+{ 0xc2, 160, 1, 1564 },
14986+{ 0x42, 160, 1, 1562 },
14987+{ 0x6, 161, 1, 1563 },
14988+{ 0x61, 162, 1, 1455 },
14989+{ 0x61, 163, 1, 1454 },
14990+{ 0x21, 163, 1, 1452 },
14991+{ 0x3, 164, 1, 1453 },
14992+{ 0xc2, 165, 1, 1425 },
14993+{ 0xc2, 166, 1, 1424 },
14994+{ 0x42, 166, 1, 1422 },
14995+{ 0x6, 167, 1, 1423 },
14996+{ 0x61, 168, 1, 1405 },
14997+{ 0x61, 169, 1, 1404 },
14998+{ 0x21, 169, 1, 1402 },
14999+{ 0x3, 170, 0, 1403 },
15000+{ 0x22, 159, 1, 1597 },
15001+{ 0x22, 160, 1, 1596 },
15002+{ 0x11, 162, 1, 1527 },
15003+{ 0x11, 163, 1, 1526 },
15004+{ 0x22, 165, 1, 1497 },
15005+{ 0x22, 166, 1, 1496 },
15006+{ 0x11, 168, 1, 1477 },
15007+{ 0x11, 169, 0, 1476 },
15008+{ 0x12, 159, 1, 1599 },
15009+{ 0x12, 160, 1, 1598 },
15010+{ 0x9, 162, 1, 1529 },
15011+{ 0x9, 163, 1, 1528 },
15012+{ 0x12, 165, 1, 1499 },
15013+{ 0x12, 166, 1, 1498 },
15014+{ 0x9, 168, 1, 1479 },
15015+{ 0x9, 169, 0, 1478 },
15016+{ 0xa, 159, 1, 1601 },
15017+{ 0xa, 160, 1, 1600 },
15018+{ 0x5, 162, 1, 1531 },
15019+{ 0x5, 163, 1, 1530 },
15020+{ 0xa, 165, 1, 1501 },
15021+{ 0xa, 166, 1, 1500 },
15022+{ 0x5, 168, 1, 1481 },
15023+{ 0x5, 169, 0, 1480 },
15024+{ 0x6, 159, 1, 1605 },
15025+{ 0x6, 160, 1, 1604 },
15026+{ 0x2, 160, 1, 1602 },
15027+{ 0x2, 161, 1, 1603 },
15028+{ 0x3, 162, 1, 1535 },
15029+{ 0x3, 163, 1, 1534 },
15030+{ 0x1, 163, 1, 1532 },
15031+{ 0x1, 164, 1, 1533 },
15032+{ 0x6, 165, 1, 1505 },
15033+{ 0x6, 166, 1, 1504 },
15034+{ 0x2, 166, 1, 1502 },
15035+{ 0x2, 167, 1, 1503 },
15036+{ 0x3, 168, 1, 1485 },
15037+{ 0x3, 169, 1, 1484 },
15038+{ 0x1, 169, 1, 1482 },
15039+{ 0x1, 170, 0, 1483 },
15040+{ 0x221, 159, 1, 1567 },
15041+{ 0x221, 160, 1, 1566 },
15042+{ 0x221, 165, 1, 1427 },
15043+{ 0x221, 166, 0, 1426 },
15044+{ 0x121, 159, 1, 1569 },
15045+{ 0x121, 160, 1, 1568 },
15046+{ 0x121, 165, 1, 1429 },
15047+{ 0x121, 166, 0, 1428 },
15048+{ 0xa1, 159, 1, 1571 },
15049+{ 0xa1, 160, 1, 1570 },
15050+{ 0xa1, 165, 1, 1431 },
15051+{ 0xa1, 166, 0, 1430 },
15052+{ 0x61, 159, 1, 1575 },
15053+{ 0x61, 160, 1, 1574 },
15054+{ 0x21, 160, 1, 1572 },
15055+{ 0x3, 161, 1, 1573 },
15056+{ 0x61, 165, 1, 1435 },
15057+{ 0x61, 166, 1, 1434 },
15058+{ 0x21, 166, 1, 1432 },
15059+{ 0x3, 167, 0, 1433 },
15060+{ 0x11, 159, 1, 1607 },
15061+{ 0x11, 160, 1, 1606 },
15062+{ 0x11, 165, 1, 1507 },
15063+{ 0x11, 166, 0, 1506 },
15064+{ 0x9, 159, 1, 1609 },
15065+{ 0x9, 160, 1, 1608 },
15066+{ 0x9, 165, 1, 1509 },
15067+{ 0x9, 166, 0, 1508 },
15068+{ 0x5, 159, 1, 1611 },
15069+{ 0x5, 160, 1, 1610 },
15070+{ 0x5, 165, 1, 1511 },
15071+{ 0x5, 166, 0, 1510 },
15072+{ 0x3, 159, 1, 1615 },
15073+{ 0x3, 160, 1, 1614 },
15074+{ 0x1, 160, 1, 1612 },
15075+{ 0x1, 161, 1, 1613 },
15076+{ 0x3, 165, 1, 1515 },
15077+{ 0x3, 166, 1, 1514 },
15078+{ 0x1, 166, 1, 1512 },
15079+{ 0x1, 167, 0, 1513 },
15080+{ 0x442, 205, 0, 1616 },
15081+{ 0x242, 205, 0, 1617 },
15082+{ 0x142, 205, 0, 1618 },
15083+{ 0xc2, 205, 1, 1620 },
15084+{ 0x6, 206, 1, 1619 },
15085+{ 0x1, 439, 0, 981 },
15086+{ 0x22, 205, 0, 1626 },
15087+{ 0x12, 205, 0, 1627 },
15088+{ 0xa, 205, 0, 1628 },
15089+{ 0x6, 205, 1, 1630 },
15090+{ 0x2, 206, 1, 1629 },
15091+{ 0x2, 367, 0, 1010 },
15092+{ 0x221, 205, 0, 1621 },
15093+{ 0x121, 205, 0, 1622 },
15094+{ 0xa1, 205, 0, 1623 },
15095+{ 0x61, 205, 1, 1625 },
15096+{ 0x3, 206, 1, 1624 },
15097+{ 0x1, 433, 0, 982 },
15098+{ 0x11, 205, 0, 1631 },
15099+{ 0x9, 205, 0, 1632 },
15100+{ 0x5, 205, 0, 1633 },
15101+{ 0x3, 205, 1, 1635 },
15102+{ 0x1, 206, 1, 1634 },
15103+{ 0x1, 367, 0, 1011 },
15104+{ 0x4, 211, 0, 1636 },
15105+{ 0x1, 211, 0, 1638 },
15106+{ 0x1, 218, 0, 1639 },
15107+{ 0x1, 217, 1, 1640 },
15108+{ 0x2, 211, 0, 1637 },
15109+{ 0x1, 196, 0, 1641 },
15110+{ 0x880, 202, 0, 1642 },
15111+{ 0x480, 202, 0, 1643 },
15112+{ 0x280, 202, 0, 1644 },
15113+{ 0x180, 202, 1, 1646 },
15114+{ 0x80, 203, 0, 1645 },
15115+{ 0x440, 202, 1, 1657 },
15116+{ 0x88, 204, 0, 1647 },
15117+{ 0x240, 202, 1, 1658 },
15118+{ 0x48, 204, 0, 1648 },
15119+{ 0x140, 202, 1, 1659 },
15120+{ 0x28, 204, 0, 1649 },
15121+{ 0xc0, 202, 1, 1661 },
15122+{ 0x40, 203, 1, 1660 },
15123+{ 0x18, 204, 1, 1651 },
15124+{ 0x8, 204, 0, 1650 },
15125+{ 0x220, 202, 1, 1662 },
15126+{ 0x44, 204, 0, 1652 },
15127+{ 0x120, 202, 1, 1663 },
15128+{ 0x24, 204, 0, 1653 },
15129+{ 0xa0, 202, 1, 1664 },
15130+{ 0x14, 204, 0, 1654 },
15131+{ 0x60, 202, 1, 1666 },
15132+{ 0x20, 203, 1, 1665 },
15133+{ 0xc, 204, 1, 1656 },
15134+{ 0x4, 204, 0, 1655 },
15135+{ 0x110, 202, 0, 1667 },
15136+{ 0x90, 202, 0, 1668 },
15137+{ 0x50, 202, 0, 1669 },
15138+{ 0x30, 202, 1, 1671 },
15139+{ 0x10, 203, 1, 1670 },
15140+{ 0x1, 385, 0, 974 },
15141+{ 0x88, 202, 0, 1672 },
15142+{ 0x48, 202, 0, 1673 },
15143+{ 0x28, 202, 0, 1674 },
15144+{ 0x18, 202, 1, 1676 },
15145+{ 0x8, 203, 1, 1675 },
15146+{ 0xc, 368, 0, 1007 },
15147+{ 0x44, 202, 1, 1687 },
15148+{ 0x22, 204, 0, 1677 },
15149+{ 0x24, 202, 1, 1688 },
15150+{ 0x12, 204, 0, 1678 },
15151+{ 0x14, 202, 1, 1689 },
15152+{ 0xa, 204, 0, 1679 },
15153+{ 0xc, 202, 1, 1691 },
15154+{ 0x4, 203, 1, 1690 },
15155+{ 0x6, 204, 1, 1681 },
15156+{ 0x2, 204, 1, 1680 },
15157+{ 0x6, 368, 0, 1008 },
15158+{ 0x22, 202, 1, 1692 },
15159+{ 0x11, 204, 0, 1682 },
15160+{ 0x12, 202, 1, 1693 },
15161+{ 0x9, 204, 0, 1683 },
15162+{ 0xa, 202, 1, 1694 },
15163+{ 0x5, 204, 0, 1684 },
15164+{ 0x6, 202, 1, 1696 },
15165+{ 0x2, 203, 1, 1695 },
15166+{ 0x3, 204, 1, 1686 },
15167+{ 0x1, 204, 1, 1685 },
15168+{ 0x3, 368, 0, 1009 },
15169+{ 0x11, 202, 0, 1697 },
15170+{ 0x9, 202, 0, 1698 },
15171+{ 0x5, 202, 0, 1699 },
15172+{ 0x3, 202, 1, 1701 },
15173+{ 0x1, 203, 0, 1700 },
15174+{ 0x8, 198, 0, 1702 },
15175+{ 0x4, 198, 0, 1703 },
15176+{ 0x2, 198, 0, 1704 },
15177+{ 0x1, 198, 1, 1706 },
15178+{ 0x1, 199, 1, 1705 },
15179+{ 0x1, 332, 0, 988 },
15180+{ 0x8, 200, 0, 1707 },
15181+{ 0x4, 200, 0, 1708 },
15182+{ 0x2, 200, 0, 1709 },
15183+{ 0x1, 200, 1, 1711 },
15184+{ 0x1, 201, 1, 1710 },
15185+{ 0x1, 331, 0, 989 },
15186+{ 0x8, 209, 0, 1712 },
15187+{ 0x4, 209, 0, 1713 },
15188+{ 0x2, 209, 0, 1714 },
15189+{ 0x1, 209, 1, 1716 },
15190+{ 0x1, 210, 1, 1715 },
15191+{ 0x1, 330, 0, 990 },
15192+{ 0x8, 212, 0, 1717 },
15193+{ 0x4, 212, 0, 1718 },
15194+{ 0x2, 212, 0, 1719 },
15195+{ 0x1, 212, 1, 1721 },
15196+{ 0x1, 213, 1, 1720 },
15197+{ 0x1, 329, 0, 991 },
15198+{ 0x8, 224, 0, 1722 },
15199+{ 0x4, 224, 0, 1723 },
15200+{ 0x2, 224, 0, 1724 },
15201+{ 0x1, 224, 1, 1726 },
15202+{ 0x1, 225, 0, 1725 },
15203+{ 0x8, 222, 0, 1727 },
15204+{ 0x4, 222, 0, 1728 },
15205+{ 0x2, 222, 0, 1729 },
15206+{ 0x1, 222, 1, 1731 },
15207+{ 0x1, 223, 0, 1730 },
15208+{ 0x1, 240, 0, 1732 },
15209+{ 0x1, 340, 0, 1733 },
15210+{ 0x1, 33, 0, 1734 },
15211+{ 0x8, 151, 0, 1735 },
15212+{ 0x4, 151, 0, 1736 },
15213+{ 0x2, 151, 0, 1737 },
15214+{ 0x1, 151, 1, 1739 },
15215+{ 0x1, 152, 0, 1738 },
15216+{ 0x8, 157, 0, 1740 },
15217+{ 0x4, 157, 0, 1741 },
15218+{ 0x2, 157, 0, 1742 },
15219+{ 0x1, 157, 1, 1744 },
15220+{ 0x1, 158, 0, 1743 },
15221+{ 0x8, 231, 0, 1745 },
15222+{ 0x4, 231, 0, 1746 },
15223+{ 0x2, 231, 0, 1747 },
15224+{ 0x1, 231, 1, 1749 },
15225+{ 0x1, 232, 0, 1748 },
15226+{ 0x1, 173, 0, 1750 },
15227+{ 0x442, 171, 0, 1751 },
15228+{ 0x242, 171, 0, 1752 },
15229+{ 0x142, 171, 0, 1753 },
15230+{ 0xc2, 171, 1, 1755 },
15231+{ 0x6, 172, 0, 1754 },
15232+{ 0x22, 171, 0, 1761 },
15233+{ 0x12, 171, 0, 1762 },
15234+{ 0xa, 171, 0, 1763 },
15235+{ 0x6, 171, 1, 1765 },
15236+{ 0x2, 172, 1, 1764 },
15237+{ 0x1, 135, 0, 1165 },
15238+{ 0x221, 171, 0, 1756 },
15239+{ 0x121, 171, 0, 1757 },
15240+{ 0xa1, 171, 0, 1758 },
15241+{ 0x61, 171, 1, 1760 },
15242+{ 0x3, 172, 0, 1759 },
15243+{ 0x11, 171, 0, 1766 },
15244+{ 0x9, 171, 0, 1767 },
15245+{ 0x5, 171, 0, 1768 },
15246+{ 0x3, 171, 1, 1770 },
15247+{ 0x1, 172, 1, 1769 },
15248+{ 0x1, 134, 0, 1166 },
15249+{ 0x1, 237, 0, 1771 },
15250+{ 0x1, 195, 0, 1772 },
15251+{ 0x1, 149, 0, 1773 },
15252+{ 0x1, 148, 0, 1774 },
15253+{ 0x4, 234, 0, 1775 },
15254+{ 0x2, 234, 0, 1776 },
15255+{ 0x1, 234, 0, 1777 },
15256+{ 0x1, 197, 0, 1778 },
15257+{ 0x2, 235, 0, 1779 },
15258+{ 0x1, 235, 0, 1780 },
15259+{ 0x4, 185, 0, 1781 },
15260+{ 0x2, 185, 0, 1782 },
15261+{ 0x1, 185, 0, 1783 },
15262+{ 0x4, 182, 0, 1784 },
15263+{ 0x1, 190, 0, 1787 },
15264+{ 0x1, 189, 1, 1788 },
15265+{ 0x2, 182, 0, 1785 },
15266+{ 0x1, 142, 0, 1789 },
15267+{ 0x1, 297, 1, 1790 },
15268+{ 0x1, 182, 0, 1786 },
15269+{ 0x8, 144, 0, 1791 },
15270+{ 0x4, 144, 0, 1792 },
15271+{ 0x2, 144, 0, 1793 },
15272+{ 0x1, 144, 1, 1795 },
15273+{ 0x1, 145, 0, 1794 },
15274+{ 0x8, 146, 0, 1796 },
15275+{ 0x4, 146, 0, 1797 },
15276+{ 0x2, 146, 0, 1798 },
15277+{ 0x1, 146, 1, 1800 },
15278+{ 0x1, 147, 1, 1799 },
15279+{ 0x1, 426, 0, 1167 },
15280+{ 0x8, 180, 0, 1801 },
15281+{ 0x4, 180, 0, 1802 },
15282+{ 0x2, 180, 0, 1803 },
15283+{ 0x1, 180, 1, 1805 },
15284+{ 0x1, 181, 1, 1804 },
15285+{ 0x1, 425, 0, 1168 },
15286+{ 0x8, 183, 0, 1806 },
15287+{ 0x4, 183, 0, 1807 },
15288+{ 0x2, 183, 0, 1808 },
15289+{ 0x1, 183, 1, 1810 },
15290+{ 0x1, 184, 1, 1809 },
15291+{ 0x1, 424, 0, 1169 },
15292+{ 0x8, 228, 0, 1811 },
15293+{ 0x4, 228, 0, 1812 },
15294+{ 0x2, 228, 0, 1813 },
15295+{ 0x1, 228, 1, 1815 },
15296+{ 0x1, 229, 0, 1814 },
15297+{ 0x8, 226, 0, 1816 },
15298+{ 0x4, 226, 0, 1817 },
15299+{ 0x2, 226, 0, 1818 },
15300+{ 0x1, 226, 1, 1820 },
15301+{ 0x1, 227, 0, 1819 },
15302+{ 0x8, 44, 0, 1825 },
15303+{ 0x18, 44, 0, 1821 },
15304+{ 0x4, 44, 0, 1826 },
15305+{ 0xc, 44, 0, 1822 },
15306+{ 0x2, 44, 0, 1827 },
15307+{ 0x6, 44, 0, 1823 },
15308+{ 0x1, 44, 0, 1828 },
15309+{ 0x3, 44, 0, 1824 },
15310+{ 0x51, 30, 0, 1830 },
15311+{ 0xd1, 30, 0, 1829 },
15312+{ 0x31, 30, 1, 1840 },
15313+{ 0x11, 31, 0, 1839 },
15314+{ 0x71, 30, 1, 1838 },
15315+{ 0x31, 31, 0, 1837 },
15316+{ 0x29, 30, 0, 1832 },
15317+{ 0x69, 30, 0, 1831 },
15318+{ 0x19, 30, 1, 1844 },
15319+{ 0x9, 31, 0, 1843 },
15320+{ 0x39, 30, 1, 1842 },
15321+{ 0x19, 31, 0, 1841 },
15322+{ 0x15, 30, 0, 1834 },
15323+{ 0x35, 30, 0, 1833 },
15324+{ 0xd, 30, 1, 1848 },
15325+{ 0x5, 31, 0, 1847 },
15326+{ 0x1d, 30, 1, 1846 },
15327+{ 0xd, 31, 0, 1845 },
15328+{ 0xb, 30, 0, 1836 },
15329+{ 0x1b, 30, 0, 1835 },
15330+{ 0x7, 30, 1, 1852 },
15331+{ 0x3, 31, 0, 1851 },
15332+{ 0xf, 30, 1, 1850 },
15333+{ 0x7, 31, 0, 1849 },
15334+{ 0xa2, 28, 0, 1854 },
15335+{ 0x1a2, 28, 0, 1853 },
15336+{ 0x62, 28, 1, 1864 },
15337+{ 0x22, 29, 0, 1863 },
15338+{ 0xe2, 28, 1, 1862 },
15339+{ 0x62, 29, 0, 1861 },
15340+{ 0x52, 28, 0, 1856 },
15341+{ 0xd2, 28, 0, 1855 },
15342+{ 0x32, 28, 1, 1868 },
15343+{ 0x12, 29, 0, 1867 },
15344+{ 0x72, 28, 1, 1866 },
15345+{ 0x32, 29, 0, 1865 },
15346+{ 0x2a, 28, 0, 1858 },
15347+{ 0x6a, 28, 0, 1857 },
15348+{ 0x1a, 28, 1, 1872 },
15349+{ 0xa, 29, 0, 1871 },
15350+{ 0x3a, 28, 1, 1870 },
15351+{ 0x1a, 29, 0, 1869 },
15352+{ 0x16, 28, 0, 1860 },
15353+{ 0x36, 28, 0, 1859 },
15354+{ 0xe, 28, 1, 1876 },
15355+{ 0x6, 29, 0, 1875 },
15356+{ 0x1e, 28, 1, 1874 },
15357+{ 0xe, 29, 0, 1873 },
15358+{ 0x51, 28, 0, 1878 },
15359+{ 0xd1, 28, 0, 1877 },
15360+{ 0x31, 28, 1, 1888 },
15361+{ 0x11, 29, 0, 1887 },
15362+{ 0x71, 28, 1, 1886 },
15363+{ 0x31, 29, 0, 1885 },
15364+{ 0x29, 28, 0, 1880 },
15365+{ 0x69, 28, 0, 1879 },
15366+{ 0x19, 28, 1, 1892 },
15367+{ 0x9, 29, 0, 1891 },
15368+{ 0x39, 28, 1, 1890 },
15369+{ 0x19, 29, 0, 1889 },
15370+{ 0x15, 28, 0, 1882 },
15371+{ 0x35, 28, 0, 1881 },
15372+{ 0xd, 28, 1, 1896 },
15373+{ 0x5, 29, 0, 1895 },
15374+{ 0x1d, 28, 1, 1894 },
15375+{ 0xd, 29, 0, 1893 },
15376+{ 0xb, 28, 0, 1884 },
15377+{ 0x1b, 28, 0, 1883 },
15378+{ 0x7, 28, 1, 1900 },
15379+{ 0x3, 29, 0, 1899 },
15380+{ 0xf, 28, 1, 1898 },
15381+{ 0x7, 29, 0, 1897 },
15382+{ 0x51, 26, 0, 1902 },
15383+{ 0xd1, 26, 0, 1901 },
15384+{ 0x31, 26, 1, 1912 },
15385+{ 0x11, 27, 0, 1911 },
15386+{ 0x71, 26, 1, 1910 },
15387+{ 0x31, 27, 0, 1909 },
15388+{ 0x29, 26, 0, 1904 },
15389+{ 0x69, 26, 0, 1903 },
15390+{ 0x19, 26, 1, 1916 },
15391+{ 0x9, 27, 0, 1915 },
15392+{ 0x39, 26, 1, 1914 },
15393+{ 0x19, 27, 0, 1913 },
15394+{ 0x15, 26, 0, 1906 },
15395+{ 0x35, 26, 0, 1905 },
15396+{ 0xd, 26, 1, 1920 },
15397+{ 0x5, 27, 0, 1919 },
15398+{ 0x1d, 26, 1, 1918 },
15399+{ 0xd, 27, 0, 1917 },
15400+{ 0xb, 26, 0, 1908 },
15401+{ 0x1b, 26, 0, 1907 },
15402+{ 0x7, 26, 1, 1924 },
15403+{ 0x3, 27, 0, 1923 },
15404+{ 0xf, 26, 1, 1922 },
15405+{ 0x7, 27, 0, 1921 },
15406+{ 0xa2, 24, 0, 1926 },
15407+{ 0x1a2, 24, 0, 1925 },
15408+{ 0x62, 24, 1, 1936 },
15409+{ 0x22, 25, 0, 1935 },
15410+{ 0xe2, 24, 1, 1934 },
15411+{ 0x62, 25, 0, 1933 },
15412+{ 0x52, 24, 0, 1928 },
15413+{ 0xd2, 24, 0, 1927 },
15414+{ 0x32, 24, 1, 1940 },
15415+{ 0x12, 25, 0, 1939 },
15416+{ 0x72, 24, 1, 1938 },
15417+{ 0x32, 25, 0, 1937 },
15418+{ 0x2a, 24, 0, 1930 },
15419+{ 0x6a, 24, 0, 1929 },
15420+{ 0x1a, 24, 1, 1944 },
15421+{ 0xa, 25, 0, 1943 },
15422+{ 0x3a, 24, 1, 1942 },
15423+{ 0x1a, 25, 0, 1941 },
15424+{ 0x16, 24, 0, 1932 },
15425+{ 0x36, 24, 0, 1931 },
15426+{ 0xe, 24, 1, 1948 },
15427+{ 0x6, 25, 0, 1947 },
15428+{ 0x1e, 24, 1, 1946 },
15429+{ 0xe, 25, 0, 1945 },
15430+{ 0x51, 24, 0, 1950 },
15431+{ 0xd1, 24, 0, 1949 },
15432+{ 0x31, 24, 1, 1960 },
15433+{ 0x11, 25, 0, 1959 },
15434+{ 0x71, 24, 1, 1958 },
15435+{ 0x31, 25, 0, 1957 },
15436+{ 0x29, 24, 0, 1952 },
15437+{ 0x69, 24, 0, 1951 },
15438+{ 0x19, 24, 1, 1964 },
15439+{ 0x9, 25, 0, 1963 },
15440+{ 0x39, 24, 1, 1962 },
15441+{ 0x19, 25, 0, 1961 },
15442+{ 0x15, 24, 0, 1954 },
15443+{ 0x35, 24, 0, 1953 },
15444+{ 0xd, 24, 1, 1968 },
15445+{ 0x5, 25, 0, 1967 },
15446+{ 0x1d, 24, 1, 1966 },
15447+{ 0xd, 25, 0, 1965 },
15448+{ 0xb, 24, 0, 1956 },
15449+{ 0x1b, 24, 0, 1955 },
15450+{ 0x7, 24, 1, 1972 },
15451+{ 0x3, 25, 0, 1971 },
15452+{ 0xf, 24, 1, 1970 },
15453+{ 0x7, 25, 0, 1969 },
15454+{ 0x51, 22, 1, 1998 },
15455+{ 0x50, 22, 0, 1974 },
15456+{ 0xd1, 22, 1, 1997 },
15457+{ 0xd0, 22, 0, 1973 },
15458+{ 0x31, 22, 1, 2008 },
15459+{ 0x30, 22, 1, 1984 },
15460+{ 0x11, 23, 1, 2007 },
15461+{ 0x10, 23, 0, 1983 },
15462+{ 0x71, 22, 1, 2006 },
15463+{ 0x70, 22, 1, 1982 },
15464+{ 0x31, 23, 1, 2005 },
15465+{ 0x30, 23, 0, 1981 },
15466+{ 0x29, 22, 1, 2000 },
15467+{ 0x28, 22, 0, 1976 },
15468+{ 0x69, 22, 1, 1999 },
15469+{ 0x68, 22, 0, 1975 },
15470+{ 0x19, 22, 1, 2012 },
15471+{ 0x18, 22, 1, 1988 },
15472+{ 0x9, 23, 1, 2011 },
15473+{ 0x8, 23, 0, 1987 },
15474+{ 0x39, 22, 1, 2010 },
15475+{ 0x38, 22, 1, 1986 },
15476+{ 0x19, 23, 1, 2009 },
15477+{ 0x18, 23, 0, 1985 },
15478+{ 0x15, 22, 1, 2002 },
15479+{ 0x14, 22, 0, 1978 },
15480+{ 0x35, 22, 1, 2001 },
15481+{ 0x34, 22, 0, 1977 },
15482+{ 0xd, 22, 1, 2016 },
15483+{ 0xc, 22, 1, 1992 },
15484+{ 0x5, 23, 1, 2015 },
15485+{ 0x4, 23, 0, 1991 },
15486+{ 0x1d, 22, 1, 2014 },
15487+{ 0x1c, 22, 1, 1990 },
15488+{ 0xd, 23, 1, 2013 },
15489+{ 0xc, 23, 0, 1989 },
15490+{ 0xb, 22, 1, 2004 },
15491+{ 0xa, 22, 0, 1980 },
15492+{ 0x1b, 22, 1, 2003 },
15493+{ 0x1a, 22, 0, 1979 },
15494+{ 0x7, 22, 1, 2020 },
15495+{ 0x6, 22, 1, 1996 },
15496+{ 0x3, 23, 1, 2019 },
15497+{ 0x2, 23, 0, 1995 },
15498+{ 0xf, 22, 1, 2018 },
15499+{ 0xe, 22, 1, 1994 },
15500+{ 0x7, 23, 1, 2017 },
15501+{ 0x6, 23, 0, 1993 },
15502+{ 0x8, 21, 0, 2022 },
15503+{ 0x18, 21, 0, 2021 },
15504+{ 0x1, 21, 1, 2026 },
15505+{ 0x2, 21, 0, 2025 },
15506+{ 0x3, 21, 1, 2024 },
15507+{ 0x4, 21, 0, 2023 },
15508+{ 0x1, 239, 0, 2027 },
15509+{ 0x1, 339, 0, 2028 },
15510+{ 0x14, 43, 0, 2031 },
15511+{ 0x34, 43, 0, 2029 },
15512+{ 0xc, 43, 0, 2032 },
15513+{ 0x1c, 43, 0, 2030 },
15514+{ 0x2, 43, 0, 2035 },
15515+{ 0x6, 43, 0, 2033 },
15516+{ 0x1, 43, 0, 2036 },
15517+{ 0x3, 43, 0, 2034 },
15518+{ 0x51, 19, 0, 2038 },
15519+{ 0xd1, 19, 0, 2037 },
15520+{ 0x31, 19, 1, 2048 },
15521+{ 0x11, 20, 0, 2047 },
15522+{ 0x71, 19, 1, 2046 },
15523+{ 0x31, 20, 0, 2045 },
15524+{ 0x29, 19, 0, 2040 },
15525+{ 0x69, 19, 0, 2039 },
15526+{ 0x19, 19, 1, 2052 },
15527+{ 0x9, 20, 0, 2051 },
15528+{ 0x39, 19, 1, 2050 },
15529+{ 0x19, 20, 0, 2049 },
15530+{ 0x15, 19, 0, 2042 },
15531+{ 0x35, 19, 0, 2041 },
15532+{ 0xd, 19, 1, 2056 },
15533+{ 0x5, 20, 0, 2055 },
15534+{ 0x1d, 19, 1, 2054 },
15535+{ 0xd, 20, 0, 2053 },
15536+{ 0xb, 19, 0, 2044 },
15537+{ 0x1b, 19, 0, 2043 },
15538+{ 0x7, 19, 1, 2060 },
15539+{ 0x3, 20, 0, 2059 },
15540+{ 0xf, 19, 1, 2058 },
15541+{ 0x7, 20, 0, 2057 },
15542+{ 0x1, 32, 0, 2061 },
15543+{ 0x1, 140, 0, 2062 },
15544+{ 0x2, 45, 0, 2063 },
15545+{ 0x1, 45, 0, 2064 },
15546+{ 0x1, 387, 0, 2065 },
15547+{ 0x2, 52, 0, 2066 },
15548+{ 0x1, 52, 0, 2067 },
15549+{ 0x1, 133, 0, 2068 },
15550+{ 0x51, 17, 0, 2070 },
15551+{ 0xd1, 17, 0, 2069 },
15552+{ 0x31, 17, 1, 2080 },
15553+{ 0x11, 18, 0, 2079 },
15554+{ 0x71, 17, 1, 2078 },
15555+{ 0x31, 18, 0, 2077 },
15556+{ 0x29, 17, 0, 2072 },
15557+{ 0x69, 17, 0, 2071 },
15558+{ 0x19, 17, 1, 2084 },
15559+{ 0x9, 18, 0, 2083 },
15560+{ 0x39, 17, 1, 2082 },
15561+{ 0x19, 18, 0, 2081 },
15562+{ 0x15, 17, 0, 2074 },
15563+{ 0x35, 17, 0, 2073 },
15564+{ 0xd, 17, 1, 2088 },
15565+{ 0x5, 18, 0, 2087 },
15566+{ 0x1d, 17, 1, 2086 },
15567+{ 0xd, 18, 0, 2085 },
15568+{ 0xb, 17, 0, 2076 },
15569+{ 0x1b, 17, 0, 2075 },
15570+{ 0x7, 17, 1, 2092 },
15571+{ 0x3, 18, 0, 2091 },
15572+{ 0xf, 17, 1, 2090 },
15573+{ 0x7, 18, 0, 2089 },
15574+{ 0xa20, 15, 0, 2094 },
15575+{ 0x1a20, 15, 0, 2093 },
15576+{ 0x620, 15, 1, 2104 },
15577+{ 0x220, 16, 0, 2103 },
15578+{ 0xe20, 15, 1, 2102 },
15579+{ 0x620, 16, 0, 2101 },
15580+{ 0x520, 15, 0, 2096 },
15581+{ 0xd20, 15, 0, 2095 },
15582+{ 0x320, 15, 1, 2108 },
15583+{ 0x120, 16, 0, 2107 },
15584+{ 0x720, 15, 1, 2106 },
15585+{ 0x320, 16, 0, 2105 },
15586+{ 0x2a0, 15, 0, 2098 },
15587+{ 0x6a0, 15, 0, 2097 },
15588+{ 0x1a0, 15, 1, 2112 },
15589+{ 0xa0, 16, 0, 2111 },
15590+{ 0x3a0, 15, 1, 2110 },
15591+{ 0x1a0, 16, 0, 2109 },
15592+{ 0x160, 15, 0, 2100 },
15593+{ 0x360, 15, 0, 2099 },
15594+{ 0xe0, 15, 1, 2116 },
15595+{ 0x60, 16, 0, 2115 },
15596+{ 0x1e0, 15, 1, 2114 },
15597+{ 0xe0, 16, 0, 2113 },
15598+{ 0x51, 15, 1, 2142 },
15599+{ 0x50, 15, 0, 2118 },
15600+{ 0xd1, 15, 1, 2141 },
15601+{ 0xd0, 15, 0, 2117 },
15602+{ 0x31, 15, 1, 2152 },
15603+{ 0x30, 15, 1, 2128 },
15604+{ 0x11, 16, 1, 2151 },
15605+{ 0x10, 16, 0, 2127 },
15606+{ 0x71, 15, 1, 2150 },
15607+{ 0x70, 15, 1, 2126 },
15608+{ 0x31, 16, 1, 2149 },
15609+{ 0x30, 16, 0, 2125 },
15610+{ 0x29, 15, 1, 2144 },
15611+{ 0x28, 15, 0, 2120 },
15612+{ 0x69, 15, 1, 2143 },
15613+{ 0x68, 15, 0, 2119 },
15614+{ 0x19, 15, 1, 2156 },
15615+{ 0x18, 15, 1, 2132 },
15616+{ 0x9, 16, 1, 2155 },
15617+{ 0x8, 16, 0, 2131 },
15618+{ 0x39, 15, 1, 2154 },
15619+{ 0x38, 15, 1, 2130 },
15620+{ 0x19, 16, 1, 2153 },
15621+{ 0x18, 16, 0, 2129 },
15622+{ 0x15, 15, 1, 2146 },
15623+{ 0x14, 15, 0, 2122 },
15624+{ 0x35, 15, 1, 2145 },
15625+{ 0x34, 15, 0, 2121 },
15626+{ 0xd, 15, 1, 2160 },
15627+{ 0xc, 15, 1, 2136 },
15628+{ 0x5, 16, 1, 2159 },
15629+{ 0x4, 16, 0, 2135 },
15630+{ 0x1d, 15, 1, 2158 },
15631+{ 0x1c, 15, 1, 2134 },
15632+{ 0xd, 16, 1, 2157 },
15633+{ 0xc, 16, 0, 2133 },
15634+{ 0xb, 15, 1, 2148 },
15635+{ 0xa, 15, 0, 2124 },
15636+{ 0x1b, 15, 1, 2147 },
15637+{ 0x1a, 15, 0, 2123 },
15638+{ 0x7, 15, 1, 2164 },
15639+{ 0x6, 15, 1, 2140 },
15640+{ 0x3, 16, 1, 2163 },
15641+{ 0x2, 16, 0, 2139 },
15642+{ 0xf, 15, 1, 2162 },
15643+{ 0xe, 15, 1, 2138 },
15644+{ 0x7, 16, 1, 2161 },
15645+{ 0x6, 16, 0, 2137 },
15646+{ 0x8, 14, 0, 2166 },
15647+{ 0x18, 14, 0, 2165 },
15648+{ 0x1, 14, 1, 2170 },
15649+{ 0x2, 14, 0, 2169 },
15650+{ 0x3, 14, 1, 2168 },
15651+{ 0x4, 14, 0, 2167 },
15652+{ 0x1, 109, 1, 2322 },
15653+{ 0x1, 110, 1, 2321 },
15654+{ 0x1, 111, 1, 2320 },
15655+{ 0x1, 112, 1, 2319 },
15656+{ 0x1, 113, 1, 2318 },
15657+{ 0x1, 114, 1, 2317 },
15658+{ 0x1, 115, 1, 2316 },
15659+{ 0x1, 116, 1, 2315 },
15660+{ 0x39, 41, 1, 22 },
15661+{ 0x19, 42, 0, 21 },
15662+{ 0x3, 109, 1, 2314 },
15663+{ 0x3, 110, 1, 2313 },
15664+{ 0x3, 111, 1, 2312 },
15665+{ 0x3, 112, 1, 2311 },
15666+{ 0x3, 113, 1, 2310 },
15667+{ 0x3, 114, 1, 2309 },
15668+{ 0x3, 115, 1, 2308 },
15669+{ 0x3, 116, 1, 2307 },
15670+{ 0x69, 41, 0, 11 },
15671+{ 0x14, 100, 1, 2302 },
15672+{ 0x22, 101, 1, 2299 },
15673+{ 0x44, 101, 1, 2301 },
15674+{ 0xa, 108, 1, 2300 },
15675+{ 0xd1, 41, 0, 9 },
15676+{ 0x34, 100, 1, 2174 },
15677+{ 0xc4, 101, 1, 2173 },
15678+{ 0x1c, 107, 1, 2171 },
15679+{ 0xe, 122, 0, 2172 },
15680+{ 0xc, 100, 1, 2462 },
15681+{ 0xa, 101, 1, 2459 },
15682+{ 0x14, 101, 1, 2461 },
15683+{ 0x6, 108, 0, 2460 },
15684+{ 0x2, 100, 1, 2186 },
15685+{ 0x2, 101, 1, 2185 },
15686+{ 0x2, 106, 1, 2184 },
15687+{ 0x2, 107, 0, 2183 },
15688+{ 0x12, 100, 1, 2182 },
15689+{ 0x42, 101, 1, 2181 },
15690+{ 0x6, 106, 1, 2180 },
15691+{ 0x6, 107, 0, 2179 },
15692+{ 0xa, 100, 1, 2306 },
15693+{ 0x12, 101, 1, 2305 },
15694+{ 0x24, 101, 1, 2303 },
15695+{ 0x5, 108, 1, 2304 },
15696+{ 0x71, 41, 1, 18 },
15697+{ 0x31, 42, 0, 17 },
15698+{ 0x1a, 100, 1, 2178 },
15699+{ 0x32, 101, 1, 2177 },
15700+{ 0x1a, 107, 1, 2175 },
15701+{ 0x7, 122, 0, 2176 },
15702+{ 0x6, 100, 1, 2466 },
15703+{ 0x6, 101, 1, 2465 },
15704+{ 0xc, 101, 1, 2463 },
15705+{ 0x3, 108, 0, 2464 },
15706+{ 0x1, 100, 1, 2482 },
15707+{ 0x1, 101, 1, 2481 },
15708+{ 0x1, 102, 1, 2480 },
15709+{ 0x1, 103, 1, 2479 },
15710+{ 0x1, 104, 1, 2478 },
15711+{ 0x1, 105, 1, 2477 },
15712+{ 0x1, 106, 1, 2476 },
15713+{ 0x1, 107, 0, 2475 },
15714+{ 0x3, 100, 1, 2474 },
15715+{ 0x3, 101, 1, 2473 },
15716+{ 0x3, 102, 1, 2472 },
15717+{ 0x3, 103, 1, 2471 },
15718+{ 0x3, 104, 1, 2470 },
15719+{ 0x3, 105, 1, 2469 },
15720+{ 0x3, 106, 1, 2468 },
15721+{ 0x3, 107, 0, 2467 },
15722+{ 0x8, 67, 1, 2346 },
15723+{ 0x8, 68, 1, 2345 },
15724+{ 0x2, 73, 1, 2340 },
15725+{ 0x2, 74, 1, 2339 },
15726+{ 0x1, 76, 1, 2344 },
15727+{ 0x1, 77, 1, 2343 },
15728+{ 0x1, 78, 1, 2342 },
15729+{ 0x1, 79, 1, 2341 },
15730+{ 0xf, 41, 1, 30 },
15731+{ 0x7, 42, 0, 29 },
15732+{ 0x18, 67, 1, 2338 },
15733+{ 0x18, 68, 1, 2337 },
15734+{ 0x6, 73, 1, 2332 },
15735+{ 0x6, 74, 1, 2331 },
15736+{ 0x3, 76, 1, 2336 },
15737+{ 0x3, 77, 1, 2335 },
15738+{ 0x3, 78, 1, 2334 },
15739+{ 0x3, 79, 1, 2333 },
15740+{ 0x1b, 41, 0, 15 },
15741+{ 0x14, 67, 1, 2326 },
15742+{ 0x22, 68, 1, 2323 },
15743+{ 0x44, 68, 1, 2325 },
15744+{ 0xa, 75, 1, 2324 },
15745+{ 0x35, 41, 0, 13 },
15746+{ 0x34, 67, 1, 2190 },
15747+{ 0xc4, 68, 1, 2189 },
15748+{ 0x38, 74, 1, 2187 },
15749+{ 0xe, 85, 0, 2188 },
15750+{ 0xc, 67, 1, 2486 },
15751+{ 0xa, 68, 1, 2483 },
15752+{ 0x14, 68, 1, 2485 },
15753+{ 0x6, 75, 0, 2484 },
15754+{ 0x2, 67, 1, 2202 },
15755+{ 0x2, 68, 1, 2201 },
15756+{ 0x4, 73, 1, 2200 },
15757+{ 0x4, 74, 0, 2199 },
15758+{ 0x12, 67, 1, 2198 },
15759+{ 0x42, 68, 1, 2197 },
15760+{ 0xc, 73, 1, 2196 },
15761+{ 0xc, 74, 0, 2195 },
15762+{ 0xa, 67, 1, 2330 },
15763+{ 0x12, 68, 1, 2329 },
15764+{ 0x24, 68, 1, 2327 },
15765+{ 0x5, 75, 1, 2328 },
15766+{ 0x1d, 41, 1, 26 },
15767+{ 0xd, 42, 0, 25 },
15768+{ 0x1a, 67, 1, 2194 },
15769+{ 0x32, 68, 1, 2193 },
15770+{ 0x34, 74, 1, 2191 },
15771+{ 0x7, 85, 0, 2192 },
15772+{ 0x6, 67, 1, 2490 },
15773+{ 0x6, 68, 1, 2489 },
15774+{ 0xc, 68, 1, 2487 },
15775+{ 0x3, 75, 0, 2488 },
15776+{ 0x1, 67, 1, 2506 },
15777+{ 0x1, 68, 1, 2505 },
15778+{ 0x1, 69, 1, 2504 },
15779+{ 0x1, 70, 1, 2503 },
15780+{ 0x1, 71, 1, 2502 },
15781+{ 0x1, 72, 1, 2501 },
15782+{ 0x1, 73, 1, 2500 },
15783+{ 0x1, 74, 0, 2499 },
15784+{ 0x3, 67, 1, 2498 },
15785+{ 0x3, 68, 1, 2497 },
15786+{ 0x3, 69, 1, 2496 },
15787+{ 0x3, 70, 1, 2495 },
15788+{ 0x3, 71, 1, 2494 },
15789+{ 0x3, 72, 1, 2493 },
15790+{ 0x3, 73, 1, 2492 },
15791+{ 0x3, 74, 0, 2491 },
15792+{ 0x28, 95, 1, 2354 },
15793+{ 0x44, 96, 1, 2349 },
15794+{ 0x88, 96, 1, 2353 },
15795+{ 0x44, 97, 1, 2348 },
15796+{ 0x88, 97, 1, 2352 },
15797+{ 0x44, 98, 1, 2347 },
15798+{ 0x88, 98, 1, 2351 },
15799+{ 0x28, 99, 0, 2350 },
15800+{ 0x68, 95, 1, 2210 },
15801+{ 0x188, 96, 1, 2209 },
15802+{ 0x188, 97, 1, 2208 },
15803+{ 0x188, 98, 1, 2207 },
15804+{ 0x38, 118, 1, 2206 },
15805+{ 0x38, 119, 1, 2205 },
15806+{ 0x38, 120, 1, 2204 },
15807+{ 0x38, 121, 0, 2203 },
15808+{ 0x18, 95, 1, 2514 },
15809+{ 0x14, 96, 1, 2509 },
15810+{ 0x28, 96, 1, 2513 },
15811+{ 0x14, 97, 1, 2508 },
15812+{ 0x28, 97, 1, 2512 },
15813+{ 0x14, 98, 1, 2507 },
15814+{ 0x28, 98, 1, 2511 },
15815+{ 0x18, 99, 0, 2510 },
15816+{ 0x14, 95, 1, 2362 },
15817+{ 0x24, 96, 1, 2361 },
15818+{ 0x48, 96, 1, 2357 },
15819+{ 0x24, 97, 1, 2360 },
15820+{ 0x48, 97, 1, 2356 },
15821+{ 0x24, 98, 1, 2359 },
15822+{ 0x48, 98, 1, 2355 },
15823+{ 0x14, 99, 0, 2358 },
15824+{ 0x34, 95, 1, 2218 },
15825+{ 0x64, 96, 1, 2217 },
15826+{ 0x64, 97, 1, 2216 },
15827+{ 0x64, 98, 1, 2215 },
15828+{ 0x1c, 118, 1, 2214 },
15829+{ 0x1c, 119, 1, 2213 },
15830+{ 0x1c, 120, 1, 2212 },
15831+{ 0x1c, 121, 0, 2211 },
15832+{ 0xc, 95, 1, 2522 },
15833+{ 0xc, 96, 1, 2521 },
15834+{ 0x18, 96, 1, 2517 },
15835+{ 0xc, 97, 1, 2520 },
15836+{ 0x18, 97, 1, 2516 },
15837+{ 0xc, 98, 1, 2519 },
15838+{ 0x18, 98, 1, 2515 },
15839+{ 0xc, 99, 0, 2518 },
15840+{ 0xa, 95, 1, 2370 },
15841+{ 0x11, 96, 1, 2365 },
15842+{ 0x22, 96, 1, 2369 },
15843+{ 0x11, 97, 1, 2364 },
15844+{ 0x22, 97, 1, 2368 },
15845+{ 0x11, 98, 1, 2363 },
15846+{ 0x22, 98, 1, 2367 },
15847+{ 0xa, 99, 0, 2366 },
15848+{ 0x1a, 95, 1, 2226 },
15849+{ 0x62, 96, 1, 2225 },
15850+{ 0x62, 97, 1, 2224 },
15851+{ 0x62, 98, 1, 2223 },
15852+{ 0xe, 118, 1, 2222 },
15853+{ 0xe, 119, 1, 2221 },
15854+{ 0xe, 120, 1, 2220 },
15855+{ 0xe, 121, 0, 2219 },
15856+{ 0x6, 95, 1, 2530 },
15857+{ 0x5, 96, 1, 2525 },
15858+{ 0xa, 96, 1, 2529 },
15859+{ 0x5, 97, 1, 2524 },
15860+{ 0xa, 97, 1, 2528 },
15861+{ 0x5, 98, 1, 2523 },
15862+{ 0xa, 98, 1, 2527 },
15863+{ 0x6, 99, 0, 2526 },
15864+{ 0x5, 95, 1, 2378 },
15865+{ 0x9, 96, 1, 2377 },
15866+{ 0x12, 96, 1, 2373 },
15867+{ 0x9, 97, 1, 2376 },
15868+{ 0x12, 97, 1, 2372 },
15869+{ 0x9, 98, 1, 2375 },
15870+{ 0x12, 98, 1, 2371 },
15871+{ 0x5, 99, 0, 2374 },
15872+{ 0xd, 95, 1, 2234 },
15873+{ 0x19, 96, 1, 2233 },
15874+{ 0x19, 97, 1, 2232 },
15875+{ 0x19, 98, 1, 2231 },
15876+{ 0x7, 118, 1, 2230 },
15877+{ 0x7, 119, 1, 2229 },
15878+{ 0x7, 120, 1, 2228 },
15879+{ 0x7, 121, 0, 2227 },
15880+{ 0x3, 95, 1, 2538 },
15881+{ 0x3, 96, 1, 2537 },
15882+{ 0x6, 96, 1, 2533 },
15883+{ 0x3, 97, 1, 2536 },
15884+{ 0x6, 97, 1, 2532 },
15885+{ 0x3, 98, 1, 2535 },
15886+{ 0x6, 98, 1, 2531 },
15887+{ 0x3, 99, 0, 2534 },
15888+{ 0x28, 62, 1, 2386 },
15889+{ 0x44, 63, 1, 2381 },
15890+{ 0x88, 63, 1, 2385 },
15891+{ 0x44, 64, 1, 2380 },
15892+{ 0x88, 64, 1, 2384 },
15893+{ 0x44, 65, 1, 2379 },
15894+{ 0x88, 65, 1, 2383 },
15895+{ 0x28, 66, 0, 2382 },
15896+{ 0x68, 62, 1, 2242 },
15897+{ 0x188, 63, 1, 2241 },
15898+{ 0x188, 64, 1, 2240 },
15899+{ 0x188, 65, 1, 2239 },
15900+{ 0x38, 81, 1, 2238 },
15901+{ 0x38, 82, 1, 2237 },
15902+{ 0x38, 83, 1, 2236 },
15903+{ 0x38, 84, 0, 2235 },
15904+{ 0x18, 62, 1, 2546 },
15905+{ 0x14, 63, 1, 2541 },
15906+{ 0x28, 63, 1, 2545 },
15907+{ 0x14, 64, 1, 2540 },
15908+{ 0x28, 64, 1, 2544 },
15909+{ 0x14, 65, 1, 2539 },
15910+{ 0x28, 65, 1, 2543 },
15911+{ 0x18, 66, 0, 2542 },
15912+{ 0x14, 62, 1, 2394 },
15913+{ 0x24, 63, 1, 2393 },
15914+{ 0x48, 63, 1, 2389 },
15915+{ 0x24, 64, 1, 2392 },
15916+{ 0x48, 64, 1, 2388 },
15917+{ 0x24, 65, 1, 2391 },
15918+{ 0x48, 65, 1, 2387 },
15919+{ 0x14, 66, 0, 2390 },
15920+{ 0x34, 62, 1, 2250 },
15921+{ 0x64, 63, 1, 2249 },
15922+{ 0x64, 64, 1, 2248 },
15923+{ 0x64, 65, 1, 2247 },
15924+{ 0x1c, 81, 1, 2246 },
15925+{ 0x1c, 82, 1, 2245 },
15926+{ 0x1c, 83, 1, 2244 },
15927+{ 0x1c, 84, 0, 2243 },
15928+{ 0xc, 62, 1, 2554 },
15929+{ 0xc, 63, 1, 2553 },
15930+{ 0x18, 63, 1, 2549 },
15931+{ 0xc, 64, 1, 2552 },
15932+{ 0x18, 64, 1, 2548 },
15933+{ 0xc, 65, 1, 2551 },
15934+{ 0x18, 65, 1, 2547 },
15935+{ 0xc, 66, 0, 2550 },
15936+{ 0xa, 62, 1, 2402 },
15937+{ 0x11, 63, 1, 2397 },
15938+{ 0x22, 63, 1, 2401 },
15939+{ 0x11, 64, 1, 2396 },
15940+{ 0x22, 64, 1, 2400 },
15941+{ 0x11, 65, 1, 2395 },
15942+{ 0x22, 65, 1, 2399 },
15943+{ 0xa, 66, 0, 2398 },
15944+{ 0x1a, 62, 1, 2258 },
15945+{ 0x62, 63, 1, 2257 },
15946+{ 0x62, 64, 1, 2256 },
15947+{ 0x62, 65, 1, 2255 },
15948+{ 0xe, 81, 1, 2254 },
15949+{ 0xe, 82, 1, 2253 },
15950+{ 0xe, 83, 1, 2252 },
15951+{ 0xe, 84, 0, 2251 },
15952+{ 0x6, 62, 1, 2562 },
15953+{ 0x5, 63, 1, 2557 },
15954+{ 0xa, 63, 1, 2561 },
15955+{ 0x5, 64, 1, 2556 },
15956+{ 0xa, 64, 1, 2560 },
15957+{ 0x5, 65, 1, 2555 },
15958+{ 0xa, 65, 1, 2559 },
15959+{ 0x6, 66, 0, 2558 },
15960+{ 0x5, 62, 1, 2410 },
15961+{ 0x9, 63, 1, 2409 },
15962+{ 0x12, 63, 1, 2405 },
15963+{ 0x9, 64, 1, 2408 },
15964+{ 0x12, 64, 1, 2404 },
15965+{ 0x9, 65, 1, 2407 },
15966+{ 0x12, 65, 1, 2403 },
15967+{ 0x5, 66, 0, 2406 },
15968+{ 0xd, 62, 1, 2266 },
15969+{ 0x19, 63, 1, 2265 },
15970+{ 0x19, 64, 1, 2264 },
15971+{ 0x19, 65, 1, 2263 },
15972+{ 0x7, 81, 1, 2262 },
15973+{ 0x7, 82, 1, 2261 },
15974+{ 0x7, 83, 1, 2260 },
15975+{ 0x7, 84, 0, 2259 },
15976+{ 0x3, 62, 1, 2570 },
15977+{ 0x3, 63, 1, 2569 },
15978+{ 0x6, 63, 1, 2565 },
15979+{ 0x3, 64, 1, 2568 },
15980+{ 0x6, 64, 1, 2564 },
15981+{ 0x3, 65, 1, 2567 },
15982+{ 0x6, 65, 1, 2563 },
15983+{ 0x3, 66, 0, 2566 },
15984+{ 0x8, 86, 1, 2434 },
15985+{ 0x8, 87, 1, 2433 },
15986+{ 0x2, 88, 1, 2432 },
15987+{ 0x2, 89, 1, 2431 },
15988+{ 0x2, 90, 1, 2430 },
15989+{ 0x2, 91, 1, 2429 },
15990+{ 0x2, 92, 1, 2428 },
15991+{ 0x2, 93, 0, 2427 },
15992+{ 0x18, 86, 1, 2426 },
15993+{ 0x18, 87, 1, 2425 },
15994+{ 0x6, 88, 1, 2424 },
15995+{ 0x6, 89, 1, 2423 },
15996+{ 0x6, 90, 1, 2422 },
15997+{ 0x6, 91, 1, 2421 },
15998+{ 0x6, 92, 1, 2420 },
15999+{ 0x6, 93, 0, 2419 },
16000+{ 0x14, 86, 1, 2414 },
16001+{ 0x22, 87, 1, 2411 },
16002+{ 0x44, 87, 1, 2413 },
16003+{ 0xa, 94, 0, 2412 },
16004+{ 0x34, 86, 1, 2270 },
16005+{ 0xc4, 87, 1, 2269 },
16006+{ 0x38, 93, 1, 2267 },
16007+{ 0xe, 117, 0, 2268 },
16008+{ 0xc, 86, 1, 2574 },
16009+{ 0xa, 87, 1, 2571 },
16010+{ 0x14, 87, 1, 2573 },
16011+{ 0x6, 94, 0, 2572 },
16012+{ 0x2, 86, 1, 2282 },
16013+{ 0x2, 87, 1, 2281 },
16014+{ 0x4, 92, 1, 2280 },
16015+{ 0x4, 93, 0, 2279 },
16016+{ 0x12, 86, 1, 2278 },
16017+{ 0x42, 87, 1, 2277 },
16018+{ 0xc, 92, 1, 2276 },
16019+{ 0xc, 93, 0, 2275 },
16020+{ 0xa, 86, 1, 2418 },
16021+{ 0x12, 87, 1, 2417 },
16022+{ 0x24, 87, 1, 2415 },
16023+{ 0x5, 94, 0, 2416 },
16024+{ 0x1a, 86, 1, 2274 },
16025+{ 0x32, 87, 1, 2273 },
16026+{ 0x34, 93, 1, 2271 },
16027+{ 0x7, 117, 0, 2272 },
16028+{ 0x6, 86, 1, 2578 },
16029+{ 0x6, 87, 1, 2577 },
16030+{ 0xc, 87, 1, 2575 },
16031+{ 0x3, 94, 0, 2576 },
16032+{ 0x1, 86, 1, 2594 },
16033+{ 0x1, 87, 1, 2593 },
16034+{ 0x1, 88, 1, 2592 },
16035+{ 0x1, 89, 1, 2591 },
16036+{ 0x1, 90, 1, 2590 },
16037+{ 0x1, 91, 1, 2589 },
16038+{ 0x1, 92, 1, 2588 },
16039+{ 0x1, 93, 0, 2587 },
16040+{ 0x3, 86, 1, 2586 },
16041+{ 0x3, 87, 1, 2585 },
16042+{ 0x3, 88, 1, 2584 },
16043+{ 0x3, 89, 1, 2583 },
16044+{ 0x3, 90, 1, 2582 },
16045+{ 0x3, 91, 1, 2581 },
16046+{ 0x3, 92, 1, 2580 },
16047+{ 0x3, 93, 0, 2579 },
16048+{ 0x8, 53, 1, 2458 },
16049+{ 0x8, 54, 1, 2457 },
16050+{ 0x2, 55, 1, 2456 },
16051+{ 0x2, 56, 1, 2455 },
16052+{ 0x2, 57, 1, 2454 },
16053+{ 0x2, 58, 1, 2453 },
16054+{ 0x2, 59, 1, 2452 },
16055+{ 0x2, 60, 0, 2451 },
16056+{ 0x18, 53, 1, 2450 },
16057+{ 0x18, 54, 1, 2449 },
16058+{ 0x6, 55, 1, 2448 },
16059+{ 0x6, 56, 1, 2447 },
16060+{ 0x6, 57, 1, 2446 },
16061+{ 0x6, 58, 1, 2445 },
16062+{ 0x6, 59, 1, 2444 },
16063+{ 0x6, 60, 0, 2443 },
16064+{ 0x14, 53, 1, 2438 },
16065+{ 0x22, 54, 1, 2435 },
16066+{ 0x44, 54, 1, 2437 },
16067+{ 0xa, 61, 0, 2436 },
16068+{ 0x34, 53, 1, 2286 },
16069+{ 0xc4, 54, 1, 2285 },
16070+{ 0x38, 60, 1, 2283 },
16071+{ 0xe, 80, 0, 2284 },
16072+{ 0xc, 53, 1, 2598 },
16073+{ 0xa, 54, 1, 2595 },
16074+{ 0x14, 54, 1, 2597 },
16075+{ 0x6, 61, 0, 2596 },
16076+{ 0x2, 53, 1, 2298 },
16077+{ 0x2, 54, 1, 2297 },
16078+{ 0x4, 59, 1, 2296 },
16079+{ 0x4, 60, 0, 2295 },
16080+{ 0x12, 53, 1, 2294 },
16081+{ 0x42, 54, 1, 2293 },
16082+{ 0xc, 59, 1, 2292 },
16083+{ 0xc, 60, 0, 2291 },
16084+{ 0xa, 53, 1, 2442 },
16085+{ 0x12, 54, 1, 2441 },
16086+{ 0x24, 54, 1, 2439 },
16087+{ 0x5, 61, 0, 2440 },
16088+{ 0x1a, 53, 1, 2290 },
16089+{ 0x32, 54, 1, 2289 },
16090+{ 0x34, 60, 1, 2287 },
16091+{ 0x7, 80, 0, 2288 },
16092+{ 0x6, 53, 1, 2602 },
16093+{ 0x6, 54, 1, 2601 },
16094+{ 0xc, 54, 1, 2599 },
16095+{ 0x3, 61, 0, 2600 },
16096+{ 0x1, 53, 1, 2618 },
16097+{ 0x1, 54, 1, 2617 },
16098+{ 0x1, 55, 1, 2616 },
16099+{ 0x1, 56, 1, 2615 },
16100+{ 0x1, 57, 1, 2614 },
16101+{ 0x1, 58, 1, 2613 },
16102+{ 0x1, 59, 1, 2612 },
16103+{ 0x1, 60, 0, 2611 },
16104+{ 0x3, 53, 1, 2610 },
16105+{ 0x3, 54, 1, 2609 },
16106+{ 0x3, 55, 1, 2608 },
16107+{ 0x3, 56, 1, 2607 },
16108+{ 0x3, 57, 1, 2606 },
16109+{ 0x3, 58, 1, 2605 },
16110+{ 0x3, 59, 1, 2604 },
16111+{ 0x3, 60, 0, 2603 },
16112+{ 0x1, 4, 0, 2619 },
16113+{ 0x1, 296, 0, 2620 },
16114+{ 0x1, 379, 0, 2621 },
16115+{ 0x1, 374, 0, 2622 },
16116+{ 0x2, 358, 0, 2623 },
16117+{ 0x1, 358, 0, 2626 },
16118+{ 0x2, 357, 0, 2624 },
16119+{ 0x1, 357, 0, 2627 },
16120+{ 0x2, 356, 0, 2625 },
16121+{ 0x1, 356, 0, 2628 },
16122+{ 0x1, 355, 0, 2629 },
16123+{ 0x1, 354, 0, 2630 },
16124+{ 0x2, 353, 0, 2631 },
16125+{ 0x1, 353, 0, 2633 },
16126+{ 0x2, 352, 0, 2632 },
16127+{ 0x1, 352, 0, 2634 },
16128+{ 0x1, 382, 0, 2641 },
16129+{ 0x8, 381, 0, 2635 },
16130+{ 0x4, 381, 0, 2637 },
16131+{ 0x2, 381, 0, 2639 },
16132+{ 0x1, 381, 0, 2642 },
16133+{ 0x8, 380, 0, 2636 },
16134+{ 0x4, 380, 0, 2638 },
16135+{ 0x2, 380, 0, 2640 },
16136+{ 0x1, 380, 0, 2643 },
16137+{ 0x1, 351, 0, 2650 },
16138+{ 0x8, 350, 0, 2644 },
16139+{ 0x4, 350, 0, 2646 },
16140+{ 0x2, 350, 0, 2648 },
16141+{ 0x1, 350, 0, 2651 },
16142+{ 0x8, 349, 0, 2645 },
16143+{ 0x4, 349, 0, 2647 },
16144+{ 0x2, 349, 1, 2649 },
16145+{ 0x4, 143, 0, 1345 },
16146+{ 0x1, 349, 0, 2652 },
16147+{ 0x1, 6, 0, 2653 },
16148+{ 0x1, 7, 0, 2654 },
16149+{ 0x1, 295, 0, 2655 },
16150+{ 0x1, 451, 0, 2656 },
16151+{ 0x1, 346, 0, 2657 },
16152+{ 0x1, 13, 0, 2658 },
16153+{ 0x1, 11, 0, 2659 },
16154+{ 0x1, 422, 0, 2660 },
16155+{ 0x1, 394, 0, 2661 },
16156+{ 0x1, 393, 0, 2662 },
16157+{ 0x1, 450, 0, 2663 },
16158+{ 0x1, 345, 0, 2664 },
16159+{ 0x1, 12, 0, 2665 },
16160+{ 0x1, 10, 0, 2666 },
16161+{ 0x1, 5, 0, 2667 },
16162+{ 0x1, 421, 0, 2668 },
16163+{ 0x1, 420, 0, 2669 },
16164+{ 0x1, 1, 0, 2670 },
16165+{ 0x1, 0, 0, 2671 },
16166+};
16167+
16168--- /dev/null
16169+++ b/arch/ia64/kdb/ia64-asmtab.h
16170@@ -0,0 +1,158 @@
16171+/* ia64-asmtab.h -- Header for compacted IA-64 opcode tables.
16172+ Copyright 1999, 2000 Free Software Foundation, Inc.
16173+ Contributed by Bob Manson of Cygnus Support <manson@cygnus.com>
16174+
16175+ This file is part of GDB, GAS, and the GNU binutils.
16176+
16177+ GDB, GAS, and the GNU binutils are free software; you can redistribute
16178+ them and/or modify them under the terms of the GNU General Public
16179+ License as published by the Free Software Foundation; either version
16180+ 2, or (at your option) any later version.
16181+
16182+ GDB, GAS, and the GNU binutils are distributed in the hope that they
16183+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
16184+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16185+ the GNU General Public License for more details.
16186+
16187+ You should have received a copy of the GNU General Public License
16188+ along with this file; see the file COPYING. If not, write to the
16189+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16190+ 02110-1301, USA. */
16191+
16192+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16193+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16194+ * required.
16195+ * Keith Owens <kaos@sgi.com> 15 May 2006
16196+ */
16197+
16198+#ifndef IA64_ASMTAB_H
16199+#define IA64_ASMTAB_H
16200+
16201+#ifdef __KERNEL__
16202+#include "ia64.h"
16203+#else /* __KERNEL__ */
16204+#include "opcode/ia64.h"
16205+#endif /* __KERNEL__ */
16206+
16207+/* The primary opcode table is made up of the following: */
16208+struct ia64_main_table
16209+{
16210+ /* The entry in the string table that corresponds to the name of this
16211+ opcode. */
16212+ unsigned short name_index;
16213+
16214+ /* The type of opcode; corresponds to the TYPE field in
16215+ struct ia64_opcode. */
16216+ unsigned char opcode_type;
16217+
16218+ /* The number of outputs for this opcode. */
16219+ unsigned char num_outputs;
16220+
16221+ /* The base insn value for this opcode. It may be modified by completers. */
16222+ ia64_insn opcode;
16223+
16224+ /* The mask of valid bits in OPCODE. Zeros indicate operand fields. */
16225+ ia64_insn mask;
16226+
16227+ /* The operands of this instruction. Corresponds to the OPERANDS field
16228+ in struct ia64_opcode. */
16229+ unsigned char operands[5];
16230+
16231+ /* The flags for this instruction. Corresponds to the FLAGS field in
16232+ struct ia64_opcode. */
16233+ short flags;
16234+
16235+ /* The tree of completers for this instruction; this is an offset into
16236+ completer_table. */
16237+ short completers;
16238+};
16239+
16240+/* Each instruction has a set of possible "completers", or additional
16241+ suffixes that can alter the instruction's behavior, and which has
16242+ potentially different dependencies.
16243+
16244+ The completer entries modify certain bits in the instruction opcode.
16245+ Which bits are to be modified are marked by the BITS, MASK and
16246+ OFFSET fields. The completer entry may also note dependencies for the
16247+ opcode.
16248+
16249+ These completers are arranged in a DAG; the pointers are indexes
16250+ into the completer_table array. The completer DAG is searched by
16251+ find_completer () and ia64_find_matching_opcode ().
16252+
16253+ Note that each completer needs to be applied in turn, so that if we
16254+ have the instruction
16255+ cmp.lt.unc
16256+ the completer entries for both "lt" and "unc" would need to be applied
16257+ to the opcode's value.
16258+
16259+ Some instructions do not require any completers; these contain an
16260+ empty completer entry. Instructions that require a completer do
16261+ not contain an empty entry.
16262+
16263+ Terminal completers (those completers that validly complete an
16264+ instruction) are marked by having the TERMINAL_COMPLETER flag set.
16265+
16266+ Only dependencies listed in the terminal completer for an opcode are
16267+ considered to apply to that opcode instance. */
16268+
16269+struct ia64_completer_table
16270+{
16271+ /* The bit value that this completer sets. */
16272+ unsigned int bits;
16273+
16274+ /* And its mask. 1s are bits that are to be modified in the
16275+ instruction. */
16276+ unsigned int mask;
16277+
16278+ /* The entry in the string table that corresponds to the name of this
16279+ completer. */
16280+ unsigned short name_index;
16281+
16282+ /* An alternative completer, or -1 if this is the end of the chain. */
16283+ short alternative;
16284+
16285+ /* A pointer to the DAG of completers that can potentially follow
16286+ this one, or -1. */
16287+ short subentries;
16288+
16289+ /* The bit offset in the instruction where BITS and MASK should be
16290+ applied. */
16291+ unsigned char offset : 7;
16292+
16293+ unsigned char terminal_completer : 1;
16294+
16295+ /* Index into the dependency list table */
16296+ short dependencies;
16297+};
16298+
16299+/* This contains sufficient information for the disassembler to resolve
16300+ the complete name of the original instruction. */
16301+struct ia64_dis_names
16302+{
16303+ /* COMPLETER_INDEX represents the tree of completers that make up
16304+ the instruction. The LSB represents the top of the tree for the
16305+ specified instruction.
16306+
16307+ A 0 bit indicates to go to the next alternate completer via the
16308+ alternative field; a 1 bit indicates that the current completer
16309+ is part of the instruction, and to go down the subentries index.
16310+ We know we've reached the final completer when we run out of 1
16311+ bits.
16312+
16313+ There is always at least one 1 bit. */
16314+ unsigned int completer_index : 20;
16315+
16316+ /* The index in the main_table[] array for the instruction. */
16317+ unsigned short insn_index : 11;
16318+
16319+ /* If set, the next entry in this table is an alternate possibility
16320+ for this instruction encoding. Which one to use is determined by
16321+ the instruction type and other factors (see opcode_verify ()). */
16322+ unsigned int next_flag : 1;
16323+
16324+ /* The disassembly priority of this entry among instructions. */
16325+ unsigned short priority;
16326+};
16327+
16328+#endif
16329--- /dev/null
16330+++ b/arch/ia64/kdb/ia64-dis.c
16331@@ -0,0 +1,312 @@
16332+/* ia64-dis.c -- Disassemble ia64 instructions
16333+ Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
16334+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
16335+
16336+ This file is part of GDB, GAS, and the GNU binutils.
16337+
16338+ GDB, GAS, and the GNU binutils are free software; you can redistribute
16339+ them and/or modify them under the terms of the GNU General Public
16340+ License as published by the Free Software Foundation; either version
16341+ 2, or (at your option) any later version.
16342+
16343+ GDB, GAS, and the GNU binutils are distributed in the hope that they
16344+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
16345+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16346+ the GNU General Public License for more details.
16347+
16348+ You should have received a copy of the GNU General Public License
16349+ along with this file; see the file COPYING. If not, write to the
16350+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16351+ 02110-1301, USA. */
16352+
16353+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16354+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16355+ * required.
16356+ * Keith Owens <kaos@sgi.com> 15 May 2006
16357+ */
16358+
16359+#ifdef __KERNEL__
16360+#include <linux/kernel.h>
16361+#include <linux/string.h>
16362+#include <linux/dis-asm.h>
16363+#include "ia64.h"
16364+
16365+/* imported from bfd/libbfd.c for kernel */
16366+bfd_uint64_t
16367+bfd_getl64 (const void *p ATTRIBUTE_UNUSED)
16368+{
16369+#ifdef BFD_HOST_64_BIT
16370+ const bfd_byte *addr = p;
16371+ bfd_uint64_t v;
16372+
16373+ v = addr[7]; v <<= 8;
16374+ v |= addr[6]; v <<= 8;
16375+ v |= addr[5]; v <<= 8;
16376+ v |= addr[4]; v <<= 8;
16377+ v |= addr[3]; v <<= 8;
16378+ v |= addr[2]; v <<= 8;
16379+ v |= addr[1]; v <<= 8;
16380+ v |= addr[0];
16381+
16382+ return v;
16383+#else
16384+ BFD_FAIL();
16385+ return 0;
16386+#endif
16387+
16388+}
16389+
16390+#else /* __KERNEL__ */
16391+#include <assert.h>
16392+#include <string.h>
16393+
16394+#include "dis-asm.h"
16395+#include "opcode/ia64.h"
16396+#endif /* __KERNEL__ */
16397+
16398+#define NELEMS(a) ((int) (sizeof (a) / sizeof (a[0])))
16399+
16400+/* Disassemble ia64 instruction. */
16401+
16402+/* Return the instruction type for OPCODE found in unit UNIT. */
16403+
16404+static enum ia64_insn_type
16405+unit_to_type (ia64_insn opcode, enum ia64_unit unit)
16406+{
16407+ enum ia64_insn_type type;
16408+ int op;
16409+
16410+ op = IA64_OP (opcode);
16411+
16412+ if (op >= 8 && (unit == IA64_UNIT_I || unit == IA64_UNIT_M))
16413+ {
16414+ type = IA64_TYPE_A;
16415+ }
16416+ else
16417+ {
16418+ switch (unit)
16419+ {
16420+ case IA64_UNIT_I:
16421+ type = IA64_TYPE_I; break;
16422+ case IA64_UNIT_M:
16423+ type = IA64_TYPE_M; break;
16424+ case IA64_UNIT_B:
16425+ type = IA64_TYPE_B; break;
16426+ case IA64_UNIT_F:
16427+ type = IA64_TYPE_F; break;
16428+ case IA64_UNIT_L:
16429+ case IA64_UNIT_X:
16430+ type = IA64_TYPE_X; break;
16431+ default:
16432+ type = -1;
16433+ }
16434+ }
16435+ return type;
16436+}
16437+
16438+int
16439+print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
16440+{
16441+ ia64_insn t0, t1, slot[3], template, s_bit, insn;
16442+ int slotnum, j, status, need_comma, retval, slot_multiplier;
16443+ const struct ia64_operand *odesc;
16444+ const struct ia64_opcode *idesc;
16445+ const char *err, *str, *tname;
16446+ BFD_HOST_U_64_BIT value;
16447+ bfd_byte bundle[16];
16448+ enum ia64_unit unit;
16449+ char regname[16];
16450+
16451+ if (info->bytes_per_line == 0)
16452+ info->bytes_per_line = 6;
16453+ info->display_endian = info->endian;
16454+
16455+ slot_multiplier = info->bytes_per_line;
16456+ retval = slot_multiplier;
16457+
16458+ slotnum = (((long) memaddr) & 0xf) / slot_multiplier;
16459+ if (slotnum > 2)
16460+ return -1;
16461+
16462+ memaddr -= (memaddr & 0xf);
16463+ status = (*info->read_memory_func) (memaddr, bundle, sizeof (bundle), info);
16464+ if (status != 0)
16465+ {
16466+ (*info->memory_error_func) (status, memaddr, info);
16467+ return -1;
16468+ }
16469+ /* bundles are always in little-endian byte order */
16470+ t0 = bfd_getl64 (bundle);
16471+ t1 = bfd_getl64 (bundle + 8);
16472+ s_bit = t0 & 1;
16473+ template = (t0 >> 1) & 0xf;
16474+ slot[0] = (t0 >> 5) & 0x1ffffffffffLL;
16475+ slot[1] = ((t0 >> 46) & 0x3ffff) | ((t1 & 0x7fffff) << 18);
16476+ slot[2] = (t1 >> 23) & 0x1ffffffffffLL;
16477+
16478+ tname = ia64_templ_desc[template].name;
16479+ if (slotnum == 0)
16480+ (*info->fprintf_func) (info->stream, "[%s] ", tname);
16481+ else
16482+ (*info->fprintf_func) (info->stream, " ");
16483+
16484+ unit = ia64_templ_desc[template].exec_unit[slotnum];
16485+
16486+ if (template == 2 && slotnum == 1)
16487+ {
16488+ /* skip L slot in MLI template: */
16489+ slotnum = 2;
16490+ retval += slot_multiplier;
16491+ }
16492+
16493+ insn = slot[slotnum];
16494+
16495+ if (unit == IA64_UNIT_NIL)
16496+ goto decoding_failed;
16497+
16498+ idesc = ia64_dis_opcode (insn, unit_to_type (insn, unit));
16499+ if (idesc == NULL)
16500+ goto decoding_failed;
16501+
16502+ /* print predicate, if any: */
16503+
16504+ if ((idesc->flags & IA64_OPCODE_NO_PRED)
16505+ || (insn & 0x3f) == 0)
16506+ (*info->fprintf_func) (info->stream, " ");
16507+ else
16508+ (*info->fprintf_func) (info->stream, "(p%02d) ", (int)(insn & 0x3f));
16509+
16510+ /* now the actual instruction: */
16511+
16512+ (*info->fprintf_func) (info->stream, "%s", idesc->name);
16513+ if (idesc->operands[0])
16514+ (*info->fprintf_func) (info->stream, " ");
16515+
16516+ need_comma = 0;
16517+ for (j = 0; j < NELEMS (idesc->operands) && idesc->operands[j]; ++j)
16518+ {
16519+ odesc = elf64_ia64_operands + idesc->operands[j];
16520+
16521+ if (need_comma)
16522+ (*info->fprintf_func) (info->stream, ",");
16523+
16524+ if (odesc - elf64_ia64_operands == IA64_OPND_IMMU64)
16525+ {
16526+ /* special case of 64 bit immediate load: */
16527+ value = ((insn >> 13) & 0x7f) | (((insn >> 27) & 0x1ff) << 7)
16528+ | (((insn >> 22) & 0x1f) << 16) | (((insn >> 21) & 0x1) << 21)
16529+ | (slot[1] << 22) | (((insn >> 36) & 0x1) << 63);
16530+ }
16531+ else if (odesc - elf64_ia64_operands == IA64_OPND_IMMU62)
16532+ {
16533+ /* 62-bit immediate for nop.x/break.x */
16534+ value = ((slot[1] & 0x1ffffffffffLL) << 21)
16535+ | (((insn >> 36) & 0x1) << 20)
16536+ | ((insn >> 6) & 0xfffff);
16537+ }
16538+ else if (odesc - elf64_ia64_operands == IA64_OPND_TGT64)
16539+ {
16540+ /* 60-bit immediate for long branches. */
16541+ value = (((insn >> 13) & 0xfffff)
16542+ | (((insn >> 36) & 1) << 59)
16543+ | (((slot[1] >> 2) & 0x7fffffffffLL) << 20)) << 4;
16544+ }
16545+ else
16546+ {
16547+ err = (*odesc->extract) (odesc, insn, &value);
16548+ if (err)
16549+ {
16550+ (*info->fprintf_func) (info->stream, "%s", err);
16551+ goto done;
16552+ }
16553+ }
16554+
16555+ switch (odesc->class)
16556+ {
16557+ case IA64_OPND_CLASS_CST:
16558+ (*info->fprintf_func) (info->stream, "%s", odesc->str);
16559+ break;
16560+
16561+ case IA64_OPND_CLASS_REG:
16562+ if (odesc->str[0] == 'a' && odesc->str[1] == 'r')
16563+ {
16564+ switch (value)
16565+ {
16566+ case 0: case 1: case 2: case 3:
16567+ case 4: case 5: case 6: case 7:
16568+ sprintf (regname, "ar.k%u", (unsigned int) value);
16569+ break;
16570+ case 16: strcpy (regname, "ar.rsc"); break;
16571+ case 17: strcpy (regname, "ar.bsp"); break;
16572+ case 18: strcpy (regname, "ar.bspstore"); break;
16573+ case 19: strcpy (regname, "ar.rnat"); break;
16574+ case 32: strcpy (regname, "ar.ccv"); break;
16575+ case 36: strcpy (regname, "ar.unat"); break;
16576+ case 40: strcpy (regname, "ar.fpsr"); break;
16577+ case 44: strcpy (regname, "ar.itc"); break;
16578+ case 64: strcpy (regname, "ar.pfs"); break;
16579+ case 65: strcpy (regname, "ar.lc"); break;
16580+ case 66: strcpy (regname, "ar.ec"); break;
16581+ default:
16582+ sprintf (regname, "ar%u", (unsigned int) value);
16583+ break;
16584+ }
16585+ (*info->fprintf_func) (info->stream, "%s", regname);
16586+ }
16587+ else
16588+ (*info->fprintf_func) (info->stream, "%s%d", odesc->str, (int)value);
16589+ break;
16590+
16591+ case IA64_OPND_CLASS_IND:
16592+ (*info->fprintf_func) (info->stream, "%s[r%d]", odesc->str, (int)value);
16593+ break;
16594+
16595+ case IA64_OPND_CLASS_ABS:
16596+ str = 0;
16597+ if (odesc - elf64_ia64_operands == IA64_OPND_MBTYPE4)
16598+ switch (value)
16599+ {
16600+ case 0x0: str = "@brcst"; break;
16601+ case 0x8: str = "@mix"; break;
16602+ case 0x9: str = "@shuf"; break;
16603+ case 0xa: str = "@alt"; break;
16604+ case 0xb: str = "@rev"; break;
16605+ }
16606+
16607+ if (str)
16608+ (*info->fprintf_func) (info->stream, "%s", str);
16609+ else if (odesc->flags & IA64_OPND_FLAG_DECIMAL_SIGNED)
16610+ (*info->fprintf_func) (info->stream, "%lld", (long long) value);
16611+ else if (odesc->flags & IA64_OPND_FLAG_DECIMAL_UNSIGNED)
16612+ (*info->fprintf_func) (info->stream, "%llu", (long long) value);
16613+ else
16614+ (*info->fprintf_func) (info->stream, "0x%llx", (long long) value);
16615+ break;
16616+
16617+ case IA64_OPND_CLASS_REL:
16618+ (*info->print_address_func) (memaddr + value, info);
16619+ break;
16620+ }
16621+
16622+ need_comma = 1;
16623+ if (j + 1 == idesc->num_outputs)
16624+ {
16625+ (*info->fprintf_func) (info->stream, "=");
16626+ need_comma = 0;
16627+ }
16628+ }
16629+ if (slotnum + 1 == ia64_templ_desc[template].group_boundary
16630+ || ((slotnum == 2) && s_bit))
16631+ (*info->fprintf_func) (info->stream, ";;");
16632+
16633+ done:
16634+ ia64_free_opcode ((struct ia64_opcode *)idesc);
16635+ failed:
16636+ if (slotnum == 2)
16637+ retval += 16 - 3*slot_multiplier;
16638+ return retval;
16639+
16640+ decoding_failed:
16641+ (*info->fprintf_func) (info->stream, " data8 %#011llx", (long long) insn);
16642+ goto failed;
16643+}
16644--- /dev/null
16645+++ b/arch/ia64/kdb/ia64-opc.c
16646@@ -0,0 +1,749 @@
16647+/* ia64-opc.c -- Functions to access the compacted opcode table
16648+ Copyright 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
16649+ Written by Bob Manson of Cygnus Solutions, <manson@cygnus.com>
16650+
16651+ This file is part of GDB, GAS, and the GNU binutils.
16652+
16653+ GDB, GAS, and the GNU binutils are free software; you can redistribute
16654+ them and/or modify them under the terms of the GNU General Public
16655+ License as published by the Free Software Foundation; either version
16656+ 2, or (at your option) any later version.
16657+
16658+ GDB, GAS, and the GNU binutils are distributed in the hope that they
16659+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
16660+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16661+ the GNU General Public License for more details.
16662+
16663+ You should have received a copy of the GNU General Public License
16664+ along with this file; see the file COPYING. If not, write to the
16665+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16666+ 02110-1301, USA. */
16667+
16668+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16669+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16670+ * required.
16671+ * Keith Owens <kaos@sgi.com> 15 May 2006
16672+ */
16673+
16674+#ifdef __KERNEL__
16675+#include <linux/kernel.h>
16676+#include <linux/kdb.h>
16677+#include <linux/kdbprivate.h>
16678+#include <asm/ansidecl.h>
16679+
16680+#define xstrdup(string) ({ char *res = kdb_strdup(string, GFP_ATOMIC); if (!res) BUG(); res; })
16681+#define xmalloc(size) ({ void *res = debug_kmalloc(size, GFP_ATOMIC); if (!res) BUG(); res; })
16682+#define free(address) debug_kfree(address)
16683+#define abort() BUG()
16684+
16685+#else /* __KERNEL__ */
16686+#include "ansidecl.h"
16687+#include "sysdep.h"
16688+#include "libiberty.h"
16689+#endif /* __KERNEL__ */
16690+#include "ia64-asmtab.h"
16691+#include "ia64-asmtab.c"
16692+
16693+static void get_opc_prefix (const char **, char *);
16694+static short int find_string_ent (const char *);
16695+static short int find_main_ent (short int);
16696+static short int find_completer (short int, short int, const char *);
16697+static ia64_insn apply_completer (ia64_insn, int);
16698+static int extract_op_bits (int, int, int);
16699+static int extract_op (int, int *, unsigned int *);
16700+static int opcode_verify (ia64_insn, int, enum ia64_insn_type);
16701+static int locate_opcode_ent (ia64_insn, enum ia64_insn_type);
16702+static struct ia64_opcode *make_ia64_opcode
16703+ (ia64_insn, const char *, int, int);
16704+static struct ia64_opcode *ia64_find_matching_opcode
16705+ (const char *, short int);
16706+
16707+const struct ia64_templ_desc ia64_templ_desc[16] =
16708+ {
16709+ { 0, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_I }, "MII" }, /* 0 */
16710+ { 2, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_I }, "MII" },
16711+ { 0, { IA64_UNIT_M, IA64_UNIT_L, IA64_UNIT_X }, "MLX" },
16712+ { 0, { 0, }, "-3-" },
16713+ { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_I }, "MMI" }, /* 4 */
16714+ { 1, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_I }, "MMI" },
16715+ { 0, { IA64_UNIT_M, IA64_UNIT_F, IA64_UNIT_I }, "MFI" },
16716+ { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_F }, "MMF" },
16717+ { 0, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_B }, "MIB" }, /* 8 */
16718+ { 0, { IA64_UNIT_M, IA64_UNIT_B, IA64_UNIT_B }, "MBB" },
16719+ { 0, { 0, }, "-a-" },
16720+ { 0, { IA64_UNIT_B, IA64_UNIT_B, IA64_UNIT_B }, "BBB" },
16721+ { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_B }, "MMB" }, /* c */
16722+ { 0, { 0, }, "-d-" },
16723+ { 0, { IA64_UNIT_M, IA64_UNIT_F, IA64_UNIT_B }, "MFB" },
16724+ { 0, { 0, }, "-f-" },
16725+ };
16726+
16727+
16728+/* Copy the prefix contained in *PTR (up to a '.' or a NUL) to DEST.
16729+ PTR will be adjusted to point to the start of the next portion
16730+ of the opcode, or at the NUL character. */
16731+
16732+static void
16733+get_opc_prefix (const char **ptr, char *dest)
16734+{
16735+ char *c = strchr (*ptr, '.');
16736+ if (c != NULL)
16737+ {
16738+ memcpy (dest, *ptr, c - *ptr);
16739+ dest[c - *ptr] = '\0';
16740+ *ptr = c + 1;
16741+ }
16742+ else
16743+ {
16744+ int l = strlen (*ptr);
16745+ memcpy (dest, *ptr, l);
16746+ dest[l] = '\0';
16747+ *ptr += l;
16748+ }
16749+}
16750+\f
16751+/* Find the index of the entry in the string table corresponding to
16752+ STR; return -1 if one does not exist. */
16753+
16754+static short
16755+find_string_ent (const char *str)
16756+{
16757+ short start = 0;
16758+ short end = sizeof (ia64_strings) / sizeof (const char *);
16759+ short i = (start + end) / 2;
16760+
16761+ if (strcmp (str, ia64_strings[end - 1]) > 0)
16762+ {
16763+ return -1;
16764+ }
16765+ while (start <= end)
16766+ {
16767+ int c = strcmp (str, ia64_strings[i]);
16768+ if (c < 0)
16769+ {
16770+ end = i - 1;
16771+ }
16772+ else if (c == 0)
16773+ {
16774+ return i;
16775+ }
16776+ else
16777+ {
16778+ start = i + 1;
16779+ }
16780+ i = (start + end) / 2;
16781+ }
16782+ return -1;
16783+}
16784+\f
16785+/* Find the opcode in the main opcode table whose name is STRINGINDEX, or
16786+ return -1 if one does not exist. */
16787+
16788+static short
16789+find_main_ent (short nameindex)
16790+{
16791+ short start = 0;
16792+ short end = sizeof (main_table) / sizeof (struct ia64_main_table);
16793+ short i = (start + end) / 2;
16794+
16795+ if (nameindex < main_table[0].name_index
16796+ || nameindex > main_table[end - 1].name_index)
16797+ {
16798+ return -1;
16799+ }
16800+ while (start <= end)
16801+ {
16802+ if (nameindex < main_table[i].name_index)
16803+ {
16804+ end = i - 1;
16805+ }
16806+ else if (nameindex == main_table[i].name_index)
16807+ {
16808+ while (i > 0 && main_table[i - 1].name_index == nameindex)
16809+ {
16810+ i--;
16811+ }
16812+ return i;
16813+ }
16814+ else
16815+ {
16816+ start = i + 1;
16817+ }
16818+ i = (start + end) / 2;
16819+ }
16820+ return -1;
16821+}
16822+\f
16823+/* Find the index of the entry in the completer table that is part of
16824+ MAIN_ENT (starting from PREV_COMPLETER) that matches NAME, or
16825+ return -1 if one does not exist. */
16826+
16827+static short
16828+find_completer (short main_ent, short prev_completer, const char *name)
16829+{
16830+ short name_index = find_string_ent (name);
16831+
16832+ if (name_index < 0)
16833+ {
16834+ return -1;
16835+ }
16836+
16837+ if (prev_completer == -1)
16838+ {
16839+ prev_completer = main_table[main_ent].completers;
16840+ }
16841+ else
16842+ {
16843+ prev_completer = completer_table[prev_completer].subentries;
16844+ }
16845+
16846+ while (prev_completer != -1)
16847+ {
16848+ if (completer_table[prev_completer].name_index == name_index)
16849+ {
16850+ return prev_completer;
16851+ }
16852+ prev_completer = completer_table[prev_completer].alternative;
16853+ }
16854+ return -1;
16855+}
16856+\f
16857+/* Apply the completer referred to by COMPLETER_INDEX to OPCODE, and
16858+ return the result. */
16859+
16860+static ia64_insn
16861+apply_completer (ia64_insn opcode, int completer_index)
16862+{
16863+ ia64_insn mask = completer_table[completer_index].mask;
16864+ ia64_insn bits = completer_table[completer_index].bits;
16865+ int shiftamt = (completer_table[completer_index].offset & 63);
16866+
16867+ mask = mask << shiftamt;
16868+ bits = bits << shiftamt;
16869+ opcode = (opcode & ~mask) | bits;
16870+ return opcode;
16871+}
16872+\f
16873+/* Extract BITS number of bits starting from OP_POINTER + BITOFFSET in
16874+ the dis_table array, and return its value. (BITOFFSET is numbered
16875+ starting from MSB to LSB, so a BITOFFSET of 0 indicates the MSB of the
16876+ first byte in OP_POINTER.) */
16877+
16878+static int
16879+extract_op_bits (int op_pointer, int bitoffset, int bits)
16880+{
16881+ int res = 0;
16882+
16883+ op_pointer += (bitoffset / 8);
16884+
16885+ if (bitoffset % 8)
16886+ {
16887+ unsigned int op = dis_table[op_pointer++];
16888+ int numb = 8 - (bitoffset % 8);
16889+ int mask = (1 << numb) - 1;
16890+ int bata = (bits < numb) ? bits : numb;
16891+ int delta = numb - bata;
16892+
16893+ res = (res << bata) | ((op & mask) >> delta);
16894+ bitoffset += bata;
16895+ bits -= bata;
16896+ }
16897+ while (bits >= 8)
16898+ {
16899+ res = (res << 8) | (dis_table[op_pointer++] & 255);
16900+ bits -= 8;
16901+ }
16902+ if (bits > 0)
16903+ {
16904+ unsigned int op = (dis_table[op_pointer++] & 255);
16905+ res = (res << bits) | (op >> (8 - bits));
16906+ }
16907+ return res;
16908+}
16909+\f
16910+/* Examine the state machine entry at OP_POINTER in the dis_table
16911+ array, and extract its values into OPVAL and OP. The length of the
16912+ state entry in bits is returned. */
16913+
16914+static int
16915+extract_op (int op_pointer, int *opval, unsigned int *op)
16916+{
16917+ int oplen = 5;
16918+
16919+ *op = dis_table[op_pointer];
16920+
16921+ if ((*op) & 0x40)
16922+ {
16923+ opval[0] = extract_op_bits (op_pointer, oplen, 5);
16924+ oplen += 5;
16925+ }
16926+ switch ((*op) & 0x30)
16927+ {
16928+ case 0x10:
16929+ {
16930+ opval[1] = extract_op_bits (op_pointer, oplen, 8);
16931+ oplen += 8;
16932+ opval[1] += op_pointer;
16933+ break;
16934+ }
16935+ case 0x20:
16936+ {
16937+ opval[1] = extract_op_bits (op_pointer, oplen, 16);
16938+ if (! (opval[1] & 32768))
16939+ {
16940+ opval[1] += op_pointer;
16941+ }
16942+ oplen += 16;
16943+ break;
16944+ }
16945+ case 0x30:
16946+ {
16947+ oplen--;
16948+ opval[2] = extract_op_bits (op_pointer, oplen, 12);
16949+ oplen += 12;
16950+ opval[2] |= 32768;
16951+ break;
16952+ }
16953+ }
16954+ if (((*op) & 0x08) && (((*op) & 0x30) != 0x30))
16955+ {
16956+ opval[2] = extract_op_bits (op_pointer, oplen, 16);
16957+ oplen += 16;
16958+ if (! (opval[2] & 32768))
16959+ {
16960+ opval[2] += op_pointer;
16961+ }
16962+ }
16963+ return oplen;
16964+}
16965+\f
16966+/* Returns a non-zero value if the opcode in the main_table list at
16967+ PLACE matches OPCODE and is of type TYPE. */
16968+
16969+static int
16970+opcode_verify (ia64_insn opcode, int place, enum ia64_insn_type type)
16971+{
16972+ if (main_table[place].opcode_type != type)
16973+ {
16974+ return 0;
16975+ }
16976+ if (main_table[place].flags
16977+ & (IA64_OPCODE_F2_EQ_F3 | IA64_OPCODE_LEN_EQ_64MCNT))
16978+ {
16979+ const struct ia64_operand *o1, *o2;
16980+ ia64_insn f2, f3;
16981+
16982+ if (main_table[place].flags & IA64_OPCODE_F2_EQ_F3)
16983+ {
16984+ o1 = elf64_ia64_operands + IA64_OPND_F2;
16985+ o2 = elf64_ia64_operands + IA64_OPND_F3;
16986+ (*o1->extract) (o1, opcode, &f2);
16987+ (*o2->extract) (o2, opcode, &f3);
16988+ if (f2 != f3)
16989+ return 0;
16990+ }
16991+ else
16992+ {
16993+ ia64_insn len, count;
16994+
16995+ /* length must equal 64-count: */
16996+ o1 = elf64_ia64_operands + IA64_OPND_LEN6;
16997+ o2 = elf64_ia64_operands + main_table[place].operands[2];
16998+ (*o1->extract) (o1, opcode, &len);
16999+ (*o2->extract) (o2, opcode, &count);
17000+ if (len != 64 - count)
17001+ return 0;
17002+ }
17003+ }
17004+ return 1;
17005+}
17006+\f
17007+/* Find an instruction entry in the ia64_dis_names array that matches
17008+ opcode OPCODE and is of type TYPE. Returns either a positive index
17009+ into the array, or a negative value if an entry for OPCODE could
17010+ not be found. Checks all matches and returns the one with the highest
17011+ priority. */
17012+
17013+static int
17014+locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
17015+{
17016+ int currtest[41];
17017+ int bitpos[41];
17018+ int op_ptr[41];
17019+ int currstatenum = 0;
17020+ short found_disent = -1;
17021+ short found_priority = -1;
17022+
17023+ currtest[currstatenum] = 0;
17024+ op_ptr[currstatenum] = 0;
17025+ bitpos[currstatenum] = 40;
17026+
17027+ while (1)
17028+ {
17029+ int op_pointer = op_ptr[currstatenum];
17030+ unsigned int op;
17031+ int currbitnum = bitpos[currstatenum];
17032+ int oplen;
17033+ int opval[3] = {0};
17034+ int next_op;
17035+ int currbit;
17036+
17037+ oplen = extract_op (op_pointer, opval, &op);
17038+
17039+ bitpos[currstatenum] = currbitnum;
17040+
17041+ /* Skip opval[0] bits in the instruction. */
17042+ if (op & 0x40)
17043+ {
17044+ currbitnum -= opval[0];
17045+ }
17046+
17047+ /* The value of the current bit being tested. */
17048+ currbit = opcode & (((ia64_insn) 1) << currbitnum) ? 1 : 0;
17049+ next_op = -1;
17050+
17051+ /* We always perform the tests specified in the current state in
17052+ a particular order, falling through to the next test if the
17053+ previous one failed. */
17054+ switch (currtest[currstatenum])
17055+ {
17056+ case 0:
17057+ currtest[currstatenum]++;
17058+ if (currbit == 0 && (op & 0x80))
17059+ {
17060+ /* Check for a zero bit. If this test solely checks for
17061+ a zero bit, we can check for up to 8 consecutive zero
17062+ bits (the number to check is specified by the lower 3
17063+ bits in the state code.)
17064+
17065+ If the state instruction matches, we go to the very
17066+ next state instruction; otherwise, try the next test. */
17067+
17068+ if ((op & 0xf8) == 0x80)
17069+ {
17070+ int count = op & 0x7;
17071+ int x;
17072+
17073+ for (x = 0; x <= count; x++)
17074+ {
17075+ int i =
17076+ opcode & (((ia64_insn) 1) << (currbitnum - x)) ? 1 : 0;
17077+ if (i)
17078+ {
17079+ break;
17080+ }
17081+ }
17082+ if (x > count)
17083+ {
17084+ next_op = op_pointer + ((oplen + 7) / 8);
17085+ currbitnum -= count;
17086+ break;
17087+ }
17088+ }
17089+ else if (! currbit)
17090+ {
17091+ next_op = op_pointer + ((oplen + 7) / 8);
17092+ break;
17093+ }
17094+ }
17095+ /* FALLTHROUGH */
17096+ case 1:
17097+ /* If the bit in the instruction is one, go to the state
17098+ instruction specified by opval[1]. */
17099+ currtest[currstatenum]++;
17100+ if (currbit && (op & 0x30) != 0 && ((op & 0x30) != 0x30))
17101+ {
17102+ next_op = opval[1];
17103+ break;
17104+ }
17105+ /* FALLTHROUGH */
17106+ case 2:
17107+ /* Don't care. Skip the current bit and go to the state
17108+ instruction specified by opval[2].
17109+
17110+ An encoding of 0x30 is special; this means that a 12-bit
17111+ offset into the ia64_dis_names[] array is specified. */
17112+ currtest[currstatenum]++;
17113+ if ((op & 0x08) || ((op & 0x30) == 0x30))
17114+ {
17115+ next_op = opval[2];
17116+ break;
17117+ }
17118+ }
17119+
17120+ /* If bit 15 is set in the address of the next state, an offset
17121+ in the ia64_dis_names array was specified instead. We then
17122+ check to see if an entry in the list of opcodes matches the
17123+ opcode we were given; if so, we have succeeded. */
17124+
17125+ if ((next_op >= 0) && (next_op & 32768))
17126+ {
17127+ short disent = next_op & 32767;
17128+ short priority = -1;
17129+
17130+ if (next_op > 65535)
17131+ {
17132+ abort ();
17133+ }
17134+
17135+ /* Run through the list of opcodes to check, trying to find
17136+ one that matches. */
17137+ while (disent >= 0)
17138+ {
17139+ int place = ia64_dis_names[disent].insn_index;
17140+
17141+ priority = ia64_dis_names[disent].priority;
17142+
17143+ if (opcode_verify (opcode, place, type)
17144+ && priority > found_priority)
17145+ {
17146+ break;
17147+ }
17148+ if (ia64_dis_names[disent].next_flag)
17149+ {
17150+ disent++;
17151+ }
17152+ else
17153+ {
17154+ disent = -1;
17155+ }
17156+ }
17157+
17158+ if (disent >= 0)
17159+ {
17160+ found_disent = disent;
17161+ found_priority = priority;
17162+ }
17163+ /* Try the next test in this state, regardless of whether a match
17164+ was found. */
17165+ next_op = -2;
17166+ }
17167+
17168+ /* next_op == -1 is "back up to the previous state".
17169+ next_op == -2 is "stay in this state and try the next test".
17170+ Otherwise, transition to the state indicated by next_op. */
17171+
17172+ if (next_op == -1)
17173+ {
17174+ currstatenum--;
17175+ if (currstatenum < 0)
17176+ {
17177+ return found_disent;
17178+ }
17179+ }
17180+ else if (next_op >= 0)
17181+ {
17182+ currstatenum++;
17183+ bitpos[currstatenum] = currbitnum - 1;
17184+ op_ptr[currstatenum] = next_op;
17185+ currtest[currstatenum] = 0;
17186+ }
17187+ }
17188+}
17189+\f
17190+/* Construct an ia64_opcode entry based on OPCODE, NAME and PLACE. */
17191+
17192+static struct ia64_opcode *
17193+make_ia64_opcode (ia64_insn opcode, const char *name, int place, int depind)
17194+{
17195+ struct ia64_opcode *res =
17196+ (struct ia64_opcode *) xmalloc (sizeof (struct ia64_opcode));
17197+ res->name = xstrdup (name);
17198+ res->type = main_table[place].opcode_type;
17199+ res->num_outputs = main_table[place].num_outputs;
17200+ res->opcode = opcode;
17201+ res->mask = main_table[place].mask;
17202+ res->operands[0] = main_table[place].operands[0];
17203+ res->operands[1] = main_table[place].operands[1];
17204+ res->operands[2] = main_table[place].operands[2];
17205+ res->operands[3] = main_table[place].operands[3];
17206+ res->operands[4] = main_table[place].operands[4];
17207+ res->flags = main_table[place].flags;
17208+ res->ent_index = place;
17209+ res->dependencies = &op_dependencies[depind];
17210+ return res;
17211+}
17212+\f
17213+/* Determine the ia64_opcode entry for the opcode specified by INSN
17214+ and TYPE. If a valid entry is not found, return NULL. */
17215+struct ia64_opcode *
17216+ia64_dis_opcode (ia64_insn insn, enum ia64_insn_type type)
17217+{
17218+ int disent = locate_opcode_ent (insn, type);
17219+
17220+ if (disent < 0)
17221+ {
17222+ return NULL;
17223+ }
17224+ else
17225+ {
17226+ unsigned int cb = ia64_dis_names[disent].completer_index;
17227+ static char name[128];
17228+ int place = ia64_dis_names[disent].insn_index;
17229+ int ci = main_table[place].completers;
17230+ ia64_insn tinsn = main_table[place].opcode;
17231+
17232+ strcpy (name, ia64_strings [main_table[place].name_index]);
17233+
17234+ while (cb)
17235+ {
17236+ if (cb & 1)
17237+ {
17238+ int cname = completer_table[ci].name_index;
17239+
17240+ tinsn = apply_completer (tinsn, ci);
17241+
17242+ if (ia64_strings[cname][0] != '\0')
17243+ {
17244+ strcat (name, ".");
17245+ strcat (name, ia64_strings[cname]);
17246+ }
17247+ if (cb != 1)
17248+ {
17249+ ci = completer_table[ci].subentries;
17250+ }
17251+ }
17252+ else
17253+ {
17254+ ci = completer_table[ci].alternative;
17255+ }
17256+ if (ci < 0)
17257+ {
17258+ abort ();
17259+ }
17260+ cb = cb >> 1;
17261+ }
17262+ if (tinsn != (insn & main_table[place].mask))
17263+ {
17264+ abort ();
17265+ }
17266+ return make_ia64_opcode (insn, name, place,
17267+ completer_table[ci].dependencies);
17268+ }
17269+}
17270+\f
17271+/* Search the main_opcode table starting from PLACE for an opcode that
17272+ matches NAME. Return NULL if one is not found. */
17273+
17274+static struct ia64_opcode *
17275+ia64_find_matching_opcode (const char *name, short place)
17276+{
17277+ char op[129];
17278+ const char *suffix;
17279+ short name_index;
17280+
17281+ if (strlen (name) > 128)
17282+ {
17283+ return NULL;
17284+ }
17285+ suffix = name;
17286+ get_opc_prefix (&suffix, op);
17287+ name_index = find_string_ent (op);
17288+ if (name_index < 0)
17289+ {
17290+ return NULL;
17291+ }
17292+
17293+ while (main_table[place].name_index == name_index)
17294+ {
17295+ const char *curr_suffix = suffix;
17296+ ia64_insn curr_insn = main_table[place].opcode;
17297+ short completer = -1;
17298+
17299+ do {
17300+ if (suffix[0] == '\0')
17301+ {
17302+ completer = find_completer (place, completer, suffix);
17303+ }
17304+ else
17305+ {
17306+ get_opc_prefix (&curr_suffix, op);
17307+ completer = find_completer (place, completer, op);
17308+ }
17309+ if (completer != -1)
17310+ {
17311+ curr_insn = apply_completer (curr_insn, completer);
17312+ }
17313+ } while (completer != -1 && curr_suffix[0] != '\0');
17314+
17315+ if (completer != -1 && curr_suffix[0] == '\0'
17316+ && completer_table[completer].terminal_completer)
17317+ {
17318+ int depind = completer_table[completer].dependencies;
17319+ return make_ia64_opcode (curr_insn, name, place, depind);
17320+ }
17321+ else
17322+ {
17323+ place++;
17324+ }
17325+ }
17326+ return NULL;
17327+}
17328+\f
17329+/* Find the next opcode after PREV_ENT that matches PREV_ENT, or return NULL
17330+ if one does not exist.
17331+
17332+ It is the caller's responsibility to invoke ia64_free_opcode () to
17333+ release any resources used by the returned entry. */
17334+
17335+struct ia64_opcode *
17336+ia64_find_next_opcode (struct ia64_opcode *prev_ent)
17337+{
17338+ return ia64_find_matching_opcode (prev_ent->name,
17339+ prev_ent->ent_index + 1);
17340+}
17341+
17342+/* Find the first opcode that matches NAME, or return NULL if it does
17343+ not exist.
17344+
17345+ It is the caller's responsibility to invoke ia64_free_opcode () to
17346+ release any resources used by the returned entry. */
17347+
17348+struct ia64_opcode *
17349+ia64_find_opcode (const char *name)
17350+{
17351+ char op[129];
17352+ const char *suffix;
17353+ short place;
17354+ short name_index;
17355+
17356+ if (strlen (name) > 128)
17357+ {
17358+ return NULL;
17359+ }
17360+ suffix = name;
17361+ get_opc_prefix (&suffix, op);
17362+ name_index = find_string_ent (op);
17363+ if (name_index < 0)
17364+ {
17365+ return NULL;
17366+ }
17367+
17368+ place = find_main_ent (name_index);
17369+
17370+ if (place < 0)
17371+ {
17372+ return NULL;
17373+ }
17374+ return ia64_find_matching_opcode (name, place);
17375+}
17376+
17377+/* Free any resources used by ENT. */
17378+void
17379+ia64_free_opcode (struct ia64_opcode *ent)
17380+{
17381+ free ((void *)ent->name);
17382+ free (ent);
17383+}
17384+
17385+const struct ia64_dependency *
17386+ia64_find_dependency (int index)
17387+{
17388+ index = DEP(index);
17389+
17390+ if (index < 0
17391+ || index >= (int)(sizeof(dependencies) / sizeof(dependencies[0])))
17392+ return NULL;
17393+
17394+ return &dependencies[index];
17395+}
17396--- /dev/null
17397+++ b/arch/ia64/kdb/ia64-opc.h
17398@@ -0,0 +1,141 @@
17399+/* ia64-opc.h -- IA-64 opcode table.
17400+ Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
17401+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
17402+
17403+ This file is part of GDB, GAS, and the GNU binutils.
17404+
17405+ GDB, GAS, and the GNU binutils are free software; you can redistribute
17406+ them and/or modify them under the terms of the GNU General Public
17407+ License as published by the Free Software Foundation; either version
17408+ 2, or (at your option) any later version.
17409+
17410+ GDB, GAS, and the GNU binutils are distributed in the hope that they
17411+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
17412+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
17413+ the GNU General Public License for more details.
17414+
17415+ You should have received a copy of the GNU General Public License
17416+ along with this file; see the file COPYING. If not, write to the
17417+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
17418+ 02110-1301, USA. */
17419+
17420+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
17421+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
17422+ * required.
17423+ * Keith Owens <kaos@sgi.com> 15 May 2006
17424+ */
17425+
17426+#ifndef IA64_OPC_H
17427+#define IA64_OPC_H
17428+
17429+#ifdef __KERNEL__
17430+#include "ia64.h"
17431+#else /* __KERNEL__ */
17432+#include "opcode/ia64.h"
17433+#endif /* __KERNEL__ */
17434+
17435+/* define a couple of abbreviations: */
17436+
17437+#define bOp(x) (((ia64_insn) ((x) & 0xf)) << 37)
17438+#define mOp bOp (-1)
17439+#define Op(x) bOp (x), mOp
17440+
17441+#define FIRST IA64_OPCODE_FIRST
17442+#define X_IN_MLX IA64_OPCODE_X_IN_MLX
17443+#define LAST IA64_OPCODE_LAST
17444+#define PRIV IA64_OPCODE_PRIV
17445+#define NO_PRED IA64_OPCODE_NO_PRED
17446+#define SLOT2 IA64_OPCODE_SLOT2
17447+#define PSEUDO IA64_OPCODE_PSEUDO
17448+#define F2_EQ_F3 IA64_OPCODE_F2_EQ_F3
17449+#define LEN_EQ_64MCNT IA64_OPCODE_LEN_EQ_64MCNT
17450+#define MOD_RRBS IA64_OPCODE_MOD_RRBS
17451+#define POSTINC IA64_OPCODE_POSTINC
17452+
17453+#define AR_CCV IA64_OPND_AR_CCV
17454+#define AR_PFS IA64_OPND_AR_PFS
17455+#define AR_CSD IA64_OPND_AR_CSD
17456+#define C1 IA64_OPND_C1
17457+#define C8 IA64_OPND_C8
17458+#define C16 IA64_OPND_C16
17459+#define GR0 IA64_OPND_GR0
17460+#define IP IA64_OPND_IP
17461+#define PR IA64_OPND_PR
17462+#define PR_ROT IA64_OPND_PR_ROT
17463+#define PSR IA64_OPND_PSR
17464+#define PSR_L IA64_OPND_PSR_L
17465+#define PSR_UM IA64_OPND_PSR_UM
17466+
17467+#define AR3 IA64_OPND_AR3
17468+#define B1 IA64_OPND_B1
17469+#define B2 IA64_OPND_B2
17470+#define CR3 IA64_OPND_CR3
17471+#define F1 IA64_OPND_F1
17472+#define F2 IA64_OPND_F2
17473+#define F3 IA64_OPND_F3
17474+#define F4 IA64_OPND_F4
17475+#define P1 IA64_OPND_P1
17476+#define P2 IA64_OPND_P2
17477+#define R1 IA64_OPND_R1
17478+#define R2 IA64_OPND_R2
17479+#define R3 IA64_OPND_R3
17480+#define R3_2 IA64_OPND_R3_2
17481+
17482+#define CPUID_R3 IA64_OPND_CPUID_R3
17483+#define DBR_R3 IA64_OPND_DBR_R3
17484+#define DTR_R3 IA64_OPND_DTR_R3
17485+#define ITR_R3 IA64_OPND_ITR_R3
17486+#define IBR_R3 IA64_OPND_IBR_R3
17487+#define MR3 IA64_OPND_MR3
17488+#define MSR_R3 IA64_OPND_MSR_R3
17489+#define PKR_R3 IA64_OPND_PKR_R3
17490+#define PMC_R3 IA64_OPND_PMC_R3
17491+#define PMD_R3 IA64_OPND_PMD_R3
17492+#define RR_R3 IA64_OPND_RR_R3
17493+
17494+#define CCNT5 IA64_OPND_CCNT5
17495+#define CNT2a IA64_OPND_CNT2a
17496+#define CNT2b IA64_OPND_CNT2b
17497+#define CNT2c IA64_OPND_CNT2c
17498+#define CNT5 IA64_OPND_CNT5
17499+#define CNT6 IA64_OPND_CNT6
17500+#define CPOS6a IA64_OPND_CPOS6a
17501+#define CPOS6b IA64_OPND_CPOS6b
17502+#define CPOS6c IA64_OPND_CPOS6c
17503+#define IMM1 IA64_OPND_IMM1
17504+#define IMM14 IA64_OPND_IMM14
17505+#define IMM17 IA64_OPND_IMM17
17506+#define IMM22 IA64_OPND_IMM22
17507+#define IMM44 IA64_OPND_IMM44
17508+#define SOF IA64_OPND_SOF
17509+#define SOL IA64_OPND_SOL
17510+#define SOR IA64_OPND_SOR
17511+#define IMM8 IA64_OPND_IMM8
17512+#define IMM8U4 IA64_OPND_IMM8U4
17513+#define IMM8M1 IA64_OPND_IMM8M1
17514+#define IMM8M1U4 IA64_OPND_IMM8M1U4
17515+#define IMM8M1U8 IA64_OPND_IMM8M1U8
17516+#define IMM9a IA64_OPND_IMM9a
17517+#define IMM9b IA64_OPND_IMM9b
17518+#define IMMU2 IA64_OPND_IMMU2
17519+#define IMMU21 IA64_OPND_IMMU21
17520+#define IMMU24 IA64_OPND_IMMU24
17521+#define IMMU62 IA64_OPND_IMMU62
17522+#define IMMU64 IA64_OPND_IMMU64
17523+#define IMMU7a IA64_OPND_IMMU7a
17524+#define IMMU7b IA64_OPND_IMMU7b
17525+#define IMMU9 IA64_OPND_IMMU9
17526+#define INC3 IA64_OPND_INC3
17527+#define LEN4 IA64_OPND_LEN4
17528+#define LEN6 IA64_OPND_LEN6
17529+#define MBTYPE4 IA64_OPND_MBTYPE4
17530+#define MHTYPE8 IA64_OPND_MHTYPE8
17531+#define POS6 IA64_OPND_POS6
17532+#define TAG13 IA64_OPND_TAG13
17533+#define TAG13b IA64_OPND_TAG13b
17534+#define TGT25 IA64_OPND_TGT25
17535+#define TGT25b IA64_OPND_TGT25b
17536+#define TGT25c IA64_OPND_TGT25c
17537+#define TGT64 IA64_OPND_TGT64
17538+
17539+#endif
17540--- /dev/null
17541+++ b/arch/ia64/kdb/ia64.h
17542@@ -0,0 +1,402 @@
17543+/* ia64.h -- Header file for ia64 opcode table
17544+ Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
17545+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */
17546+
17547+/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
17548+ * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
17549+ * required.
17550+ * Keith Owens <kaos@sgi.com> 15 May 2006
17551+ */
17552+
17553+#ifndef opcode_ia64_h
17554+#define opcode_ia64_h
17555+
17556+#ifdef __KERNEL__
17557+#include <asm/bfd.h>
17558+#else /* __KERNEL__ */
17559+#include <sys/types.h>
17560+
17561+#include "bfd.h"
17562+#endif /* __KERNEL__ */
17563+
17564+
17565+typedef BFD_HOST_U_64_BIT ia64_insn;
17566+
17567+enum ia64_insn_type
17568+ {
17569+ IA64_TYPE_NIL = 0, /* illegal type */
17570+ IA64_TYPE_A, /* integer alu (I- or M-unit) */
17571+ IA64_TYPE_I, /* non-alu integer (I-unit) */
17572+ IA64_TYPE_M, /* memory (M-unit) */
17573+ IA64_TYPE_B, /* branch (B-unit) */
17574+ IA64_TYPE_F, /* floating-point (F-unit) */
17575+ IA64_TYPE_X, /* long encoding (X-unit) */
17576+ IA64_TYPE_DYN, /* Dynamic opcode */
17577+ IA64_NUM_TYPES
17578+ };
17579+
17580+enum ia64_unit
17581+ {
17582+ IA64_UNIT_NIL = 0, /* illegal unit */
17583+ IA64_UNIT_I, /* integer unit */
17584+ IA64_UNIT_M, /* memory unit */
17585+ IA64_UNIT_B, /* branching unit */
17586+ IA64_UNIT_F, /* floating-point unit */
17587+ IA64_UNIT_L, /* long "unit" */
17588+ IA64_UNIT_X, /* may be integer or branch unit */
17589+ IA64_NUM_UNITS
17590+ };
17591+
17592+/* Changes to this enumeration must be propagated to the operand table in
17593+ bfd/cpu-ia64-opc.c
17594+ */
17595+enum ia64_opnd
17596+ {
17597+ IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/
17598+
17599+ /* constants */
17600+ IA64_OPND_AR_CSD, /* application register csd (ar.csd) */
17601+ IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */
17602+ IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */
17603+ IA64_OPND_C1, /* the constant 1 */
17604+ IA64_OPND_C8, /* the constant 8 */
17605+ IA64_OPND_C16, /* the constant 16 */
17606+ IA64_OPND_GR0, /* gr0 */
17607+ IA64_OPND_IP, /* instruction pointer (ip) */
17608+ IA64_OPND_PR, /* predicate register (pr) */
17609+ IA64_OPND_PR_ROT, /* rotating predicate register (pr.rot) */
17610+ IA64_OPND_PSR, /* processor status register (psr) */
17611+ IA64_OPND_PSR_L, /* processor status register L (psr.l) */
17612+ IA64_OPND_PSR_UM, /* processor status register UM (psr.um) */
17613+
17614+ /* register operands: */
17615+ IA64_OPND_AR3, /* third application register # (bits 20-26) */
17616+ IA64_OPND_B1, /* branch register # (bits 6-8) */
17617+ IA64_OPND_B2, /* branch register # (bits 13-15) */
17618+ IA64_OPND_CR3, /* third control register # (bits 20-26) */
17619+ IA64_OPND_F1, /* first floating-point register # */
17620+ IA64_OPND_F2, /* second floating-point register # */
17621+ IA64_OPND_F3, /* third floating-point register # */
17622+ IA64_OPND_F4, /* fourth floating-point register # */
17623+ IA64_OPND_P1, /* first predicate # */
17624+ IA64_OPND_P2, /* second predicate # */
17625+ IA64_OPND_R1, /* first register # */
17626+ IA64_OPND_R2, /* second register # */
17627+ IA64_OPND_R3, /* third register # */
17628+ IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */
17629+
17630+ /* indirect operands: */
17631+ IA64_OPND_CPUID_R3, /* cpuid[reg] */
17632+ IA64_OPND_DBR_R3, /* dbr[reg] */
17633+ IA64_OPND_DTR_R3, /* dtr[reg] */
17634+ IA64_OPND_ITR_R3, /* itr[reg] */
17635+ IA64_OPND_IBR_R3, /* ibr[reg] */
17636+ IA64_OPND_MR3, /* memory at addr of third register # */
17637+ IA64_OPND_MSR_R3, /* msr[reg] */
17638+ IA64_OPND_PKR_R3, /* pkr[reg] */
17639+ IA64_OPND_PMC_R3, /* pmc[reg] */
17640+ IA64_OPND_PMD_R3, /* pmd[reg] */
17641+ IA64_OPND_RR_R3, /* rr[reg] */
17642+
17643+ /* immediate operands: */
17644+ IA64_OPND_CCNT5, /* 5-bit count (31 - bits 20-24) */
17645+ IA64_OPND_CNT2a, /* 2-bit count (1 + bits 27-28) */
17646+ IA64_OPND_CNT2b, /* 2-bit count (bits 27-28): 1, 2, 3 */
17647+ IA64_OPND_CNT2c, /* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
17648+ IA64_OPND_CNT5, /* 5-bit count (bits 14-18) */
17649+ IA64_OPND_CNT6, /* 6-bit count (bits 27-32) */
17650+ IA64_OPND_CPOS6a, /* 6-bit count (63 - bits 20-25) */
17651+ IA64_OPND_CPOS6b, /* 6-bit count (63 - bits 14-19) */
17652+ IA64_OPND_CPOS6c, /* 6-bit count (63 - bits 31-36) */
17653+ IA64_OPND_IMM1, /* signed 1-bit immediate (bit 36) */
17654+ IA64_OPND_IMMU2, /* unsigned 2-bit immediate (bits 13-14) */
17655+ IA64_OPND_IMMU7a, /* unsigned 7-bit immediate (bits 13-19) */
17656+ IA64_OPND_IMMU7b, /* unsigned 7-bit immediate (bits 20-26) */
17657+ IA64_OPND_SOF, /* 8-bit stack frame size */
17658+ IA64_OPND_SOL, /* 8-bit size of locals */
17659+ IA64_OPND_SOR, /* 6-bit number of rotating registers (scaled by 8) */
17660+ IA64_OPND_IMM8, /* signed 8-bit immediate (bits 13-19 & 36) */
17661+ IA64_OPND_IMM8U4, /* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
17662+ IA64_OPND_IMM8M1, /* signed 8-bit immediate -1 (bits 13-19 & 36) */
17663+ IA64_OPND_IMM8M1U4, /* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
17664+ IA64_OPND_IMM8M1U8, /* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
17665+ IA64_OPND_IMMU9, /* unsigned 9-bit immediate (bits 33-34, 20-26) */
17666+ IA64_OPND_IMM9a, /* signed 9-bit immediate (bits 6-12, 27, 36) */
17667+ IA64_OPND_IMM9b, /* signed 9-bit immediate (bits 13-19, 27, 36) */
17668+ IA64_OPND_IMM14, /* signed 14-bit immediate (bits 13-19, 27-32, 36) */
17669+ IA64_OPND_IMM17, /* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
17670+ IA64_OPND_IMMU21, /* unsigned 21-bit immediate (bits 6-25, 36) */
17671+ IA64_OPND_IMM22, /* signed 22-bit immediate (bits 13-19, 22-36) */
17672+ IA64_OPND_IMMU24, /* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
17673+ IA64_OPND_IMM44, /* signed 44-bit immediate (2^16*bits 6-32, 36) */
17674+ IA64_OPND_IMMU62, /* unsigned 62-bit immediate */
17675+ IA64_OPND_IMMU64, /* unsigned 64-bit immediate (lotsa bits...) */
17676+ IA64_OPND_INC3, /* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
17677+ IA64_OPND_LEN4, /* 4-bit count (bits 27-30 + 1) */
17678+ IA64_OPND_LEN6, /* 6-bit count (bits 27-32 + 1) */
17679+ IA64_OPND_MBTYPE4, /* 4-bit mux type (bits 20-23) */
17680+ IA64_OPND_MHTYPE8, /* 8-bit mux type (bits 20-27) */
17681+ IA64_OPND_POS6, /* 6-bit count (bits 14-19) */
17682+ IA64_OPND_TAG13, /* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
17683+ IA64_OPND_TAG13b, /* signed 13-bit tag (ip + 16*bits 24-32) */
17684+ IA64_OPND_TGT25, /* signed 25-bit (ip + 16*bits 6-25, 36) */
17685+ IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
17686+ IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */
17687+ IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
17688+ IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */
17689+
17690+ IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */
17691+ };
17692+
17693+enum ia64_dependency_mode
17694+{
17695+ IA64_DV_RAW,
17696+ IA64_DV_WAW,
17697+ IA64_DV_WAR,
17698+};
17699+
17700+enum ia64_dependency_semantics
17701+{
17702+ IA64_DVS_NONE,
17703+ IA64_DVS_IMPLIED,
17704+ IA64_DVS_IMPLIEDF,
17705+ IA64_DVS_DATA,
17706+ IA64_DVS_INSTR,
17707+ IA64_DVS_SPECIFIC,
17708+ IA64_DVS_STOP,
17709+ IA64_DVS_OTHER,
17710+};
17711+
17712+enum ia64_resource_specifier
17713+{
17714+ IA64_RS_ANY,
17715+ IA64_RS_AR_K,
17716+ IA64_RS_AR_UNAT,
17717+ IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
17718+ IA64_RS_ARb, /* 48-63, 112-127 */
17719+ IA64_RS_BR,
17720+ IA64_RS_CFM,
17721+ IA64_RS_CPUID,
17722+ IA64_RS_CR_IRR,
17723+ IA64_RS_CR_LRR,
17724+ IA64_RS_CR, /* 3-7,10-15,18,26-63,75-79,82-127 */
17725+ IA64_RS_DBR,
17726+ IA64_RS_FR,
17727+ IA64_RS_FRb,
17728+ IA64_RS_GR0,
17729+ IA64_RS_GR,
17730+ IA64_RS_IBR,
17731+ IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
17732+ IA64_RS_MSR,
17733+ IA64_RS_PKR,
17734+ IA64_RS_PMC,
17735+ IA64_RS_PMD,
17736+ IA64_RS_PR, /* non-rotating, 1-15 */
17737+ IA64_RS_PRr, /* rotating, 16-62 */
17738+ IA64_RS_PR63,
17739+ IA64_RS_RR,
17740+
17741+ IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
17742+ IA64_RS_CRX, /* CRs not in RS_CR */
17743+ IA64_RS_PSR, /* PSR bits */
17744+ IA64_RS_RSE, /* implementation-specific RSE resources */
17745+ IA64_RS_AR_FPSR,
17746+};
17747+
17748+enum ia64_rse_resource
17749+{
17750+ IA64_RSE_N_STACKED_PHYS,
17751+ IA64_RSE_BOF,
17752+ IA64_RSE_STORE_REG,
17753+ IA64_RSE_LOAD_REG,
17754+ IA64_RSE_BSPLOAD,
17755+ IA64_RSE_RNATBITINDEX,
17756+ IA64_RSE_CFLE,
17757+ IA64_RSE_NDIRTY,
17758+};
17759+
17760+/* Information about a given resource dependency */
17761+struct ia64_dependency
17762+{
17763+ /* Name of the resource */
17764+ const char *name;
17765+ /* Does this dependency need further specification? */
17766+ enum ia64_resource_specifier specifier;
17767+ /* Mode of dependency */
17768+ enum ia64_dependency_mode mode;
17769+ /* Dependency semantics */
17770+ enum ia64_dependency_semantics semantics;
17771+ /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
17772+#define REG_NONE (-1)
17773+ int regindex;
17774+ /* Special info on semantics */
17775+ const char *info;
17776+};
17777+
17778+/* Two arrays of indexes into the ia64_dependency table.
17779+ chks are dependencies to check for conflicts when an opcode is
17780+ encountered; regs are dependencies to register (mark as used) when an
17781+ opcode is used. chks correspond to readers (RAW) or writers (WAW or
17782+ WAR) of a resource, while regs correspond to writers (RAW or WAW) and
17783+ readers (WAR) of a resource. */
17784+struct ia64_opcode_dependency
17785+{
17786+ int nchks;
17787+ const unsigned short *chks;
17788+ int nregs;
17789+ const unsigned short *regs;
17790+};
17791+
17792+/* encode/extract the note/index for a dependency */
17793+#define RDEP(N,X) (((N)<<11)|(X))
17794+#define NOTE(X) (((X)>>11)&0x1F)
17795+#define DEP(X) ((X)&0x7FF)
17796+
17797+/* A template descriptor describes the execution units that are active
17798+ for each of the three slots. It also specifies the location of
17799+ instruction group boundaries that may be present between two slots. */
17800+struct ia64_templ_desc
17801+ {
17802+ int group_boundary; /* 0=no boundary, 1=between slot 0 & 1, etc. */
17803+ enum ia64_unit exec_unit[3];
17804+ const char *name;
17805+ };
17806+
17807+/* The opcode table is an array of struct ia64_opcode. */
17808+
17809+struct ia64_opcode
17810+ {
17811+ /* The opcode name. */
17812+ const char *name;
17813+
17814+ /* The type of the instruction: */
17815+ enum ia64_insn_type type;
17816+
17817+ /* Number of output operands: */
17818+ int num_outputs;
17819+
17820+ /* The opcode itself. Those bits which will be filled in with
17821+ operands are zeroes. */
17822+ ia64_insn opcode;
17823+
17824+ /* The opcode mask. This is used by the disassembler. This is a
17825+ mask containing ones indicating those bits which must match the
17826+ opcode field, and zeroes indicating those bits which need not
17827+ match (and are presumably filled in by operands). */
17828+ ia64_insn mask;
17829+
17830+ /* An array of operand codes. Each code is an index into the
17831+ operand table. They appear in the order which the operands must
17832+ appear in assembly code, and are terminated by a zero. */
17833+ enum ia64_opnd operands[5];
17834+
17835+ /* One bit flags for the opcode. These are primarily used to
17836+ indicate specific processors and environments support the
17837+ instructions. The defined values are listed below. */
17838+ unsigned int flags;
17839+
17840+ /* Used by ia64_find_next_opcode (). */
17841+ short ent_index;
17842+
17843+ /* Opcode dependencies. */
17844+ const struct ia64_opcode_dependency *dependencies;
17845+ };
17846+
17847+/* Values defined for the flags field of a struct ia64_opcode. */
17848+
17849+#define IA64_OPCODE_FIRST (1<<0) /* must be first in an insn group */
17850+#define IA64_OPCODE_X_IN_MLX (1<<1) /* insn is allowed in X slot of MLX */
17851+#define IA64_OPCODE_LAST (1<<2) /* must be last in an insn group */
17852+#define IA64_OPCODE_PRIV (1<<3) /* privileged instruct */
17853+#define IA64_OPCODE_SLOT2 (1<<4) /* insn allowed in slot 2 only */
17854+#define IA64_OPCODE_NO_PRED (1<<5) /* insn cannot be predicated */
17855+#define IA64_OPCODE_PSEUDO (1<<6) /* insn is a pseudo-op */
17856+#define IA64_OPCODE_F2_EQ_F3 (1<<7) /* constraint: F2 == F3 */
17857+#define IA64_OPCODE_LEN_EQ_64MCNT (1<<8) /* constraint: LEN == 64-CNT */
17858+#define IA64_OPCODE_MOD_RRBS (1<<9) /* modifies all rrbs in CFM */
17859+#define IA64_OPCODE_POSTINC (1<<10) /* postincrement MR3 operand */
17860+
17861+/* A macro to extract the major opcode from an instruction. */
17862+#define IA64_OP(i) (((i) >> 37) & 0xf)
17863+
17864+enum ia64_operand_class
17865+ {
17866+ IA64_OPND_CLASS_CST, /* constant */
17867+ IA64_OPND_CLASS_REG, /* register */
17868+ IA64_OPND_CLASS_IND, /* indirect register */
17869+ IA64_OPND_CLASS_ABS, /* absolute value */
17870+ IA64_OPND_CLASS_REL, /* IP-relative value */
17871+ };
17872+
17873+/* The operands table is an array of struct ia64_operand. */
17874+
17875+struct ia64_operand
17876+{
17877+ enum ia64_operand_class class;
17878+
17879+ /* Set VALUE as the operand bits for the operand of type SELF in the
17880+ instruction pointed to by CODE. If an error occurs, *CODE is not
17881+ modified and the returned string describes the cause of the
17882+ error. If no error occurs, NULL is returned. */
17883+ const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
17884+ ia64_insn *code);
17885+
17886+ /* Extract the operand bits for an operand of type SELF from
17887+ instruction CODE store them in *VALUE. If an error occurs, the
17888+ cause of the error is described by the string returned. If no
17889+ error occurs, NULL is returned. */
17890+ const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
17891+ ia64_insn *value);
17892+
17893+ /* A string whose meaning depends on the operand class. */
17894+
17895+ const char *str;
17896+
17897+ struct bit_field
17898+ {
17899+ /* The number of bits in the operand. */
17900+ int bits;
17901+
17902+ /* How far the operand is left shifted in the instruction. */
17903+ int shift;
17904+ }
17905+ field[4]; /* no operand has more than this many bit-fields */
17906+
17907+ unsigned int flags;
17908+
17909+ const char *desc; /* brief description */
17910+};
17911+
17912+/* Values defined for the flags field of a struct ia64_operand. */
17913+
17914+/* Disassemble as signed decimal (instead of hex): */
17915+#define IA64_OPND_FLAG_DECIMAL_SIGNED (1<<0)
17916+/* Disassemble as unsigned decimal (instead of hex): */
17917+#define IA64_OPND_FLAG_DECIMAL_UNSIGNED (1<<1)
17918+
17919+extern const struct ia64_templ_desc ia64_templ_desc[16];
17920+
17921+/* The tables are sorted by major opcode number and are otherwise in
17922+ the order in which the disassembler should consider instructions. */
17923+extern struct ia64_opcode ia64_opcodes_a[];
17924+extern struct ia64_opcode ia64_opcodes_i[];
17925+extern struct ia64_opcode ia64_opcodes_m[];
17926+extern struct ia64_opcode ia64_opcodes_b[];
17927+extern struct ia64_opcode ia64_opcodes_f[];
17928+extern struct ia64_opcode ia64_opcodes_d[];
17929+
17930+
17931+extern struct ia64_opcode *ia64_find_opcode (const char *name);
17932+extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *ent);
17933+
17934+extern struct ia64_opcode *ia64_dis_opcode (ia64_insn insn,
17935+ enum ia64_insn_type type);
17936+
17937+extern void ia64_free_opcode (struct ia64_opcode *ent);
17938+extern const struct ia64_dependency *ia64_find_dependency (int index);
17939+
17940+/* To avoid circular library dependencies, this array is implemented
17941+ in bfd/cpu-ia64-opc.c: */
17942+extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT];
17943+
17944+#endif /* opcode_ia64_h */
17945--- /dev/null
17946+++ b/arch/ia64/kdb/kdb_cmds
17947@@ -0,0 +1,17 @@
17948+# Standard architecture specific commands for kdb.
17949+# These commands are appended to those in kdb/kdb_cmds, see that file for
17950+# restrictions.
17951+
17952+# Standard debugging information for first level support, invoked from archkdb*
17953+# commands that are defined in kdb/kdb_cmds.
17954+
17955+defcmd archkdbcommon "" "Common arch debugging"
17956+ set LINES 2000000
17957+ set BTAPROMPT 0
17958+ -summary
17959+ -id %ip-0x40
17960+ -cpu
17961+ -ps
17962+ -dmesg 600
17963+ -bt
17964+endefcmd
17965--- /dev/null
17966+++ b/arch/ia64/kdb/kdba_bp.c
17967@@ -0,0 +1,841 @@
17968+/*
17969+ * Kernel Debugger Architecture Dependent Breakpoint Handling
17970+ *
17971+ * This file is subject to the terms and conditions of the GNU General Public
17972+ * License. See the file "COPYING" in the main directory of this archive
17973+ * for more details.
17974+ *
17975+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
17976+ */
17977+
17978+#include <linux/string.h>
17979+#include <linux/kernel.h>
17980+#include <linux/sched.h>
17981+#include <linux/smp.h>
17982+#include <linux/ptrace.h>
17983+#include <linux/kdb.h>
17984+#include <linux/kdbprivate.h>
17985+#include <asm/pgalloc.h>
17986+
17987+
17988+static char *kdba_rwtypes[] = { "Instruction(Register)", "Data Write",
17989+ "I/O", "Data Access"};
17990+
17991+/*
17992+ * Table describing processor architecture hardware
17993+ * breakpoint registers.
17994+ */
17995+
17996+static kdbhard_bp_t kdb_hardbreaks[KDB_MAXHARDBPT];
17997+
17998+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
17999+/*
18000+ * Counters for number of debug registers used on each CPU.
18001+ * Used to detect when to enable and disable debug traps.
18002+ */
18003+static unsigned char kdb_dbrs_used[NR_CPUS];
18004+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18005+
18006+/*
18007+ * kdba_db_trap
18008+ *
18009+ * Perform breakpoint processing upon entry to the
18010+ * processor debugger fault. Determine and print
18011+ * the active breakpoint.
18012+ *
18013+ * Parameters:
18014+ * regs Exception frame containing machine register state
18015+ * error Error number passed to kdb.
18016+ * Outputs:
18017+ * None.
18018+ * Returns:
18019+ * KDB_DB_BPT Standard instruction or data breakpoint encountered
18020+ * KDB_DB_SS Single Step fault ('ss' command or end of 'ssb' command)
18021+ * KDB_DB_SSB Single Step fault, caller should continue ('ssb' command)
18022+ * KDB_DB_SSBPT Single step over breakpoint
18023+ * KDB_DB_NOBPT No existing kdb breakpoint matches this debug exception
18024+ * Locking:
18025+ * None.
18026+ * Remarks:
18027+ * Yup, there be goto's here.
18028+ *
18029+ * If multiple processors receive debug exceptions simultaneously,
18030+ * one may be waiting at the kdb fence in kdb() while the user
18031+ * issues a 'bc' command to clear the breakpoint the processor
18032+ * which is waiting has already encountered. If this is the case,
18033+ * the debug registers will no longer match any entry in the
18034+ * breakpoint table, and we'll return the value KDB_DB_NOBPT.
18035+ * This can cause a panic in die_if_kernel(). It is safer to
18036+ * disable the breakpoint (bd), go until all processors are past
18037+ * the breakpoint then clear the breakpoint (bc). This code
18038+ * recognises a breakpoint even when disabled but not when it has
18039+ * been cleared.
18040+ *
18041+ * WARNING: This routine clears the debug state. It should be called
18042+ * once per debug and the result cached.
18043+ */
18044+
18045+kdb_dbtrap_t
18046+kdba_db_trap(struct pt_regs *regs, int error)
18047+{
18048+ int i;
18049+ kdb_dbtrap_t rv = KDB_DB_BPT;
18050+ kdb_bp_t *bp;
18051+
18052+ if (KDB_NULL_REGS(regs))
18053+ return KDB_DB_NOBPT;
18054+
18055+ if (KDB_DEBUG(BP))
18056+ kdb_printf("kdba_db_trap: error %d\n", error);
18057+
18058+ if (error == 36) {
18059+ /* Single step */
18060+ if (KDB_STATE(SSBPT)) {
18061+ if (KDB_DEBUG(BP))
18062+ kdb_printf("ssbpt\n");
18063+ KDB_STATE_CLEAR(SSBPT);
18064+ for(i=0,bp=kdb_breakpoints;
18065+ i < KDB_MAXBPT;
18066+ i++, bp++) {
18067+ if (KDB_DEBUG(BP))
18068+ kdb_printf("bp 0x%p enabled %d delayed %d global %d cpu %d\n",
18069+ bp, bp->bp_enabled, bp->bp_delayed, bp->bp_global, bp->bp_cpu);
18070+ if (!bp->bp_enabled)
18071+ continue;
18072+ if (!bp->bp_global && bp->bp_cpu != smp_processor_id())
18073+ continue;
18074+ if (KDB_DEBUG(BP))
18075+ kdb_printf("bp for this cpu\n");
18076+ if (bp->bp_delayed) {
18077+ bp->bp_delayed = 0;
18078+ if (KDB_DEBUG(BP))
18079+ kdb_printf("kdba_installbp\n");
18080+ kdba_installbp(regs, bp);
18081+ if (!KDB_STATE(DOING_SS)) {
18082+ kdba_clearsinglestep(regs);
18083+ return(KDB_DB_SSBPT);
18084+ }
18085+ break;
18086+ }
18087+ }
18088+ if (i == KDB_MAXBPT) {
18089+ kdb_printf("kdb: Unable to find delayed breakpoint\n");
18090+ }
18091+ if (!KDB_STATE(DOING_SS)) {
18092+ kdba_clearsinglestep(regs);
18093+ return(KDB_DB_NOBPT);
18094+ }
18095+ /* FALLTHROUGH */
18096+ }
18097+
18098+ /*
18099+ * KDB_STATE_DOING_SS is set when the kernel debugger is using
18100+ * the processor trap flag to single-step a processor. If a
18101+ * single step trap occurs and this flag is clear, the SS trap
18102+ * will be ignored by KDB and the kernel will be allowed to deal
18103+ * with it as necessary (e.g. for ptrace).
18104+ */
18105+ if (!KDB_STATE(DOING_SS))
18106+ return(KDB_DB_NOBPT);
18107+
18108+ /* single step */
18109+ rv = KDB_DB_SS; /* Indicate single step */
18110+ if (KDB_STATE(DOING_SSB)) /* No ia64 ssb support yet */
18111+ KDB_STATE_CLEAR(DOING_SSB); /* No ia64 ssb support yet */
18112+ if (KDB_STATE(DOING_SSB)) {
18113+ /* No IA64 ssb support yet */
18114+ } else {
18115+ /*
18116+ * Print current insn
18117+ */
18118+ kdb_machreg_t pc = regs->cr_iip + ia64_psr(regs)->ri * 6;
18119+ kdb_printf("SS trap at ");
18120+ kdb_symbol_print(pc, NULL, KDB_SP_DEFAULT|KDB_SP_NEWLINE);
18121+ kdb_id1(pc);
18122+ KDB_STATE_CLEAR(DOING_SS);
18123+ }
18124+
18125+ if (rv != KDB_DB_SSB)
18126+ kdba_clearsinglestep(regs);
18127+ }
18128+
18129+ return(rv);
18130+}
18131+
18132+/*
18133+ * kdba_bp_trap
18134+ *
18135+ * Perform breakpoint processing upon entry to the
18136+ * processor breakpoint instruction fault. Determine and print
18137+ * the active breakpoint.
18138+ *
18139+ * Parameters:
18140+ * regs Exception frame containing machine register state
18141+ * error Error number passed to kdb.
18142+ * Outputs:
18143+ * None.
18144+ * Returns:
18145+ * 0 Standard instruction or data breakpoint encountered
18146+ * 1 Single Step fault ('ss' command)
18147+ * 2 Single Step fault, caller should continue ('ssb' command)
18148+ * 3 No existing kdb breakpoint matches this debug exception
18149+ * Locking:
18150+ * None.
18151+ * Remarks:
18152+ *
18153+ * If multiple processors receive debug exceptions simultaneously,
18154+ * one may be waiting at the kdb fence in kdb() while the user
18155+ * issues a 'bc' command to clear the breakpoint the processor which
18156+ * is waiting has already encountered. If this is the case, the
18157+ * debug registers will no longer match any entry in the breakpoint
18158+ * table, and we'll return the value '3'. This can cause a panic
18159+ * in die_if_kernel(). It is safer to disable the breakpoint (bd),
18160+ * 'go' until all processors are past the breakpoint then clear the
18161+ * breakpoint (bc). This code recognises a breakpoint even when
18162+ * disabled but not when it has been cleared.
18163+ *
18164+ * WARNING: This routine resets the ip. It should be called
18165+ * once per breakpoint and the result cached.
18166+ */
18167+
18168+kdb_dbtrap_t
18169+kdba_bp_trap(struct pt_regs *regs, int error)
18170+{
18171+ int i;
18172+ kdb_dbtrap_t rv;
18173+ kdb_bp_t *bp;
18174+
18175+ if (KDB_NULL_REGS(regs))
18176+ return KDB_DB_NOBPT;
18177+
18178+ /*
18179+ * Determine which breakpoint was encountered.
18180+ */
18181+ if (KDB_DEBUG(BP))
18182+ kdb_printf("kdba_bp_trap: ip=0x%lx "
18183+ "regs=0x%p sp=0x%lx\n",
18184+ regs->cr_iip, regs, regs->r12);
18185+
18186+ rv = KDB_DB_NOBPT; /* Cause kdb() to return */
18187+
18188+ for(i=0, bp=kdb_breakpoints; i<KDB_MAXBPT; i++, bp++) {
18189+ if (bp->bp_free)
18190+ continue;
18191+ if (!bp->bp_global && bp->bp_cpu != smp_processor_id())
18192+ continue;
18193+ if (bp->bp_addr == regs->cr_iip) {
18194+ /* Hit this breakpoint. */
18195+ kdb_printf("Instruction(i) breakpoint #%d at 0x%lx\n",
18196+ i, regs->cr_iip);
18197+ kdb_id1(regs->cr_iip);
18198+ rv = KDB_DB_BPT;
18199+ bp->bp_delay = 1;
18200+ /* SSBPT is set when the kernel debugger must single
18201+ * step a task in order to re-establish an instruction
18202+ * breakpoint which uses the instruction replacement
18203+ * mechanism. It is cleared by any action that removes
18204+ * the need to single-step the breakpoint.
18205+ */
18206+ KDB_STATE_SET(SSBPT);
18207+ break;
18208+ }
18209+ }
18210+
18211+ return rv;
18212+}
18213+
18214+/*
18215+ * kdba_handle_bp
18216+ *
18217+ * Handle an instruction-breakpoint trap. Called when re-installing
18218+ * an enabled breakpoint which has has the bp_delay bit set.
18219+ *
18220+ * Parameters:
18221+ * Returns:
18222+ * Locking:
18223+ * Remarks:
18224+ *
18225+ * Ok, we really need to:
18226+ * 1) Restore the original instruction byte(s)
18227+ * 2) Single Step
18228+ * 3) Restore breakpoint instruction
18229+ * 4) Continue.
18230+ *
18231+ *
18232+ */
18233+
18234+static void
18235+kdba_handle_bp(struct pt_regs *regs, kdb_bp_t *bp)
18236+{
18237+ if (KDB_NULL_REGS(regs))
18238+ return;
18239+
18240+ if (KDB_DEBUG(BP))
18241+ kdb_printf("regs->cr_iip = 0x%lx\n", regs->cr_iip);
18242+
18243+ /*
18244+ * Setup single step
18245+ */
18246+ kdba_setsinglestep(regs);
18247+
18248+ /*
18249+ * Reset delay attribute
18250+ */
18251+ bp->bp_delay = 0;
18252+ bp->bp_delayed = 1;
18253+}
18254+
18255+
18256+/*
18257+ * kdba_bptype
18258+ *
18259+ * Return a string describing type of breakpoint.
18260+ *
18261+ * Parameters:
18262+ * bph Pointer to hardware breakpoint description
18263+ * Outputs:
18264+ * None.
18265+ * Returns:
18266+ * Character string.
18267+ * Locking:
18268+ * None.
18269+ * Remarks:
18270+ */
18271+
18272+char *
18273+kdba_bptype(kdbhard_bp_t *bph)
18274+{
18275+ char *mode;
18276+
18277+ mode = kdba_rwtypes[bph->bph_mode];
18278+
18279+ return mode;
18280+}
18281+
18282+/*
18283+ * kdba_printbpreg
18284+ *
18285+ * Print register name assigned to breakpoint
18286+ *
18287+ * Parameters:
18288+ * bph Pointer hardware breakpoint structure
18289+ * Outputs:
18290+ * None.
18291+ * Returns:
18292+ * None.
18293+ * Locking:
18294+ * None.
18295+ * Remarks:
18296+ */
18297+
18298+static void
18299+kdba_printbpreg(kdbhard_bp_t *bph)
18300+{
18301+ kdb_printf(" in dr%ld", bph->bph_reg);
18302+}
18303+
18304+/*
18305+ * kdba_printbp
18306+ *
18307+ * Print string describing hardware breakpoint.
18308+ *
18309+ * Parameters:
18310+ * bph Pointer to hardware breakpoint description
18311+ * Outputs:
18312+ * None.
18313+ * Returns:
18314+ * None.
18315+ * Locking:
18316+ * None.
18317+ * Remarks:
18318+ */
18319+
18320+void
18321+kdba_printbp(kdb_bp_t *bp)
18322+{
18323+ kdb_printf("\n is enabled");
18324+ if (bp->bp_hardtype) {
18325+ /* Note that bp->bp_hard[NR_CPU] is for x86.
18326+ * The ia64 uses bp->bp_hard[0] only.
18327+ */
18328+ kdba_printbpreg(bp->bp_hard[0]);
18329+ if (bp->bp_hard[0]->bph_mode != 0) {
18330+ kdb_printf(" for %d bytes",
18331+ bp->bp_hard[0]->bph_length+1);
18332+ }
18333+ }
18334+}
18335+
18336+/*
18337+ * kdba_parsebp
18338+ *
18339+ * Parse architecture dependent portion of the
18340+ * breakpoint command.
18341+ *
18342+ * Parameters:
18343+ * None.
18344+ * Outputs:
18345+ * None.
18346+ * Returns:
18347+ * Zero for success, a kdb diagnostic for failure
18348+ * Locking:
18349+ * None.
18350+ * Remarks:
18351+ * for IA64 architure, data access, data write and
18352+ * I/O breakpoints are supported in addition to instruction
18353+ * breakpoints.
18354+ *
18355+ * {datar|dataw|io|inst} [length]
18356+ */
18357+
18358+int
18359+kdba_parsebp(int argc, const char **argv, int *nextargp, kdb_bp_t *bp)
18360+{
18361+ int nextarg = *nextargp;
18362+ int diag;
18363+ kdbhard_bp_t *bph = &bp->bp_template;
18364+
18365+ bph->bph_mode = 0; /* Default to instruction breakpoint */
18366+ bph->bph_length = 0; /* Length must be zero for insn bp */
18367+ if ((argc + 1) != nextarg) {
18368+ if (strnicmp(argv[nextarg], "datar", sizeof("datar")) == 0) {
18369+ bph->bph_mode = 3;
18370+ } else if (strnicmp(argv[nextarg], "dataw", sizeof("dataw")) == 0) {
18371+ bph->bph_mode = 1;
18372+ } else if (strnicmp(argv[nextarg], "io", sizeof("io")) == 0) {
18373+ bph->bph_mode = 2;
18374+ } else if (strnicmp(argv[nextarg], "inst", sizeof("inst")) == 0) {
18375+ bph->bph_mode = 0;
18376+ } else {
18377+ return KDB_ARGCOUNT;
18378+ }
18379+
18380+ if (bph->bph_mode == 0)
18381+ kdba_check_pc(&bp->bp_addr);
18382+
18383+ bph->bph_length = 3; /* Default to 4 byte */
18384+
18385+ nextarg++;
18386+
18387+ if ((argc + 1) != nextarg) {
18388+ unsigned long len;
18389+
18390+ diag = kdbgetularg((char *)argv[nextarg],
18391+ &len);
18392+ if (diag)
18393+ return diag;
18394+
18395+
18396+ if ((len > 4) || (len == 3))
18397+ return KDB_BADLENGTH;
18398+
18399+ bph->bph_length = len;
18400+ bph->bph_length--; /* Normalize for debug register */
18401+ nextarg++;
18402+ }
18403+
18404+ if ((argc + 1) != nextarg)
18405+ return KDB_ARGCOUNT;
18406+
18407+ /*
18408+ * Indicate to architecture independent level that
18409+ * a hardware register assignment is required to enable
18410+ * this breakpoint.
18411+ */
18412+
18413+ bph->bph_free = 0;
18414+ } else {
18415+ if (KDB_DEBUG(BP))
18416+ kdb_printf("kdba_bp: no args, forcehw is %d\n", bp->bp_forcehw);
18417+ if (bp->bp_forcehw) {
18418+ /*
18419+ * We are forced to use a hardware register for this
18420+ * breakpoint because either the bph or bpha
18421+ * commands were used to establish this breakpoint.
18422+ */
18423+ bph->bph_free = 0;
18424+ } else {
18425+ /*
18426+ * Indicate to architecture dependent level that
18427+ * the instruction replacement breakpoint technique
18428+ * should be used for this breakpoint.
18429+ */
18430+ bph->bph_free = 1;
18431+ bp->bp_adjust = 0; /* software, break is fault, not trap */
18432+ }
18433+ }
18434+
18435+ if (bph->bph_mode == 0 && kdba_verify_rw(bp->bp_addr, bph->bph_length+1)) {
18436+ kdb_printf("Invalid address for breakpoint, ignoring bp command\n");
18437+ return KDB_BADADDR;
18438+ }
18439+
18440+ *nextargp = nextarg;
18441+#ifndef CONFIG_KDB_HARDWARE_BREAKPOINTS
18442+ if (!bph->bph_free) {
18443+ kdb_printf("kdba_parsebp hardware breakpoints are not supported yet\n");
18444+ return KDB_NOTIMP;
18445+ }
18446+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18447+ return 0;
18448+}
18449+
18450+/*
18451+ * kdba_allocbp
18452+ *
18453+ * Associate a hardware register with a breakpoint.
18454+ *
18455+ * Parameters:
18456+ * None.
18457+ * Outputs:
18458+ * None.
18459+ * Returns:
18460+ * A pointer to the allocated register kdbhard_bp_t structure for
18461+ * success, Null and a non-zero diagnostic for failure.
18462+ * Locking:
18463+ * None.
18464+ * Remarks:
18465+ */
18466+
18467+static kdbhard_bp_t *
18468+kdba_allocbp(kdbhard_bp_t *bph, int *diagp)
18469+{
18470+ int i;
18471+ kdbhard_bp_t *newbph;
18472+
18473+ for(i=0,newbph=kdb_hardbreaks; i < KDB_MAXHARDBPT; i++, newbph++) {
18474+ if (newbph->bph_free) {
18475+ break;
18476+ }
18477+ }
18478+
18479+ if (i == KDB_MAXHARDBPT) {
18480+ *diagp = KDB_TOOMANYDBREGS;
18481+ return NULL;
18482+ }
18483+
18484+ *diagp = 0;
18485+
18486+ /*
18487+ * Copy data from template. Can't just copy the entire template
18488+ * here because the register number in kdb_hardbreaks must be
18489+ * preserved.
18490+ */
18491+ newbph->bph_data = bph->bph_data;
18492+ newbph->bph_write = bph->bph_write;
18493+ newbph->bph_mode = bph->bph_mode;
18494+ newbph->bph_length = bph->bph_length;
18495+
18496+ /*
18497+ * Mark entry allocated.
18498+ */
18499+ newbph->bph_free = 0;
18500+
18501+ return newbph;
18502+}
18503+
18504+/*
18505+ * kdba_alloc_hwbp
18506+ *
18507+ * Associate a hardware registers with a breakpoint.
18508+ * If hw bp is global hw registers descriptor will be allocated
18509+ * on every CPU.
18510+ *
18511+ * Parameters:
18512+ * bp - hardware bp
18513+ * diagp - pointer to variable that will store error when
18514+ * function complete
18515+ * Outputs:
18516+ * None.
18517+ * Returns:
18518+ * None
18519+ * Locking:
18520+ * None.
18521+ * Remarks:
18522+ * Should be called with correct bp->bp_template.
18523+ */
18524+
18525+void
18526+kdba_alloc_hwbp(kdb_bp_t *bp, int *diagp)
18527+{
18528+ /* Note that bp->bp_hard[NR_CPU] is for x86.
18529+ * The ia64 uses bp->bp_hard[0] only.
18530+ */
18531+ bp->bp_hard[0] = kdba_allocbp(&bp->bp_template, diagp);
18532+ bp->bp_hardtype = 1;
18533+}
18534+
18535+
18536+
18537+/*
18538+ * kdba_freebp
18539+ *
18540+ * Deallocate a hardware breakpoint
18541+ *
18542+ * Parameters:
18543+ * None.
18544+ * Outputs:
18545+ * None.
18546+ * Returns:
18547+ * Zero for success, a kdb diagnostic for failure
18548+ * Locking:
18549+ * None.
18550+ * Remarks:
18551+ */
18552+
18553+static void
18554+kdba_freebp(kdbhard_bp_t *bph)
18555+{
18556+ bph->bph_free = 1;
18557+}
18558+
18559+/*
18560+ * kdba_free_hwbp
18561+ *
18562+ * Frees allocated hw registers descriptors for bp.
18563+ * If hw bp is global, hw registers descriptors will be freed
18564+ * on every CPU.
18565+ *
18566+ * Parameters:
18567+ * bp - hardware bp
18568+ * Outputs:
18569+ * None.
18570+ * Returns:
18571+ * None
18572+ * Locking:
18573+ * None.
18574+ * Remarks:
18575+ * Should be called with correct bp->bp_template
18576+ */
18577+
18578+void
18579+kdba_free_hwbp(kdb_bp_t *bp)
18580+{
18581+ /* When kernel enters KDB, first, all local bps
18582+ * are removed, so here we don't need to clear
18583+ * debug registers.
18584+ */
18585+
18586+ kdba_freebp(bp->bp_hard[0]);
18587+ bp->bp_hard[0] = NULL;
18588+ bp->bp_hardtype = 0;
18589+}
18590+
18591+
18592+/*
18593+ * kdba_initbp
18594+ *
18595+ * Initialize the breakpoint table for the hardware breakpoint
18596+ * register.
18597+ *
18598+ * Parameters:
18599+ * None.
18600+ * Outputs:
18601+ * None.
18602+ * Returns:
18603+ * Zero for success, a kdb diagnostic for failure
18604+ * Locking:
18605+ * None.
18606+ * Remarks:
18607+ *
18608+ * There is one entry per register. On the ia64 architecture
18609+ * all the registers are interchangeable, so no special allocation
18610+ * criteria are required.
18611+ */
18612+
18613+void
18614+kdba_initbp(void)
18615+{
18616+ int i;
18617+ kdbhard_bp_t *bph;
18618+
18619+ /*
18620+ * Clear the hardware breakpoint table
18621+ */
18622+
18623+ memset(kdb_hardbreaks, '\0', sizeof(kdb_hardbreaks));
18624+
18625+ for(i=0,bph=kdb_hardbreaks; i<KDB_MAXHARDBPT; i++, bph++) {
18626+ bph->bph_reg = i;
18627+ bph->bph_free = 1;
18628+ }
18629+}
18630+
18631+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18632+/*
18633+ * Enable Instruction Debug & Data Debug faults on this CPU now.
18634+ */
18635+static inline void kdba_enable_debug_faults(void)
18636+{
18637+ unsigned long tmp;
18638+
18639+ tmp = ia64_getreg(_IA64_REG_PSR);
18640+ ia64_stop();
18641+ tmp |= IA64_PSR_DB;
18642+ ia64_stop();
18643+ ia64_setreg(_IA64_REG_PSR_L, tmp);
18644+ ia64_srlz_i();
18645+ if (KDB_DEBUG(BP))
18646+ kdb_printf("enabling debug faults: [%d]PSR.L=%08x\n",
18647+ smp_processor_id(), (unsigned int)tmp);
18648+}
18649+
18650+/*
18651+ * Disable Instruction Debug & Data Debug faults on this CPU now.
18652+ */
18653+static inline void kdba_disable_debug_faults(void)
18654+{
18655+ unsigned long tmp;
18656+
18657+ tmp = ia64_getreg(_IA64_REG_PSR);
18658+ ia64_stop();
18659+ tmp &= ~IA64_PSR_DB;
18660+ ia64_stop();
18661+ ia64_setreg(_IA64_REG_PSR_L, tmp);
18662+ ia64_srlz_i();
18663+ if (KDB_DEBUG(BP))
18664+ kdb_printf("disabling debug faults: [%d]PSR.L=%08x\n",
18665+ smp_processor_id(), (unsigned int)tmp);
18666+}
18667+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18668+
18669+/*
18670+ * kdba_installbp
18671+ *
18672+ * Install a breakpoint
18673+ *
18674+ * Parameters:
18675+ * regs Exception frame
18676+ * bp Breakpoint structure for the breakpoint to be installed
18677+ * Outputs:
18678+ * None.
18679+ * Returns:
18680+ * 0 if breakpoint set, otherwise error.
18681+ * Locking:
18682+ * None.
18683+ * Remarks:
18684+ * For hardware breakpoints, a debug register is allocated
18685+ * and assigned to the breakpoint. If no debug register is
18686+ * available, a warning message is printed and the breakpoint
18687+ * is disabled.
18688+ *
18689+ * For instruction replacement breakpoints, we must single-step
18690+ * over the replaced instruction at this point so we can re-install
18691+ * the breakpoint instruction after the single-step. SSBPT is set
18692+ * when the breakpoint is initially hit and is cleared by any action
18693+ * that removes the need for single-step over the breakpoint.
18694+ */
18695+
18696+int
18697+kdba_installbp(struct pt_regs *regs, kdb_bp_t *bp)
18698+{
18699+ /*
18700+ * Install the breakpoint, if it is not already installed.
18701+ */
18702+
18703+ if (KDB_DEBUG(BP)) {
18704+ kdb_printf("kdba_installbp bp_installed %d\n", bp->bp_installed);
18705+ }
18706+ if (!KDB_STATE(SSBPT))
18707+ bp->bp_delay = 0;
18708+
18709+ if (bp->bp_hardtype) {
18710+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18711+ /*
18712+ * Hardware breakpoints are always local for the
18713+ * purposes of installation (i.e. they use per-cpu
18714+ * registers), so we don't need to check bp_installed
18715+ */
18716+ kdba_installdbreg(bp);
18717+ if (++kdb_dbrs_used[smp_processor_id()] == 1)
18718+ kdba_enable_debug_faults();
18719+ bp->bp_installed = 1;
18720+ if (KDB_DEBUG(BP)) {
18721+ kdb_printf("kdba_installbp hardware reg %ld at " kdb_bfd_vma_fmt0 "\n",
18722+ bp->bp_hard[0]->bph_reg, bp->bp_addr);
18723+ }
18724+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18725+
18726+ } else if (bp->bp_delay) {
18727+ if (!bp->bp_installed) {
18728+ if (KDB_DEBUG(BP))
18729+ kdb_printf("kdba_installbp delayed bp\n");
18730+ kdba_handle_bp(regs, bp);
18731+ }
18732+ } else {
18733+ if (!bp->bp_installed) {
18734+ /* Software breakpoints always use slot 0 in the 128 bit
18735+ * bundle. The template type does not matter, slot 0
18736+ * can only be M or B and the encodings for break.m and
18737+ * break.b are the same.
18738+ */
18739+ unsigned long break_inst;
18740+ if (kdb_getarea_size(bp->bp_inst.inst, bp->bp_addr, sizeof(bp->bp_inst.inst))) {
18741+ kdb_printf("kdba_installbp failed to read software breakpoint at 0x%lx\n", bp->bp_addr);
18742+ return(1);
18743+ }
18744+ break_inst = (bp->bp_inst.inst[0] & ~INST_SLOT0_MASK) | BREAK_INSTR;
18745+ if (kdb_putarea_size(bp->bp_addr, &break_inst, sizeof(break_inst))) {
18746+ kdb_printf("kdba_installbp failed to set software breakpoint at 0x%lx\n", bp->bp_addr);
18747+ return(1);
18748+ }
18749+ if (KDB_DEBUG(BP))
18750+ kdb_printf("kdba_installbp instruction 0x%lx at " kdb_bfd_vma_fmt0 "\n",
18751+ BREAK_INSTR, bp->bp_addr);
18752+ bp->bp_installed = 1;
18753+ flush_icache_range(bp->bp_addr, bp->bp_addr+16);
18754+ }
18755+ }
18756+ return(0);
18757+}
18758+
18759+/*
18760+ * kdba_removebp
18761+ *
18762+ * Make a breakpoint ineffective.
18763+ *
18764+ * Parameters:
18765+ * None.
18766+ * Outputs:
18767+ * None.
18768+ * Returns:
18769+ * 0 if breakpoint removed, otherwise error.
18770+ * Locking:
18771+ * None.
18772+ * Remarks:
18773+ */
18774+
18775+int
18776+kdba_removebp(kdb_bp_t *bp)
18777+{
18778+ /*
18779+ * For hardware breakpoints, remove it from the active register,
18780+ * for software breakpoints, restore the instruction stream.
18781+ */
18782+ if (KDB_DEBUG(BP)) {
18783+ kdb_printf("kdba_removebp bp_installed %d\n", bp->bp_installed);
18784+ }
18785+
18786+ if (bp->bp_hardtype) {
18787+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18788+ if (KDB_DEBUG(BP)) {
18789+ kdb_printf("kdb: removing hardware reg %ld at " kdb_bfd_vma_fmt0 "\n",
18790+ bp->bp_hard[0]->bph_reg, bp->bp_addr);
18791+ }
18792+ if (--kdb_dbrs_used[smp_processor_id()] == 0)
18793+ kdba_disable_debug_faults();
18794+ kdba_removedbreg(bp);
18795+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18796+ } else {
18797+ if (bp->bp_installed) {
18798+ if (KDB_DEBUG(BP))
18799+ kdb_printf("kdb: restoring instruction 0x%016lx%016lx at " kdb_bfd_vma_fmt0 "\n",
18800+ bp->bp_inst.inst[0], bp->bp_inst.inst[1], bp->bp_addr);
18801+ if (kdba_putarea_size(bp->bp_addr, bp->bp_inst.inst, sizeof(bp->bp_inst.inst)))
18802+ return(1);
18803+ }
18804+ bp->bp_installed = 0;
18805+ flush_icache_range(bp->bp_addr, bp->bp_addr+16);
18806+ }
18807+ return(0);
18808+}
18809--- /dev/null
18810+++ b/arch/ia64/kdb/kdba_bt.c
18811@@ -0,0 +1,285 @@
18812+/*
18813+ * Kernel Debugger Architecture Dependent Stack Traceback
18814+ *
18815+ * This file is subject to the terms and conditions of the GNU General Public
18816+ * License. See the file "COPYING" in the main directory of this archive
18817+ * for more details.
18818+ *
18819+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
18820+ */
18821+
18822+#include <linux/ctype.h>
18823+#include <linux/string.h>
18824+#include <linux/kernel.h>
18825+#include <linux/sched.h>
18826+#include <linux/kallsyms.h>
18827+#include <linux/kdb.h>
18828+#include <linux/kdbprivate.h>
18829+#include <asm/system.h>
18830+#include <asm/sections.h>
18831+
18832+/*
18833+ * bt_print_one
18834+ *
18835+ * Print one back trace entry.
18836+ *
18837+ * Inputs:
18838+ * ip Current program counter.
18839+ * symtab Information about symbol that ip falls within.
18840+ * argcount Maximum number of arguments to print.
18841+ * Outputs:
18842+ * None.
18843+ * Returns:
18844+ * None.
18845+ * Locking:
18846+ * None.
18847+ * Remarks:
18848+ * None.
18849+ */
18850+
18851+static void
18852+bt_print_one(kdb_machreg_t ip,
18853+ const kdb_symtab_t *symtab, int argcount,
18854+ struct unw_frame_info *info)
18855+{
18856+ int btsymarg = 0; /* Convert arguments to symbols */
18857+ int btsp = 0; /* Print stack and backing store pointers */
18858+ int nosect = 0; /* Suppress section data */
18859+ int args;
18860+ kdb_machreg_t sp, bsp, cfm;
18861+
18862+ kdbgetintenv("BTSYMARG", &btsymarg);
18863+ kdbgetintenv("BTSP", &btsp);
18864+ kdbgetintenv("NOSECT", &nosect);
18865+
18866+ unw_get_sp(info, &sp);
18867+ unw_get_bsp(info, &bsp);
18868+ unw_get_cfm(info, &cfm);
18869+ kdb_symbol_print(ip, symtab, KDB_SP_VALUE|KDB_SP_NEWLINE);
18870+ args = (cfm >> 7) & 0x7f; /* sol */
18871+ if (!args)
18872+ args = cfm & 0x7f; /* no in/local, use sof instead */
18873+ if (argcount && args) {
18874+ int i, argc = args;
18875+
18876+ kdb_printf(" args (");
18877+ if (argc > argcount)
18878+ argc = argcount;
18879+
18880+ for(i = 0; i < argc; i++){
18881+ kdb_machreg_t arg;
18882+ char nat;
18883+ if (unw_access_gr(info, i+32, &arg, &nat, 0))
18884+ arg = 0;
18885+
18886+ if (i)
18887+ kdb_printf(", ");
18888+ kdb_printf("0x%lx", arg);
18889+ }
18890+ kdb_printf(")\n");
18891+ if (btsymarg) {
18892+ kdb_symtab_t arg_symtab;
18893+ kdb_machreg_t arg;
18894+ for(i = 0; i < argc; i++){
18895+ char nat;
18896+ if (unw_access_gr(info, i+32, &arg, &nat, 0))
18897+ arg = 0;
18898+ if (kdbnearsym(arg, &arg_symtab)) {
18899+ kdb_printf(" arg %d ", i);
18900+ kdb_symbol_print(arg, &arg_symtab, KDB_SP_DEFAULT|KDB_SP_NEWLINE);
18901+ }
18902+ }
18903+ }
18904+ }
18905+ if (symtab->sym_name) {
18906+ if (!nosect) {
18907+ kdb_printf(" %s", symtab->mod_name);
18908+ if (symtab->sec_name)
18909+ kdb_printf(" %s 0x%lx", symtab->sec_name, symtab->sec_start);
18910+ kdb_printf(" 0x%lx", symtab->sym_start);
18911+ if (symtab->sym_end)
18912+ kdb_printf(" 0x%lx", symtab->sym_end);
18913+ kdb_printf("\n");
18914+ }
18915+ if (strncmp(symtab->sym_name, "ia64_spinlock_contention", 24) == 0) {
18916+ kdb_machreg_t r31;
18917+ char nat;
18918+ kdb_printf(" r31 (spinlock address) ");
18919+ if (unw_access_gr(info, 31, &r31, &nat, 0))
18920+ r31 = 0;
18921+ kdb_symbol_print(r31, NULL, KDB_SP_VALUE|KDB_SP_NEWLINE);
18922+ }
18923+ }
18924+ if (btsp)
18925+ kdb_printf(" sp 0x%016lx bsp 0x%016lx cfm 0x%016lx info->pfs_loc 0x%016lx 0x%016lx\n",
18926+ sp, bsp, cfm, (u64) info->pfs_loc, info->pfs_loc ? *(info->pfs_loc) : 0);
18927+}
18928+
18929+/*
18930+ * kdba_bt_stack
18931+ *
18932+ * Unwind the ia64 backtrace for a specified process.
18933+ *
18934+ * Inputs:
18935+ * argcount
18936+ * p Pointer to task structure to unwind.
18937+ * Outputs:
18938+ * None.
18939+ * Returns:
18940+ * zero for success, a kdb diagnostic if error
18941+ * Locking:
18942+ * none.
18943+ * Remarks:
18944+ * none.
18945+ */
18946+
18947+static int
18948+kdba_bt_stack(int argcount, const struct task_struct *p)
18949+{
18950+ kdb_symtab_t symtab;
18951+ struct unw_frame_info info;
18952+ struct switch_stack *sw;
18953+ struct pt_regs *regs = NULL;
18954+ int count = 0;
18955+ int btsp = 0; /* Backtrace the kdb code as well */
18956+ u64 *prev_pfs_loc = NULL;
18957+ extern char __attribute__ ((weak)) ia64_spinlock_contention_pre3_4[];
18958+ extern char __attribute__ ((weak)) ia64_spinlock_contention_pre3_4_end[];
18959+
18960+ /*
18961+ * Upon entering kdb_main_loop, the stack frame looks like this:
18962+ *
18963+ * +---------------------+
18964+ * | struct pt_regs |
18965+ * +---------------------+
18966+ * | |
18967+ * | kernel stack |
18968+ * | |
18969+ * +=====================+ <--- top of stack upon entering kdb
18970+ * | struct pt_regs |
18971+ * +---------------------+
18972+ * | |
18973+ * | kdb stack |
18974+ * | |
18975+ * +---------------------+
18976+ * | struct switch_stack |
18977+ * +=====================+ <--- kdb_running_process[cpu].arch.sw from do_kdba_main_loop
18978+ *
18979+ * When looking at another process, we do not have the address of the
18980+ * current pt_regs, it is NULL. If the process has saved its state, use
18981+ * that pt_regs instead.
18982+ */
18983+
18984+ kdbgetintenv("BTSP", &btsp);
18985+
18986+ if (kdb_task_has_cpu(p)) {
18987+ struct kdb_running_process *krp = kdb_running_process + kdb_process_cpu(p);
18988+ if (krp->seqno) {
18989+ sw = krp->arch.sw;
18990+ regs = krp->regs;
18991+ }
18992+ else
18993+ sw = NULL;
18994+ }
18995+ else {
18996+ /* Not running, assume blocked */
18997+ sw = (struct switch_stack *) (p->thread.ksp + 16);
18998+ }
18999+ if (!sw) {
19000+ kdb_printf("Process does not have a switch_stack, cannot backtrace\n");
19001+ kdb_ps1(p);
19002+ return 0;
19003+ }
19004+
19005+ unw_init_frame_info(&info, (struct task_struct *)p, sw);
19006+
19007+ /* If we have the address of pt_regs, suppress backtrace on the frames below
19008+ * pt_regs. No point in displaying kdb itself, unless the user is debugging
19009+ * the unwinder using set BTSP=1.
19010+ */
19011+ if (regs && !btsp) {
19012+ kdb_machreg_t sp;
19013+ if (user_mode(regs)) {
19014+ kdb_printf("Process was interrupted in user mode, no backtrace available\n");
19015+ return 0;
19016+ }
19017+ do {
19018+ unw_get_sp(&info, &sp);
19019+ if (sp >= (kdb_machreg_t)regs)
19020+ break;
19021+ } while (unw_unwind(&info) >= 0 && count++ < 200);
19022+ }
19023+
19024+ do {
19025+ kdb_machreg_t ip;
19026+
19027+ /* Avoid unsightly console message from unw_unwind() when attempting
19028+ * to unwind through the Interrupt Vector Table which has no unwind
19029+ * information. dispatch_illegal_op_fault() is an exception, it sits
19030+ * in the 0x3c00 slot.
19031+ */
19032+ if (info.ip >= (u64)__start_ivt_text && info.ip < (u64)__end_ivt_text) {
19033+ if (info.ip < (u64)__start_ivt_text + 0x3c00 ||
19034+ info.ip >= (u64)__start_ivt_text + 0x4000)
19035+ return 0;
19036+ }
19037+
19038+ /* WAR for spinlock contention from leaf functions. ia64_spinlock_contention_pre3_4
19039+ * has ar.pfs == r0. Leaf functions do not modify ar.pfs so ar.pfs remains
19040+ * as 0, stopping the backtrace. Record the previous ar.pfs when the current
19041+ * IP is in ia64_spinlock_contention_pre3_4 then unwind, if pfs_loc has not changed
19042+ * after unwind then use pt_regs.ar_pfs which is where the real ar.pfs is for
19043+ * leaf functions.
19044+ */
19045+ if (prev_pfs_loc && regs && info.pfs_loc == prev_pfs_loc)
19046+ info.pfs_loc = &regs->ar_pfs;
19047+ prev_pfs_loc = (info.ip >= (u64)ia64_spinlock_contention_pre3_4 &&
19048+ info.ip < (u64)ia64_spinlock_contention_pre3_4_end) ?
19049+ info.pfs_loc : NULL;
19050+
19051+ unw_get_ip(&info, &ip);
19052+ if (ip == 0)
19053+ break;
19054+
19055+ kdbnearsym(ip, &symtab);
19056+ if (!symtab.sym_name) {
19057+ kdb_printf("0x%0*lx - No name. May be an area that has no unwind data\n",
19058+ (int)(2*sizeof(ip)), ip);
19059+ return 0;
19060+ }
19061+ bt_print_one(ip, &symtab, argcount, &info);
19062+ } while (unw_unwind(&info) >= 0 && count++ < 200);
19063+ if (count >= 200)
19064+ kdb_printf("bt truncated, count limit reached\n");
19065+
19066+ return 0;
19067+}
19068+
19069+int
19070+kdba_bt_address(kdb_machreg_t addr, int argcount)
19071+{
19072+ kdb_printf("Backtrace from a stack address is not supported on ia64\n");
19073+ return KDB_NOTIMP;
19074+}
19075+
19076+/*
19077+ * kdba_bt_process
19078+ *
19079+ * Do a backtrace for a specified process.
19080+ *
19081+ * Inputs:
19082+ * p Struct task pointer extracted by 'bt' command.
19083+ * argcount
19084+ * Outputs:
19085+ * None.
19086+ * Returns:
19087+ * zero for success, a kdb diagnostic if error
19088+ * Locking:
19089+ * none.
19090+ */
19091+
19092+int
19093+kdba_bt_process(const struct task_struct *p, int argcount)
19094+{
19095+ return kdba_bt_stack(argcount, p);
19096+}
19097--- /dev/null
19098+++ b/arch/ia64/kdb/kdba_fru.c
19099@@ -0,0 +1,65 @@
19100+/*
19101+ * Kernel Debugger Architecture Dependent FRU functions.
19102+ *
19103+ * This file is subject to the terms and conditions of the GNU General Public
19104+ * License. See the file "COPYING" in the main directory of this archive
19105+ * for more details.
19106+ *
19107+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
19108+ */
19109+
19110+#include <linux/types.h>
19111+#include <linux/kdb.h>
19112+#include <linux/kdbprivate.h>
19113+#include <linux/module.h>
19114+#include <asm/sal.h>
19115+#include <asm/sn/sn_sal.h>
19116+
19117+MODULE_AUTHOR("Jesse Barnes");
19118+MODULE_DESCRIPTION("Capture FRU data");
19119+MODULE_LICENSE("GPL");
19120+
19121+/**
19122+ * kdba_fru - capture FRU data
19123+ * @argc: arg count
19124+ * @argv: arg values
19125+ *
19126+ * Tell the system contollers to capture FRU data
19127+ */
19128+static int
19129+kdba_fru(int argc, const char **argv)
19130+{
19131+ u64 ret;
19132+
19133+ kdb_printf("Capturing FRU data...");
19134+ ret = ia64_sn_fru_capture();
19135+ kdb_printf("done.\n");
19136+ return ret;
19137+}
19138+
19139+/**
19140+ * kdba_fru_init - register 'fru' command with kdb
19141+ *
19142+ * Register the 'fru' command with kdb at load time.
19143+ */
19144+static int __init
19145+kdba_fru_init(void)
19146+{
19147+ kdb_register("fru", kdba_fru, 0, "Capture FRU data", 0);
19148+
19149+ return 0;
19150+}
19151+
19152+/**
19153+ * kdba_fru_exit - unregister the 'fru' command
19154+ *
19155+ * Tell kdb that the 'fru' command is no longer available.
19156+ */
19157+static void __exit
19158+kdba_fru_exit(void)
19159+{
19160+ kdb_unregister("fru");
19161+}
19162+
19163+module_init(kdba_fru_init)
19164+module_exit(kdba_fru_exit)
19165--- /dev/null
19166+++ b/arch/ia64/kdb/kdba_id.c
19167@@ -0,0 +1,529 @@
19168+/*
19169+ * Kernel Debugger Architecture Dependent Instruction Disassembly
19170+ *
19171+ * This file is subject to the terms and conditions of the GNU General Public
19172+ * License. See the file "COPYING" in the main directory of this archive
19173+ * for more details.
19174+ *
19175+ * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
19176+ */
19177+
19178+#include <stdarg.h>
19179+#include <linux/kernel.h>
19180+#include <linux/init.h>
19181+#include <linux/ctype.h>
19182+#include <linux/string.h>
19183+#include <linux/kdb.h>
19184+#include <linux/kdbprivate.h>
19185+#include <asm/patch.h>
19186+
19187+#define KDBA_PRINTBUF_LEN 64 /* buffer len to print a single instr */
19188+#define KDBA_READBUFFER_LEN 256 /* buffer for BFD disassembler */
19189+
19190+#define BUNDLE_MULTIPLIER 3 /* how many instr/bundle */
19191+#define BUNDLE_SIZE 16 /* how many bytes/bundle */
19192+#define KDBA_DEFAULT_IDLEN 3 /* default number of bundles to disassemble */
19193+
19194+/*
19195+ * kdba_dis_getsym
19196+ *
19197+ * Get a symbol for the disassembler.
19198+ *
19199+ * Parameters:
19200+ * addr Address for which to get symbol
19201+ * dip Pointer to disassemble_info
19202+ * Returns:
19203+ * 0
19204+ * Locking:
19205+ * Remarks:
19206+ * Not used for kdb.
19207+ */
19208+
19209+/* ARGSUSED */
19210+static int
19211+kdba_dis_getsym(bfd_vma addr, disassemble_info *dip)
19212+{
19213+
19214+ return 0;
19215+}
19216+
19217+/*
19218+ * kdba_printaddress
19219+ *
19220+ * Print (symbolically) an address.
19221+ *
19222+ * Parameters:
19223+ * addr Address for which to get symbol
19224+ * dip Pointer to disassemble_info
19225+ * flag True if a ":<tab>" sequence should follow the address
19226+ * Returns:
19227+ * 0
19228+ * Locking:
19229+ * Remarks:
19230+ *
19231+ */
19232+
19233+/* ARGSUSED */
19234+static void
19235+kdba_printaddress(kdb_machreg_t addr, disassemble_info *dip, int flag)
19236+{
19237+ kdb_symtab_t symtab;
19238+ int spaces = 5;
19239+ unsigned int offset;
19240+ int slot;
19241+
19242+ /* Some code prints slot number, some prints "byte" offset
19243+ * from start of bundle. Standardise on "byte" offset.
19244+ */
19245+ slot = addr & 0x0f;
19246+ if (slot < 3)
19247+ slot *= 6;
19248+ addr = (addr & ~0x0f) + slot;
19249+
19250+ /*
19251+ * Print a symbol name or address as necessary.
19252+ */
19253+ dip->fprintf_func(dip->stream, "0x%0*lx ", (int)(2*sizeof(addr)), addr);
19254+ kdbnearsym(addr, &symtab);
19255+ if (symtab.sym_name) {
19256+ /* Do not use kdb_symbol_print here, it always does
19257+ * kdb_printf but we want dip->fprintf_func.
19258+ */
19259+ dip->fprintf_func(dip->stream, "%s", symtab.sym_name);
19260+ if ((offset = addr - symtab.sym_start) == 0) {
19261+ spaces += 4;
19262+ }
19263+ else {
19264+ unsigned int o = offset;
19265+ while (o >>= 4)
19266+ --spaces;
19267+ dip->fprintf_func(dip->stream, "+0x%x", offset);
19268+ }
19269+ }
19270+
19271+ if (flag) {
19272+ if (spaces < 1) {
19273+ spaces = 1;
19274+ }
19275+ dip->fprintf_func(dip->stream, ":%*s", spaces, " ");
19276+ }
19277+}
19278+
19279+/* Calls outside the current kernel module use a PLT */
19280+
19281+static int addr_maybe_plt;
19282+
19283+/* The templates below were extracted from arch/ia64/kernel/module.c. The
19284+ * masks were generated by this quick and dirty program:
19285+ */
19286+
19287+#if 0 /* mask program */
19288+#include <stdio.h>
19289+
19290+#define u64 unsigned long
19291+
19292+/* routines copied from arch/ia64/kernel/patch.c */
19293+
19294+static void
19295+ia64_patch (u64 insn_addr, u64 mask, u64 val)
19296+{
19297+ u64 m0, m1, v0, v1, b0, b1, *b = (u64 *) (insn_addr & -16);
19298+# define insn_mask ((1UL << 41) - 1)
19299+ unsigned long shift;
19300+
19301+ b0 = b[0]; b1 = b[1];
19302+ shift = 5 + 41 * (insn_addr % 16); /* 5 bits of template, then 3 x 41-bit instructions */
19303+ if (shift >= 64) {
19304+ m1 = mask << (shift - 64);
19305+ v1 = val << (shift - 64);
19306+ } else {
19307+ m0 = mask << shift; m1 = mask >> (64 - shift);
19308+ v0 = val << shift; v1 = val >> (64 - shift);
19309+ b[0] = (b0 & ~m0) | (v0 & m0);
19310+ }
19311+ b[1] = (b1 & ~m1) | (v1 & m1);
19312+}
19313+
19314+static void
19315+ia64_patch_imm64 (u64 insn_addr, u64 val)
19316+{
19317+ /* The assembler may generate offset pointing to either slot 1
19318+ or slot 2 for a long (2-slot) instruction, occupying slots 1
19319+ and 2. */
19320+ insn_addr &= -16UL;
19321+ ia64_patch(insn_addr + 2,
19322+ 0x01fffefe000UL, ( ((val & 0x8000000000000000UL) >> 27) /* bit 63 -> 36 */
19323+ | ((val & 0x0000000000200000UL) << 0) /* bit 21 -> 21 */
19324+ | ((val & 0x00000000001f0000UL) << 6) /* bit 16 -> 22 */
19325+ | ((val & 0x000000000000ff80UL) << 20) /* bit 7 -> 27 */
19326+ | ((val & 0x000000000000007fUL) << 13) /* bit 0 -> 13 */));
19327+ ia64_patch(insn_addr + 1, 0x1ffffffffffUL, val >> 22);
19328+}
19329+
19330+static void
19331+ia64_patch_imm60 (u64 insn_addr, u64 val)
19332+{
19333+ /* The assembler may generate offset pointing to either slot 1
19334+ or slot 2 for a long (2-slot) instruction, occupying slots 1
19335+ and 2. */
19336+ insn_addr &= -16UL;
19337+ ia64_patch(insn_addr + 2,
19338+ 0x011ffffe000UL, ( ((val & 0x0800000000000000UL) >> 23) /* bit 59 -> 36 */
19339+ | ((val & 0x00000000000fffffUL) << 13) /* bit 0 -> 13 */));
19340+ ia64_patch(insn_addr + 1, 0x1fffffffffcUL, val >> 18);
19341+}
19342+
19343+struct plt_entry {
19344+ unsigned char bundle[3][16];
19345+};
19346+static struct plt_entry ia64_plt_mask;
19347+
19348+int main(void)
19349+{
19350+ int i, j;
19351+ printf("2 bundle\n");
19352+ for (i = 0; i < 2; ++i)
19353+ for (j = 0; j < 16; ++j)
19354+ ia64_plt_mask.bundle[i][j] = 0xff;
19355+ ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 0), 0);
19356+ ia64_patch_imm60((u64) (ia64_plt_mask.bundle + 1), 0);
19357+ for (i = 0; i < 2; ++i) {
19358+ for (j = 0; j < 16; ++j) {
19359+ printf("0x%02x", ia64_plt_mask.bundle[i][j]);
19360+ if (j != 15)
19361+ printf(", ");
19362+ if (j % 6 == 5 || j == 15)
19363+ printf("\n");
19364+ }
19365+ }
19366+ printf("\n3 bundle\n");
19367+ for (i = 0; i < 3; ++i)
19368+ for (j = 0; j < 16; ++j)
19369+ ia64_plt_mask.bundle[i][j] = 0xff;
19370+ ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 0), 0);
19371+ ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 1), 0);
19372+ for (i = 0; i < 3; ++i) {
19373+ for (j = 0; j < 16; ++j) {
19374+ printf("0x%02x", ia64_plt_mask.bundle[i][j]);
19375+ if (j != 15)
19376+ printf(", ");
19377+ if (j % 6 == 5 || j == 15)
19378+ printf("\n");
19379+ }
19380+ }
19381+ return 0;
19382+}
19383+#endif /* mask program */
19384+
19385+#ifdef CONFIG_IA64_BRL_EMU
19386+#define PLT_BUNDLES 3
19387+struct plt_entry {
19388+ unsigned char bundle[PLT_BUNDLES][16];
19389+};
19390+static const struct plt_entry ia64_plt_template = {
19391+ {
19392+ {
19393+ 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19394+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* movl r16=TARGET_IP */
19395+ 0x02, 0x00, 0x00, 0x60
19396+ },
19397+ {
19398+ 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19399+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* movl gp=TARGET_GP */
19400+ 0x00, 0x00, 0x00, 0x60
19401+ },
19402+ {
19403+ 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MIB] nop.m 0 */
19404+ 0x60, 0x80, 0x04, 0x80, 0x03, 0x00, /* mov b6=r16 */
19405+ 0x60, 0x00, 0x80, 0x00 /* br.few b6 */
19406+ }
19407+ }
19408+};
19409+static const struct plt_entry ia64_plt_mask = {
19410+ {
19411+ {
19412+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19413+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl r16=TARGET_IP */
19414+ 0x0f, 0x08, 0x00, 0xf0
19415+ },
19416+ {
19417+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19418+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl gp=TARGET_GP */
19419+ 0x0f, 0x08, 0x00, 0xf0
19420+ },
19421+ {
19422+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* [MIB] nop.m 0 */
19423+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* mov b6=r16 */
19424+ 0xff, 0xff, 0xff, 0xff /* br.few b6 */
19425+ }
19426+};
19427+
19428+#else /* !CONFIG_IA64_BRL_EMU */
19429+
19430+#define PLT_BUNDLES 2
19431+struct plt_entry {
19432+ unsigned char bundle[PLT_BUNDLES][16];
19433+};
19434+static const struct plt_entry ia64_plt_template = {
19435+ {
19436+ {
19437+ 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19438+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* movl gp=TARGET_GP */
19439+ 0x00, 0x00, 0x00, 0x60
19440+ },
19441+ {
19442+ 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19443+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.many TARGET_IP */
19444+ 0x08, 0x00, 0x00, 0xc0
19445+ }
19446+ }
19447+};
19448+static const struct plt_entry ia64_plt_mask = {
19449+ {
19450+ {
19451+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19452+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl gp=TARGET_GP */
19453+ 0x0f, 0x08, 0x00, 0xf0
19454+ },
19455+ {
19456+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* [MLX] nop.m 0 */
19457+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* brl.many TARGET_IP */
19458+ 0x0f, 0x00, 0x00, 0xf7
19459+ }
19460+ }
19461+};
19462+#endif /* CONFIG_IA64_BRL_EMU */
19463+
19464+static inline u64
19465+get_slot(u64 bundle, int slot)
19466+{
19467+ switch (slot) {
19468+ case 0:
19469+ return (((u64 *)bundle)[0] >> 5) & 0x1ffffffffffLL;
19470+ case 1:
19471+ return ((((u64 *)bundle)[0] >> 46) & 0x3ffff) |
19472+ ((((u64 *)bundle)[1] & 0x7fffff) << 18);
19473+ default:
19474+ return (((u64 *)bundle)[1] >> 23) & 0x1ffffffffffLL;
19475+ }
19476+}
19477+
19478+static inline u64
19479+get_movl (u64 addr)
19480+{
19481+ /* X2 format */
19482+ u64 slot1 = get_slot(addr, 1), slot2 = get_slot(addr, 2);
19483+ u64 i, imm9d, imm5c, ic, imm7b, imm41;
19484+ i = (slot2 >> 36) & 0x1UL;
19485+ imm9d = (slot2 >> 27) & 0xfffUL;
19486+ imm5c = (slot2 >> 22) & 0x1fUL;
19487+ ic = (slot2 >> 21) & 0x1UL;
19488+ imm7b = (slot2 >> 13) & 0x7fUL;
19489+ imm41 = slot1;
19490+ return (i << 63) | (imm41 << 22) | (ic << 21) | (imm5c << 16) |
19491+ (imm9d << 7) | imm7b;
19492+}
19493+
19494+static inline u64
19495+get_brl (u64 addr)
19496+{
19497+ /* X3 format */
19498+ u64 slot1 = get_slot(addr, 1), slot2 = get_slot(addr, 2);
19499+ u64 i, imm20b, imm39;
19500+ i = (slot2 >> 36) & 0x1UL;
19501+ imm20b = (slot2 >> 13) & 0xfffffUL;
19502+ imm39 = slot1 >> 2;
19503+ return ((i << 59) | (imm39 << 20) | imm20b) << 4;
19504+}
19505+
19506+static bfd_vma
19507+is_plt(bfd_vma addr) {
19508+ int i, j;
19509+ u64 target;
19510+ struct plt_entry plt;
19511+ if (kdb_getarea_size(&plt, addr, sizeof(plt)))
19512+ return 0;
19513+ for (i = 0; i < PLT_BUNDLES; ++i) {
19514+ for (j = 0; j < 16; ++j) {
19515+ if ((plt.bundle[i][j] & ia64_plt_mask.bundle[i][j]) !=
19516+ ia64_plt_template.bundle[i][j])
19517+ return 0;
19518+ }
19519+ }
19520+ if (PLT_BUNDLES == 2) {
19521+ /* brl is IP relative, in second bundle */
19522+ target = get_brl(addr + 16) + addr + 16;
19523+ } else {
19524+ /* movl is absolute, in first bundle */
19525+ target = get_movl(addr);
19526+ }
19527+ return target;
19528+}
19529+
19530+/*
19531+ * kdba_dis_printaddr
19532+ *
19533+ * Print (symbolically) an address. Called by GNU disassembly
19534+ * code via disassemble_info structure.
19535+ *
19536+ * Parameters:
19537+ * addr Address for which to get symbol
19538+ * dip Pointer to disassemble_info
19539+ * Returns:
19540+ * 0
19541+ * Locking:
19542+ * Remarks:
19543+ * This function will never append ":<tab>" to the printed
19544+ * symbolic address. If the address may be a PLT entry then try to decode
19545+ * the PLT information.
19546+ */
19547+
19548+static void
19549+kdba_dis_printaddr(bfd_vma addr, disassemble_info *dip)
19550+{
19551+ bfd_vma target;
19552+ kdba_printaddress(addr, dip, 0);
19553+ if (!addr_maybe_plt)
19554+ return;
19555+ if (!(target = is_plt(addr)))
19556+ return;
19557+ kdb_printf(" PLT --> ");
19558+ kdba_printaddress(target, dip, 0);
19559+}
19560+
19561+/*
19562+ * kdba_dis_getmem
19563+ *
19564+ * Fetch 'length' bytes from 'addr' into 'buf'.
19565+ *
19566+ * Parameters:
19567+ * addr Address for which to get symbol
19568+ * buf Address of buffer to fill with bytes from 'addr'
19569+ * length Number of bytes to fetch
19570+ * dip Pointer to disassemble_info
19571+ * Returns:
19572+ * 0
19573+ * Locking:
19574+ * Remarks:
19575+ *
19576+ */
19577+
19578+/* ARGSUSED */
19579+static int
19580+kdba_dis_getmem(bfd_vma addr, bfd_byte *buf, unsigned int length, disassemble_info *dip)
19581+{
19582+ return kdb_getarea_size(buf, addr, length);
19583+}
19584+
19585+/*
19586+ * kdba_id_parsemode
19587+ *
19588+ * Parse IDMODE environment variable string and
19589+ * set appropriate value into "disassemble_info" structure.
19590+ *
19591+ * Parameters:
19592+ * mode Mode string
19593+ * dip Disassemble_info structure pointer
19594+ * Returns:
19595+ * Locking:
19596+ * Remarks:
19597+ * No mode supported yet.
19598+ */
19599+
19600+int
19601+kdba_id_parsemode(const char *mode, disassemble_info *dip)
19602+{
19603+ if (mode && strcmp(mode, "ia64"))
19604+ return KDB_BADMODE;
19605+ return 0;
19606+}
19607+
19608+/*
19609+ * kdba_check_pc
19610+ *
19611+ * Check that the pc is satisfactory.
19612+ *
19613+ * Parameters:
19614+ * pc Program Counter Value.
19615+ * Returns:
19616+ * None
19617+ * Locking:
19618+ * None.
19619+ * Remarks:
19620+ * Can change pc.
19621+ */
19622+
19623+void
19624+kdba_check_pc(kdb_machreg_t *pc)
19625+{
19626+ (*pc) &= ~0xf; /* pc must be 16 byte aligned */
19627+}
19628+
19629+/*
19630+ * kdba_id_printinsn
19631+ *
19632+ * Format and print a single bundle at 'pc'. Return the
19633+ * length of the bundle.
19634+ *
19635+ * Parameters:
19636+ * pc Program Counter Value.
19637+ * dip Disassemble_info structure pointer
19638+ * Returns:
19639+ * Length of instruction, -1 for error.
19640+ * Locking:
19641+ * None.
19642+ * Remarks:
19643+ * None.
19644+ */
19645+
19646+int
19647+kdba_id_printinsn(kdb_machreg_t pc, disassemble_info *dip)
19648+{
19649+ int ret;
19650+ int byte = 0;
19651+
19652+ kdba_check_pc(&pc);
19653+ while (byte < 16) {
19654+ kdba_dis_printaddr(pc+byte, dip);
19655+ addr_maybe_plt = 1;
19656+ ret = print_insn_ia64((kdb_machreg_t)(pc+byte), dip);
19657+ addr_maybe_plt = 0;
19658+ dip->fprintf_func(dip->stream, "\n");
19659+ if (ret < 0)
19660+ break;
19661+ byte += ret;
19662+ }
19663+ return(byte);
19664+}
19665+
19666+/*
19667+ * kdba_id_init
19668+ *
19669+ * Initialize the architecture dependent elements of
19670+ * the disassembly information structure
19671+ * for the GNU disassembler.
19672+ *
19673+ * Parameters:
19674+ * None.
19675+ * Outputs:
19676+ * None.
19677+ * Returns:
19678+ * None.
19679+ * Locking:
19680+ * None.
19681+ * Remarks:
19682+ */
19683+
19684+void
19685+kdba_id_init(disassemble_info *dip)
19686+{
19687+ dip->read_memory_func = kdba_dis_getmem;
19688+ dip->print_address_func = kdba_dis_printaddr;
19689+ dip->symbol_at_address_func = kdba_dis_getsym;
19690+
19691+ dip->flavour = bfd_target_elf_flavour;
19692+ dip->arch = bfd_arch_ia64;
19693+ dip->endian = BFD_ENDIAN_LITTLE;
19694+
19695+ dip->display_endian = BFD_ENDIAN_LITTLE;
19696+}
19697--- /dev/null
19698+++ b/arch/ia64/kdb/kdba_io.c
19699@@ -0,0 +1,661 @@
19700+/*
19701+ * Kernel Debugger Architecture Dependent Console I/O handler
19702+ *
19703+ * This file is subject to the terms and conditions of the GNU General Public
19704+ * License. See the file "COPYING" in the main directory of this archive
19705+ * for more details.
19706+ *
19707+ * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
19708+ */
19709+
19710+#include <linux/kernel.h>
19711+#include <asm/io.h>
19712+#include <linux/delay.h>
19713+#include <linux/console.h>
19714+#include <linux/ctype.h>
19715+#include <linux/keyboard.h>
19716+#include <linux/serial.h>
19717+#include <linux/serial_reg.h>
19718+
19719+#include <linux/kdb.h>
19720+#include <linux/kdbprivate.h>
19721+
19722+#if defined(CONFIG_SERIAL_8250_CONSOLE) || defined(CONFIG_SERIAL_SGI_L1_CONSOLE)
19723+#define HAVE_KDBA_SERIAL_CONSOLE
19724+#endif
19725+
19726+/* from include/linux/pc_keyb.h on 2.4 */
19727+#define KBD_STATUS_REG 0x64 /* Status register (R) */
19728+#define KBD_DATA_REG 0x60 /* Keyboard data register (R/W) */
19729+#define KBD_CMD_SET_LEDS 0xED /* Set keyboard leds */
19730+#define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
19731+#define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */
19732+#define KBD_STAT_MOUSE_OBF 0x20 /* Mouse output buffer full */
19733+
19734+#ifdef CONFIG_VT_CONSOLE
19735+#define KDB_BLINK_LED 1
19736+#else
19737+#undef KDB_BLINK_LED
19738+#endif
19739+
19740+#ifdef CONFIG_KDB_USB
19741+
19742+/* support up to 8 USB keyboards (probably excessive, but...) */
19743+#define KDB_USB_NUM_KEYBOARDS 8
19744+struct kdb_usb_kbd_info kdb_usb_kbds[KDB_USB_NUM_KEYBOARDS];
19745+
19746+extern int kdb_no_usb;
19747+
19748+static unsigned char kdb_usb_keycode[256] = {
19749+ 0, 0, 0, 0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
19750+ 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44, 2, 3,
19751+ 4, 5, 6, 7, 8, 9, 10, 11, 28, 1, 14, 15, 57, 12, 13, 26,
19752+ 27, 43, 84, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
19753+ 65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
19754+ 105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
19755+ 72, 73, 82, 83, 86,127,116,117, 85, 89, 90, 91, 92, 93, 94, 95,
19756+ 120,121,122,123,134,138,130,132,128,129,131,137,133,135,136,113,
19757+ 115,114, 0, 0, 0,124, 0,181,182,183,184,185,186,187,188,189,
19758+ 190,191,192,193,194,195,196,197,198, 0, 0, 0, 0, 0, 0, 0,
19759+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19760+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19761+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19762+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19763+ 29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
19764+ 150,158,159,128,136,177,178,176,142,152,173,140
19765+};
19766+
19767+/*
19768+ * kdb_usb_keyboard_attach()
19769+ * Attach a USB keyboard to kdb.
19770+ */
19771+int
19772+kdb_usb_keyboard_attach(struct urb *urb, unsigned char *buffer, void *poll_func)
19773+{
19774+ int i;
19775+ int rc = -1;
19776+
19777+ if (kdb_no_usb)
19778+ return 0;
19779+
19780+ /*
19781+ * Search through the array of KDB USB keyboards (kdb_usb_kbds)
19782+ * looking for a free index. If found, assign the keyboard to
19783+ * the array index.
19784+ */
19785+
19786+ for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19787+ if (kdb_usb_kbds[i].urb) /* index is already assigned */
19788+ continue;
19789+
19790+ /* found a free array index */
19791+ kdb_usb_kbds[i].urb = urb;
19792+ kdb_usb_kbds[i].buffer = buffer;
19793+ kdb_usb_kbds[i].poll_func = poll_func;
19794+
19795+ rc = 0; /* success */
19796+
19797+ break;
19798+ }
19799+
19800+ return rc;
19801+}
19802+EXPORT_SYMBOL_GPL (kdb_usb_keyboard_attach);
19803+
19804+/*
19805+ * kdb_usb_keyboard_detach()
19806+ * Detach a USB keyboard from kdb.
19807+ */
19808+int
19809+kdb_usb_keyboard_detach(struct urb *urb)
19810+{
19811+ int i;
19812+ int rc = -1;
19813+
19814+ if (kdb_no_usb)
19815+ return 0;
19816+
19817+ /*
19818+ * Search through the array of KDB USB keyboards (kdb_usb_kbds)
19819+ * looking for the index with the matching URB. If found,
19820+ * clear the array index.
19821+ */
19822+
19823+ for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19824+ if (kdb_usb_kbds[i].urb != urb)
19825+ continue;
19826+
19827+ /* found it, clear the index */
19828+ kdb_usb_kbds[i].urb = NULL;
19829+ kdb_usb_kbds[i].buffer = NULL;
19830+ kdb_usb_kbds[i].poll_func = NULL;
19831+ kdb_usb_kbds[i].caps_lock = 0;
19832+
19833+ rc = 0; /* success */
19834+
19835+ break;
19836+ }
19837+
19838+ return rc;
19839+}
19840+EXPORT_SYMBOL_GPL (kdb_usb_keyboard_detach);
19841+
19842+/*
19843+ * get_usb_char
19844+ * This function drives the USB attached keyboards.
19845+ * Fetch the USB scancode and decode it.
19846+ */
19847+static int
19848+get_usb_char(void)
19849+{
19850+ int i;
19851+ int ret;
19852+ unsigned char keycode, spec;
19853+ extern u_short plain_map[], shift_map[], ctrl_map[];
19854+
19855+ if (kdb_no_usb)
19856+ return -1;
19857+
19858+ /*
19859+ * Loop through all the USB keyboard(s) and return
19860+ * the first character obtained from them.
19861+ */
19862+
19863+ for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19864+ /* skip uninitialized keyboard array entries */
19865+ if (!kdb_usb_kbds[i].urb || !kdb_usb_kbds[i].buffer ||
19866+ !kdb_usb_kbds[i].poll_func)
19867+ continue;
19868+
19869+ /* Transfer char */
19870+ ret = (*kdb_usb_kbds[i].poll_func)(kdb_usb_kbds[i].urb);
19871+
19872+ if (ret == -EBUSY && kdb_usb_kbds[i].poll_ret != -EBUSY)
19873+ kdb_printf("NOTICE: USB HC driver BUSY. "
19874+ "USB keyboard has been disabled.\n");
19875+
19876+ kdb_usb_kbds[i].poll_ret = ret;
19877+
19878+ if (ret < 0) /* error or no characters, try the next kbd */
19879+ continue;
19880+
19881+ spec = kdb_usb_kbds[i].buffer[0];
19882+ keycode = kdb_usb_kbds[i].buffer[2];
19883+ kdb_usb_kbds[i].buffer[0] = (char)0;
19884+ kdb_usb_kbds[i].buffer[2] = (char)0;
19885+
19886+ if(kdb_usb_kbds[i].buffer[3]) {
19887+ kdb_usb_kbds[i].buffer[3] = (char)0;
19888+ continue;
19889+ }
19890+
19891+ /* A normal key is pressed, decode it */
19892+ if(keycode)
19893+ keycode = kdb_usb_keycode[keycode];
19894+
19895+ /* 2 Keys pressed at one time ? */
19896+ if (spec && keycode) {
19897+ switch(spec)
19898+ {
19899+ case 0x2:
19900+ case 0x20: /* Shift */
19901+ return shift_map[keycode];
19902+ case 0x1:
19903+ case 0x10: /* Ctrl */
19904+ return ctrl_map[keycode];
19905+ case 0x4:
19906+ case 0x40: /* Alt */
19907+ break;
19908+ }
19909+ } else if (keycode) { /* If only one key pressed */
19910+ switch(keycode)
19911+ {
19912+ case 0x1C: /* Enter */
19913+ return 13;
19914+
19915+ case 0x3A: /* Capslock */
19916+ kdb_usb_kbds[i].caps_lock = !(kdb_usb_kbds[i].caps_lock);
19917+ break;
19918+ case 0x0E: /* Backspace */
19919+ return 8;
19920+ case 0x0F: /* TAB */
19921+ return 9;
19922+ case 0x77: /* Pause */
19923+ break ;
19924+ default:
19925+ if(!kdb_usb_kbds[i].caps_lock) {
19926+ return plain_map[keycode];
19927+ }
19928+ else {
19929+ return shift_map[keycode];
19930+ }
19931+ }
19932+ }
19933+ }
19934+
19935+ /* no chars were returned from any of the USB keyboards */
19936+
19937+ return -1;
19938+}
19939+#endif /* CONFIG_KDB_USB */
19940+
19941+/*
19942+ * This module contains code to read characters from the keyboard or a serial
19943+ * port.
19944+ *
19945+ * It is used by the kernel debugger, and is polled, not interrupt driven.
19946+ *
19947+ */
19948+
19949+#ifdef KDB_BLINK_LED
19950+/*
19951+ * send: Send a byte to the keyboard controller. Used primarily to
19952+ * alter LED settings.
19953+ */
19954+
19955+static void
19956+kdb_kbdsend(unsigned char byte)
19957+{
19958+ int timeout;
19959+ for (timeout = 200 * 1000; timeout && (inb(KBD_STATUS_REG) & KBD_STAT_IBF); timeout--);
19960+ outb(byte, KBD_DATA_REG);
19961+ udelay(40);
19962+ for (timeout = 200 * 1000; timeout && (~inb(KBD_STATUS_REG) & KBD_STAT_OBF); timeout--);
19963+ inb(KBD_DATA_REG);
19964+ udelay(40);
19965+}
19966+
19967+static void
19968+kdb_toggleled(int led)
19969+{
19970+ static int leds;
19971+
19972+ leds ^= led;
19973+
19974+ kdb_kbdsend(KBD_CMD_SET_LEDS);
19975+ kdb_kbdsend((unsigned char)leds);
19976+}
19977+#endif /* KDB_BLINK_LED */
19978+
19979+#ifdef HAVE_KDBA_SERIAL_CONSOLE
19980+
19981+struct kdb_serial kdb_serial;
19982+enum kdba_serial_console kdba_serial_console;
19983+static int get_serial_char(void);
19984+
19985+/* There must be a serial_inp_xxx() and get_serial_char_xxx() for each type
19986+ * of console. See enum kdba_serial_console in include/asm-$(ARCH)/kdbprivate.h.
19987+ */
19988+
19989+#ifdef CONFIG_SERIAL_8250_CONSOLE
19990+
19991+static unsigned int
19992+serial_inp_standard(const struct kdb_serial *kdb_serial, int offset)
19993+{
19994+ offset <<= kdb_serial->ioreg_shift;
19995+
19996+ switch (kdb_serial->io_type) {
19997+ case SERIAL_IO_MEM:
19998+ return readb((void __iomem *)(kdb_serial->iobase + offset));
19999+ break;
20000+ default:
20001+ return inb(kdb_serial->iobase + offset);
20002+ break;
20003+ }
20004+}
20005+
20006+/* Check if there is a byte ready at the serial port */
20007+static int
20008+get_serial_char_standard(void)
20009+{
20010+ unsigned char ch;
20011+ static unsigned long fifon;
20012+ if (fifon == 0) {
20013+ /* try to set the FIFO */
20014+ fifon = kdb_serial.iobase +
20015+ (UART_FCR << kdb_serial.ioreg_shift);
20016+ switch (kdb_serial.io_type) {
20017+ case SERIAL_IO_MEM:
20018+ writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR |
20019+ UART_FCR_CLEAR_XMIT), (void __iomem *)fifon);
20020+ break;
20021+ default:
20022+ outb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR |
20023+ UART_FCR_CLEAR_XMIT), fifon);
20024+ break;
20025+ }
20026+ }
20027+
20028+ if (kdb_serial.iobase == 0)
20029+ return -1;
20030+
20031+ if (serial_inp_standard(&kdb_serial, UART_LSR) & UART_LSR_DR) {
20032+ ch = serial_inp_standard(&kdb_serial, UART_RX);
20033+ if (ch == 0x7f)
20034+ ch = 8;
20035+ return ch;
20036+ }
20037+ return -1;
20038+}
20039+
20040+#else /* !CONFIG_SERIAL_8250_CONSOLE */
20041+
20042+#define get_serial_char_standard() -1
20043+
20044+#endif /* CONFIG_SERIAL_8250_CONSOLE */
20045+
20046+#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
20047+
20048+extern u64 master_node_bedrock_address;
20049+
20050+/* UART registers on the Bedrock start at 0x80 */
20051+
20052+extern int l1_serial_in_polled(void);
20053+extern int l1_control_in_polled(int);
20054+
20055+/* Read a byte from the L1 port. kdb_serial is ignored */
20056+static unsigned int
20057+serial_inp_sgi_l1(const struct kdb_serial *kdb_serial, int offset)
20058+{
20059+ if (offset & 0x80) {
20060+ int counter = 10000;
20061+ unsigned int value;
20062+ while ( counter-- ) {
20063+ value = l1_serial_in_polled();
20064+ /* Gobble up the 0's */
20065+ if ( value )
20066+ return(value);
20067+ }
20068+ return(0);
20069+ }
20070+ else {
20071+ return l1_control_in_polled(offset);
20072+ }
20073+}
20074+
20075+/* Check if there is a byte ready at the L1 port. */
20076+static int
20077+get_serial_char_sgi_l1(void)
20078+{
20079+ unsigned char ch;
20080+ int status;
20081+
20082+ if ((status = serial_inp_sgi_l1(&kdb_serial, UART_LSR)) & UART_LSR_DR) {
20083+ ch = serial_inp_sgi_l1(&kdb_serial, UART_RX | 0x80); /* bedrock offset */
20084+ if (ch == 0x7f)
20085+ ch = 8;
20086+ return ch;
20087+ }
20088+ return -1;
20089+}
20090+
20091+#else /* !CONFIG_SERIAL_SGI_L1_CONSOLE */
20092+
20093+#define get_serial_char_sgi_l1() -1
20094+
20095+#endif /* CONFIG_SERIAL_SGI_L1_CONSOLE */
20096+
20097+/* Select the serial console input at run time, to handle generic kernels */
20098+
20099+static int
20100+get_serial_char(void)
20101+{
20102+ switch (kdba_serial_console) {
20103+ case KDBA_SC_NONE:
20104+ return -1;
20105+ case KDBA_SC_STANDARD:
20106+ return get_serial_char_standard();
20107+ case KDBA_SC_SGI_L1:
20108+ return get_serial_char_sgi_l1();
20109+ }
20110+ /* gcc is not smart enough to realize that all paths return before here :( */
20111+ return -1;
20112+}
20113+
20114+#endif /* HAVE_KDBA_SERIAL_CONSOLE */
20115+
20116+#ifdef CONFIG_VT_CONSOLE
20117+
20118+static int kbd_exists;
20119+
20120+/*
20121+ * Check if the keyboard controller has a keypress for us.
20122+ * Some parts (Enter Release, LED change) are still blocking polled here,
20123+ * but hopefully they are all short.
20124+ */
20125+static int get_kbd_char(void)
20126+{
20127+ int scancode, scanstatus;
20128+ static int shift_lock; /* CAPS LOCK state (0-off, 1-on) */
20129+ static int shift_key; /* Shift next keypress */
20130+ static int ctrl_key;
20131+ u_short keychar;
20132+ extern u_short plain_map[], shift_map[], ctrl_map[];
20133+
20134+ if (KDB_FLAG(NO_I8042) || KDB_FLAG(NO_VT_CONSOLE) ||
20135+ (inb(KBD_STATUS_REG) == 0xff && inb(KBD_DATA_REG) == 0xff)) {
20136+ kbd_exists = 0;
20137+ return -1;
20138+ }
20139+ kbd_exists = 1;
20140+
20141+ if ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0)
20142+ return -1;
20143+
20144+ /*
20145+ * Fetch the scancode
20146+ */
20147+ scancode = inb(KBD_DATA_REG);
20148+ scanstatus = inb(KBD_STATUS_REG);
20149+
20150+ /*
20151+ * Ignore mouse events.
20152+ */
20153+ if (scanstatus & KBD_STAT_MOUSE_OBF)
20154+ return -1;
20155+
20156+ /*
20157+ * Ignore release, trigger on make
20158+ * (except for shift keys, where we want to
20159+ * keep the shift state so long as the key is
20160+ * held down).
20161+ */
20162+
20163+ if (((scancode&0x7f) == 0x2a) || ((scancode&0x7f) == 0x36)) {
20164+ /*
20165+ * Next key may use shift table
20166+ */
20167+ if ((scancode & 0x80) == 0) {
20168+ shift_key=1;
20169+ } else {
20170+ shift_key=0;
20171+ }
20172+ return -1;
20173+ }
20174+
20175+ if ((scancode&0x7f) == 0x1d) {
20176+ /*
20177+ * Left ctrl key
20178+ */
20179+ if ((scancode & 0x80) == 0) {
20180+ ctrl_key = 1;
20181+ } else {
20182+ ctrl_key = 0;
20183+ }
20184+ return -1;
20185+ }
20186+
20187+ if ((scancode & 0x80) != 0)
20188+ return -1;
20189+
20190+ scancode &= 0x7f;
20191+
20192+ /*
20193+ * Translate scancode
20194+ */
20195+
20196+ if (scancode == 0x3a) {
20197+ /*
20198+ * Toggle caps lock
20199+ */
20200+ shift_lock ^= 1;
20201+
20202+#ifdef KDB_BLINK_LED
20203+ kdb_toggleled(0x4);
20204+#endif
20205+ return -1;
20206+ }
20207+
20208+ if (scancode == 0x0e) {
20209+ /*
20210+ * Backspace
20211+ */
20212+ return 8;
20213+ }
20214+
20215+ /* Special Key */
20216+ switch (scancode) {
20217+ case 0xF: /* Tab */
20218+ return 9;
20219+ case 0x53: /* Del */
20220+ return 4;
20221+ case 0x47: /* Home */
20222+ return 1;
20223+ case 0x4F: /* End */
20224+ return 5;
20225+ case 0x4B: /* Left */
20226+ return 2;
20227+ case 0x48: /* Up */
20228+ return 16;
20229+ case 0x50: /* Down */
20230+ return 14;
20231+ case 0x4D: /* Right */
20232+ return 6;
20233+ }
20234+
20235+ if (scancode == 0xe0) {
20236+ return -1;
20237+ }
20238+
20239+ /*
20240+ * For Japanese 86/106 keyboards
20241+ * See comment in drivers/char/pc_keyb.c.
20242+ * - Masahiro Adegawa
20243+ */
20244+ if (scancode == 0x73) {
20245+ scancode = 0x59;
20246+ } else if (scancode == 0x7d) {
20247+ scancode = 0x7c;
20248+ }
20249+
20250+ if (!shift_lock && !shift_key && !ctrl_key) {
20251+ keychar = plain_map[scancode];
20252+ } else if (shift_lock || shift_key) {
20253+ keychar = shift_map[scancode];
20254+ } else if (ctrl_key) {
20255+ keychar = ctrl_map[scancode];
20256+ } else {
20257+ keychar = 0x0020;
20258+ kdb_printf("Unknown state/scancode (%d)\n", scancode);
20259+ }
20260+ keychar &= 0x0fff;
20261+ switch (KTYP(keychar)) {
20262+ case KT_LETTER:
20263+ case KT_LATIN:
20264+ if (isprint(keychar))
20265+ break; /* printable characters */
20266+ /* drop through */
20267+ case KT_SPEC:
20268+ if (keychar == K_ENTER)
20269+ break;
20270+ /* drop through */
20271+ default:
20272+ return(-1); /* ignore unprintables */
20273+ }
20274+
20275+ if ((scancode & 0x7f) == 0x1c) {
20276+ /*
20277+ * enter key. All done. Absorb the release scancode.
20278+ */
20279+ while ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0)
20280+ ;
20281+
20282+ /*
20283+ * Fetch the scancode
20284+ */
20285+ scancode = inb(KBD_DATA_REG);
20286+ scanstatus = inb(KBD_STATUS_REG);
20287+
20288+ while (scanstatus & KBD_STAT_MOUSE_OBF) {
20289+ scancode = inb(KBD_DATA_REG);
20290+ scanstatus = inb(KBD_STATUS_REG);
20291+ }
20292+
20293+ if (scancode != 0x9c) {
20294+ /*
20295+ * Wasn't an enter-release, why not?
20296+ */
20297+ kdb_printf("kdb: expected enter got 0x%x status 0x%x\n",
20298+ scancode, scanstatus);
20299+ }
20300+
20301+ kdb_printf("\n");
20302+ return 13;
20303+ }
20304+
20305+ return keychar & 0xff;
20306+}
20307+#endif /* CONFIG_VT_CONSOLE */
20308+
20309+#ifdef KDB_BLINK_LED
20310+
20311+/* Leave numlock alone, setting it messes up laptop keyboards with the keypad
20312+ * mapped over normal keys.
20313+ */
20314+static int kdba_blink_mask = 0x1 | 0x4;
20315+
20316+#ifdef CONFIG_SMP
20317+#define BOGOMIPS (local_cpu_data->loops_per_jiffy/(500000/HZ))
20318+#else
20319+#define BOGOMIPS (loops_per_jiffy/(500000/HZ))
20320+#endif
20321+static int blink_led(void)
20322+{
20323+ static long delay;
20324+
20325+ if (kbd_exists == 0)
20326+ return -1;
20327+
20328+ if (--delay < 0) {
20329+ if (BOGOMIPS == 0) /* early kdb */
20330+ delay = 150000000/1000; /* arbitrary bogomips */
20331+ else
20332+ delay = 150000000/BOGOMIPS; /* Roughly 1 second when polling */
20333+ kdb_toggleled(kdba_blink_mask);
20334+ }
20335+ return -1;
20336+}
20337+#endif
20338+
20339+get_char_func poll_funcs[] = {
20340+#if defined(CONFIG_VT_CONSOLE)
20341+ get_kbd_char,
20342+#endif
20343+#ifdef HAVE_KDBA_SERIAL_CONSOLE
20344+ get_serial_char,
20345+#endif
20346+#ifdef KDB_BLINK_LED
20347+ blink_led,
20348+#endif
20349+#ifdef CONFIG_KDB_USB
20350+ get_usb_char,
20351+#endif
20352+ NULL
20353+};
20354+
20355+/* Dummy versions of kdba_local_arch_setup, kdba_local_arch_cleanup.
20356+ * FIXME: ia64 with legacy keyboard might need the same code as i386.
20357+ */
20358+
20359+void kdba_local_arch_setup(void) {}
20360+void kdba_local_arch_cleanup(void) {}
20361--- /dev/null
20362+++ b/arch/ia64/kdb/kdba_jmp.S
20363@@ -0,0 +1,394 @@
20364+/*
20365+ * Kernel Debugger Architecture Dependent Longjump Support.
20366+ */
20367+
20368+/* setjmp() and longjmp() assembler support for kdb on ia64.
20369+
20370+ This code was copied from glibc CVS as of 2001-06-27 and modified where
20371+ necessary to fit the kernel. No glibc lines were changed or deleted, all
20372+ adjustments are wrapped in #ifdef __KERNEL__, except for the added
20373+ .mem.offset lines, they work in or out of the kenrel. The original code is
20374+ in sysdeps/unix/sysv/linux/ia64/{setjmp.S,__longjmp.S}.
20375+
20376+ glibc has setjmp (save signals) and _setjmp (do not save signals). Kernel
20377+ code does not have signals, only kdba_setjmp_asm() is used.
20378+
20379+ Keith Owens <kaos@melbourne.sgi.com> 2001-06-27
20380+ */
20381+
20382+/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
20383+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
20384+
20385+ The GNU C Library is free software; you can redistribute it and/or
20386+ modify it under the terms of the GNU Library General Public License as
20387+ published by the Free Software Foundation; either version 2 of the
20388+ License, or (at your option) any later version.
20389+
20390+ The GNU C Library is distributed in the hope that it will be useful,
20391+ but WITHOUT ANY WARRANTY; without even the implied warranty of
20392+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20393+ Library General Public License for more details.
20394+
20395+ You should have received a copy of the GNU Library General Public
20396+ License along with the GNU C Library; see the file COPYING.LIB. If
20397+ not, write to the Free Software Foundation, Inc.,
20398+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20399+
20400+ The layout of the jmp_buf is as follows. This is subject to change
20401+ and user-code should never depend on the particular layout of
20402+ jmp_buf!
20403+
20404+
20405+ offset: description:
20406+ ------- ------------
20407+ 0x000 stack pointer (r12) ; unchangeable (see _JMPBUF_UNWINDS)
20408+ 0x008 r1 (gp)
20409+ 0x010 caller's unat
20410+ 0x018 fpsr
20411+ 0x020 r4
20412+ 0x028 r5
20413+ 0x030 r6
20414+ 0x038 r7
20415+ 0x040 rp (b0)
20416+ 0x048 b1
20417+ 0x050 b2
20418+ 0x058 b3
20419+ 0x060 b4
20420+ 0x068 b5
20421+ 0x070 ar.pfs
20422+ 0x078 ar.lc
20423+ 0x080 pr
20424+ 0x088 ar.bsp ; unchangeable (see __longjmp.S)
20425+ 0x090 ar.unat
20426+ 0x098 &__jmp_buf ; address of the jmpbuf (needed to locate NaT bits in unat)
20427+ 0x0a0 f2
20428+ 0x0b0 f3
20429+ 0x0c0 f4
20430+ 0x0d0 f5
20431+ 0x0e0 f16
20432+ 0x0f0 f17
20433+ 0x100 f18
20434+ 0x110 f19
20435+ 0x120 f20
20436+ 0x130 f21
20437+ 0x130 f22
20438+ 0x140 f23
20439+ 0x150 f24
20440+ 0x160 f25
20441+ 0x170 f26
20442+ 0x180 f27
20443+ 0x190 f28
20444+ 0x1a0 f29
20445+ 0x1b0 f30
20446+ 0x1c0 f31 */
20447+
20448+#ifndef __KERNEL__
20449+
20450+#include <sysdep.h>
20451+#include <features.h>
20452+
20453+ /* The following two entry points are the traditional entry points: */
20454+
20455+LEAF(setjmp)
20456+ alloc r8=ar.pfs,2,0,0,0
20457+ mov in1=1
20458+ br.cond.sptk.many __sigsetjmp
20459+END(setjmp)
20460+
20461+LEAF(_setjmp)
20462+ alloc r8=ar.pfs,2,0,0,0
20463+ mov in1=0
20464+ br.cond.sptk.many __sigsetjmp
20465+END(_setjmp)
20466+
20467+ /* __sigsetjmp(__jmp_buf buf, int savemask) */
20468+
20469+ENTRY(__sigsetjmp)
20470+
20471+#else /* __KERNEL __ */
20472+#include <asm/asmmacro.h>
20473+#define ret br.ret.sptk.few rp
20474+GLOBAL_ENTRY(kdba_setjmp)
20475+#endif /* !__KERNEL__ */
20476+
20477+ .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
20478+ alloc loc1=ar.pfs,2,2,2,0
20479+ mov r16=ar.unat
20480+ ;;
20481+ mov r17=ar.fpsr
20482+ mov r2=in0
20483+ add r3=8,in0
20484+ ;;
20485+.mem.offset 0,0;
20486+ st8.spill.nta [r2]=sp,16 // r12 (sp)
20487+.mem.offset 8,0;
20488+ st8.spill.nta [r3]=gp,16 // r1 (gp)
20489+ ;;
20490+ st8.nta [r2]=r16,16 // save caller's unat
20491+ st8.nta [r3]=r17,16 // save fpsr
20492+ add r8=0xa0,in0
20493+ ;;
20494+.mem.offset 160,0;
20495+ st8.spill.nta [r2]=r4,16 // r4
20496+.mem.offset 168,0;
20497+ st8.spill.nta [r3]=r5,16 // r5
20498+ add r9=0xb0,in0
20499+ ;;
20500+ stf.spill.nta [r8]=f2,32
20501+ stf.spill.nta [r9]=f3,32
20502+ mov loc0=rp
20503+ .body
20504+ ;;
20505+ stf.spill.nta [r8]=f4,32
20506+ stf.spill.nta [r9]=f5,32
20507+ mov r17=b1
20508+ ;;
20509+ stf.spill.nta [r8]=f16,32
20510+ stf.spill.nta [r9]=f17,32
20511+ mov r18=b2
20512+ ;;
20513+ stf.spill.nta [r8]=f18,32
20514+ stf.spill.nta [r9]=f19,32
20515+ mov r19=b3
20516+ ;;
20517+ stf.spill.nta [r8]=f20,32
20518+ stf.spill.nta [r9]=f21,32
20519+ mov r20=b4
20520+ ;;
20521+ stf.spill.nta [r8]=f22,32
20522+ stf.spill.nta [r9]=f23,32
20523+ mov r21=b5
20524+ ;;
20525+ stf.spill.nta [r8]=f24,32
20526+ stf.spill.nta [r9]=f25,32
20527+ mov r22=ar.lc
20528+ ;;
20529+ stf.spill.nta [r8]=f26,32
20530+ stf.spill.nta [r9]=f27,32
20531+ mov r24=pr
20532+ ;;
20533+ stf.spill.nta [r8]=f28,32
20534+ stf.spill.nta [r9]=f29,32
20535+ ;;
20536+ stf.spill.nta [r8]=f30
20537+ stf.spill.nta [r9]=f31
20538+
20539+.mem.offset 0,0;
20540+ st8.spill.nta [r2]=r6,16 // r6
20541+.mem.offset 8,0;
20542+ st8.spill.nta [r3]=r7,16 // r7
20543+ ;;
20544+ mov r23=ar.bsp
20545+ mov r25=ar.unat
20546+#ifndef __KERNEL__
20547+ mov out0=in0
20548+#endif /* !__KERNEL__ */
20549+
20550+ st8.nta [r2]=loc0,16 // b0
20551+ st8.nta [r3]=r17,16 // b1
20552+#ifndef __KERNEL__
20553+ mov out1=in1
20554+#endif /* !__KERNEL__ */
20555+ ;;
20556+ st8.nta [r2]=r18,16 // b2
20557+ st8.nta [r3]=r19,16 // b3
20558+ ;;
20559+ st8.nta [r2]=r20,16 // b4
20560+ st8.nta [r3]=r21,16 // b5
20561+ ;;
20562+ st8.nta [r2]=loc1,16 // ar.pfs
20563+ st8.nta [r3]=r22,16 // ar.lc
20564+ ;;
20565+ st8.nta [r2]=r24,16 // pr
20566+ st8.nta [r3]=r23,16 // ar.bsp
20567+ ;;
20568+ st8.nta [r2]=r25 // ar.unat
20569+ st8.nta [r3]=in0 // &__jmp_buf
20570+#ifndef __KERNEL__
20571+ br.call.dpnt.few rp=__sigjmp_save
20572+.ret0: // force a new bundle ::q
20573+#endif /* !_KERNEL__ */
20574+ mov r8=0
20575+ mov rp=loc0
20576+ mov ar.pfs=loc1
20577+ ret
20578+#ifndef __KERNEL__
20579+END(__sigsetjmp)
20580+
20581+weak_extern(_setjmp)
20582+weak_extern(setjmp)
20583+
20584+#else /* __KERNEL__ */
20585+END(kdba_setjmp)
20586+#endif /* !_KERNEL__ */
20587+
20588+/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
20589+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
20590+
20591+ The GNU C Library is free software; you can redistribute it and/or
20592+ modify it under the terms of the GNU Library General Public License as
20593+ published by the Free Software Foundation; either version 2 of the
20594+ License, or (at your option) any later version.
20595+
20596+ The GNU C Library is distributed in the hope that it will be useful,
20597+ but WITHOUT ANY WARRANTY; without even the implied warranty of
20598+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20599+ Library General Public License for more details.
20600+
20601+ You should have received a copy of the GNU Library General Public
20602+ License along with the GNU C Library; see the file COPYING.LIB. If
20603+ not, write to the Free Software Foundation, Inc.,
20604+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20605+
20606+ Note that __sigsetjmp() did NOT flush the register stack. Instead,
20607+ we do it here since __longjmp() is usually much less frequently
20608+ invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp()
20609+ didn't (and wouldn't be able to) save ar.rnat either. This is a problem
20610+ because if we're not careful, we could end up loading random NaT bits.
20611+ There are two cases:
20612+
20613+ (i) ar.bsp < ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20614+ ar.rnat contains the desired bits---preserve ar.rnat
20615+ across loadrs and write to ar.bspstore
20616+
20617+ (ii) ar.bsp >= ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20618+ The desired ar.rnat is stored in
20619+ ia64_rse_rnat_addr(jmpbuf.ar_bsp). Load those
20620+ bits into ar.rnat after setting ar.bspstore. */
20621+
20622+#ifndef __KERNEL__
20623+#include <sysdep.h>
20624+#include <features.h>
20625+#endif /* !__KERNEL__ */
20626+
20627+# define pPos p6 /* is rotate count positive? */
20628+# define pNeg p7 /* is rotate count negative? */
20629+
20630+
20631+ /* __longjmp(__jmp_buf buf, int val) */
20632+
20633+#ifndef __KERNEL__
20634+LEAF(__longjmp)
20635+#else /* __KERNEL__ */
20636+GLOBAL_ENTRY(kdba_longjmp)
20637+#endif /* !__KERNEL__ */
20638+ alloc r8=ar.pfs,2,1,0,0
20639+ mov r27=ar.rsc
20640+ add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr
20641+ ;;
20642+ ld8 r8=[r2],-16 // r8 <- orig_jmp_buf_addr
20643+ mov r10=ar.bsp
20644+ and r11=~0x3,r27 // clear ar.rsc.mode
20645+ ;;
20646+ flushrs // flush dirty regs to backing store (must be first in insn grp)
20647+ ld8 r23=[r2],8 // r23 <- jmpbuf.ar_bsp
20648+ sub r8=r8,in0 // r8 <- &orig_jmpbuf - &jmpbuf
20649+ ;;
20650+ ld8 r25=[r2] // r25 <- jmpbuf.ar_unat
20651+ extr.u r8=r8,3,6 // r8 <- (&orig_jmpbuf - &jmpbuf)/8 & 0x3f
20652+ ;;
20653+ cmp.lt pNeg,pPos=r8,r0
20654+ mov r2=in0
20655+ ;;
20656+(pPos) mov r16=r8
20657+(pNeg) add r16=64,r8
20658+(pPos) sub r17=64,r8
20659+(pNeg) sub r17=r0,r8
20660+ ;;
20661+ mov ar.rsc=r11 // put RSE in enforced lazy mode
20662+ shr.u r8=r25,r16
20663+ add r3=8,in0 // r3 <- &jmpbuf.r1
20664+ shl r9=r25,r17
20665+ ;;
20666+ or r25=r8,r9
20667+ ;;
20668+ mov r26=ar.rnat
20669+ mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12)
20670+ ;;
20671+ ld8.fill.nta sp=[r2],16 // r12 (sp)
20672+ ld8.fill.nta gp=[r3],16 // r1 (gp)
20673+ dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20674+ ;;
20675+ ld8.nta r16=[r2],16 // caller's unat
20676+ ld8.nta r17=[r3],16 // fpsr
20677+ ;;
20678+ ld8.fill.nta r4=[r2],16 // r4
20679+ ld8.fill.nta r5=[r3],16 // r5 (gp)
20680+ cmp.geu p8,p0=r10,r11 // p8 <- (ar.bsp >= jmpbuf.ar_bsp)
20681+ ;;
20682+ ld8.fill.nta r6=[r2],16 // r6
20683+ ld8.fill.nta r7=[r3],16 // r7
20684+ ;;
20685+ mov ar.unat=r16 // restore caller's unat
20686+ mov ar.fpsr=r17 // restore fpsr
20687+ ;;
20688+ ld8.nta r16=[r2],16 // b0
20689+ ld8.nta r17=[r3],16 // b1
20690+ ;;
20691+(p8) ld8 r26=[r11] // r26 <- *ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20692+ mov ar.bspstore=r23 // restore ar.bspstore
20693+ ;;
20694+ ld8.nta r18=[r2],16 // b2
20695+ ld8.nta r19=[r3],16 // b3
20696+ ;;
20697+ ld8.nta r20=[r2],16 // b4
20698+ ld8.nta r21=[r3],16 // b5
20699+ ;;
20700+ ld8.nta r11=[r2],16 // ar.pfs
20701+ ld8.nta r22=[r3],56 // ar.lc
20702+ ;;
20703+ ld8.nta r24=[r2],32 // pr
20704+ mov b0=r16
20705+ ;;
20706+ ldf.fill.nta f2=[r2],32
20707+ ldf.fill.nta f3=[r3],32
20708+ mov b1=r17
20709+ ;;
20710+ ldf.fill.nta f4=[r2],32
20711+ ldf.fill.nta f5=[r3],32
20712+ mov b2=r18
20713+ ;;
20714+ ldf.fill.nta f16=[r2],32
20715+ ldf.fill.nta f17=[r3],32
20716+ mov b3=r19
20717+ ;;
20718+ ldf.fill.nta f18=[r2],32
20719+ ldf.fill.nta f19=[r3],32
20720+ mov b4=r20
20721+ ;;
20722+ ldf.fill.nta f20=[r2],32
20723+ ldf.fill.nta f21=[r3],32
20724+ mov b5=r21
20725+ ;;
20726+ ldf.fill.nta f22=[r2],32
20727+ ldf.fill.nta f23=[r3],32
20728+ mov ar.lc=r22
20729+ ;;
20730+ ldf.fill.nta f24=[r2],32
20731+ ldf.fill.nta f25=[r3],32
20732+ cmp.eq p8,p9=0,in1
20733+ ;;
20734+ ldf.fill.nta f26=[r2],32
20735+ ldf.fill.nta f27=[r3],32
20736+ mov ar.pfs=r11
20737+ ;;
20738+ ldf.fill.nta f28=[r2],32
20739+ ldf.fill.nta f29=[r3],32
20740+ ;;
20741+ ldf.fill.nta f30=[r2]
20742+ ldf.fill.nta f31=[r3]
20743+(p8) mov r8=1
20744+
20745+ mov ar.rnat=r26 // restore ar.rnat
20746+ ;;
20747+ mov ar.rsc=r27 // restore ar.rsc
20748+(p9) mov r8=in1
20749+
20750+ invala // virt. -> phys. regnum mapping may change
20751+ mov pr=r24,-1
20752+ ret
20753+#ifndef __KERNEL__
20754+END(__longjmp)
20755+#else /* __KERNEL__ */
20756+END(kdba_longjmp)
20757+#endif /* !_KERNEL__ */
20758--- /dev/null
20759+++ b/arch/ia64/kdb/kdba_pod.c
20760@@ -0,0 +1,64 @@
20761+/*
20762+ * Kernel Debugger Architecture Dependent POD functions.
20763+ *
20764+ * This file is subject to the terms and conditions of the GNU General Public
20765+ * License. See the file "COPYING" in the main directory of this archive
20766+ * for more details.
20767+ *
20768+ * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
20769+ */
20770+
20771+#include <linux/types.h>
20772+#include <linux/kdb.h>
20773+#include <linux/kdbprivate.h>
20774+#include <linux/module.h>
20775+#include <asm/sal.h>
20776+#include <asm/sn/sn_sal.h>
20777+
20778+MODULE_AUTHOR("Jesse Barnes");
20779+MODULE_DESCRIPTION("Enter POD through KDB");
20780+MODULE_LICENSE("GPL");
20781+
20782+/**
20783+ * kdba_pod - enter POD mode from kdb
20784+ * @argc: arg count
20785+ * @argv: arg values
20786+ *
20787+ * Enter POD mode from kdb using SGI SN specific SAL function call.
20788+ */
20789+static int
20790+kdba_pod(int argc, const char **argv)
20791+{
20792+ kdb_printf("WARNING: pod commands are dangerous unless you know exactly\n"
20793+ "what you are doing. If in doubt, type exit immediately.\n");
20794+ return ia64_sn_pod_mode();
20795+}
20796+
20797+/**
20798+ * kdba_pod_init - register 'pod' command with kdb
20799+ *
20800+ * Register the 'pod' command with kdb at load time.
20801+ */
20802+static int __init
20803+kdba_pod_init(void)
20804+{
20805+ if (ia64_platform_is("sn2"))
20806+ kdb_register("pod", kdba_pod, NULL, "Enter POD", 0);
20807+
20808+ return 0;
20809+}
20810+
20811+/**
20812+ * kdba_pod_exit - unregister the 'pod' command
20813+ *
20814+ * Tell kdb that the 'pod' command is no longer available.
20815+ */
20816+static void __exit
20817+kdba_pod_exit(void)
20818+{
20819+ if (ia64_platform_is("sn2"))
20820+ kdb_unregister("pod");
20821+}
20822+
20823+module_init(kdba_pod_init)
20824+module_exit(kdba_pod_exit)
20825--- /dev/null
20826+++ b/arch/ia64/kdb/kdba_support.c
20827@@ -0,0 +1,1720 @@
20828+/*
20829+ * Kernel Debugger Architecture Independent Support Functions
20830+ *
20831+ * This file is subject to the terms and conditions of the GNU General Public
20832+ * License. See the file "COPYING" in the main directory of this archive
20833+ * for more details.
20834+ *
20835+ * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
20836+ * Copyright (C) David Mosberger-Tang <davidm@hpl.hp.com>
20837+ */
20838+
20839+#include <linux/string.h>
20840+#include <linux/stddef.h>
20841+#include <linux/kernel.h>
20842+#include <linux/ptrace.h>
20843+#include <linux/interrupt.h>
20844+#include <linux/mm.h>
20845+#include <linux/sched.h>
20846+#include <linux/kdb.h>
20847+#include <linux/kdbprivate.h>
20848+#include <linux/module.h>
20849+#ifdef CONFIG_KDB_KDUMP
20850+#include <linux/kexec.h>
20851+#endif
20852+
20853+#include <asm/processor.h>
20854+#include <asm/uaccess.h>
20855+#include <asm/rse.h>
20856+#include <asm/delay.h>
20857+#ifdef CONFIG_SMP
20858+#include <asm/hw_irq.h>
20859+#endif
20860+#include <asm/mca.h>
20861+
20862+struct kdb_running_process *kdb_running_process_save; /* [NR_CPUS] */
20863+static int kdba_show_handlers = 0;
20864+
20865+static int
20866+kdba_itm (int argc, const char **argv)
20867+{
20868+ int diag;
20869+ unsigned long val;
20870+
20871+ diag = kdbgetularg(argv[1], &val);
20872+ if (diag)
20873+ return diag;
20874+ kdb_printf("new itm=" kdb_machreg_fmt "\n", val);
20875+
20876+ ia64_set_itm(val);
20877+ return 0;
20878+}
20879+
20880+static void
20881+kdba_show_intregs(void)
20882+{
20883+ u64 lid, tpr, lrr0, lrr1, itv, pmv, cmcv;
20884+
20885+ asm ("mov %0=cr.lid" : "=r"(lid));
20886+ asm ("mov %0=cr.tpr" : "=r"(tpr));
20887+ asm ("mov %0=cr.lrr0" : "=r"(lrr0));
20888+ asm ("mov %0=cr.lrr1" : "=r"(lrr1));
20889+ kdb_printf("lid=" kdb_machreg_fmt ", tpr=" kdb_machreg_fmt ", lrr0=" kdb_machreg_fmt ", llr1=" kdb_machreg_fmt "\n", lid, tpr, lrr0, lrr1);
20890+
20891+ asm ("mov %0=cr.itv" : "=r"(itv));
20892+ asm ("mov %0=cr.pmv" : "=r"(pmv));
20893+ asm ("mov %0=cr.cmcv" : "=r"(cmcv));
20894+ kdb_printf("itv=" kdb_machreg_fmt ", pmv=" kdb_machreg_fmt ", cmcv=" kdb_machreg_fmt "\n", itv, pmv, cmcv);
20895+
20896+ kdb_printf("irr=0x%016lx,0x%016lx,0x%016lx,0x%016lx\n",
20897+ ia64_getreg(_IA64_REG_CR_IRR0), ia64_getreg(_IA64_REG_CR_IRR1), ia64_getreg(_IA64_REG_CR_IRR2), ia64_getreg(_IA64_REG_CR_IRR3));
20898+
20899+ kdb_printf("itc=0x%016lx, itm=0x%016lx\n", ia64_get_itc(), ia64_get_itm());
20900+}
20901+
20902+static int
20903+kdba_sir (int argc, const char **argv)
20904+{
20905+ kdba_show_intregs();
20906+
20907+ return 0;
20908+}
20909+
20910+/*
20911+ * kdba_pt_regs
20912+ *
20913+ * Format a struct pt_regs
20914+ *
20915+ * Inputs:
20916+ * argc argument count
20917+ * argv argument vector
20918+ * Outputs:
20919+ * None.
20920+ * Returns:
20921+ * zero for success, a kdb diagnostic if error
20922+ * Locking:
20923+ * none.
20924+ * Remarks:
20925+ * If no address is supplied, it uses the current irq pt_regs.
20926+ */
20927+
20928+static int
20929+kdba_pt_regs(int argc, const char **argv)
20930+{
20931+ int diag;
20932+ kdb_machreg_t addr;
20933+ long offset = 0;
20934+ int nextarg;
20935+ struct pt_regs *p;
20936+
20937+ if (argc == 0) {
20938+ addr = (kdb_machreg_t) get_irq_regs();
20939+ } else if (argc == 1) {
20940+ nextarg = 1;
20941+ diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
20942+ if (diag)
20943+ return diag;
20944+ } else {
20945+ return KDB_ARGCOUNT;
20946+ }
20947+
20948+ p = (struct pt_regs *) addr;
20949+ kdb_printf("struct pt_regs %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
20950+ kdb_print_nameval("b6", p->b6);
20951+ kdb_print_nameval("b7", p->b7);
20952+ kdb_printf(" ar_csd 0x%lx\n", p->ar_csd);
20953+ kdb_printf(" ar_ssd 0x%lx\n", p->ar_ssd);
20954+ kdb_print_nameval("r8", p->r8);
20955+ kdb_print_nameval("r9", p->r9);
20956+ kdb_print_nameval("r10", p->r10);
20957+ kdb_print_nameval("r11", p->r11);
20958+ kdb_printf(" cr_ipsr 0x%lx\n", p->cr_ipsr);
20959+ kdb_print_nameval("cr_iip", p->cr_iip);
20960+ kdb_printf(" cr_ifs 0x%lx\n", p->cr_ifs);
20961+ kdb_printf(" ar_unat 0x%lx\n", p->ar_unat);
20962+ kdb_printf(" ar_pfs 0x%lx\n", p->ar_pfs);
20963+ kdb_printf(" ar_rsc 0x%lx\n", p->ar_rsc);
20964+ kdb_printf(" ar_rnat 0x%lx\n", p->ar_rnat);
20965+ kdb_printf(" ar_bspstore 0x%lx\n", p->ar_bspstore);
20966+ kdb_printf(" pr 0x%lx\n", p->pr);
20967+ kdb_print_nameval("b0", p->b0);
20968+ kdb_printf(" loadrs 0x%lx\n", p->loadrs);
20969+ kdb_print_nameval("r1", p->r1);
20970+ kdb_print_nameval("r12", p->r12);
20971+ kdb_print_nameval("r13", p->r13);
20972+ kdb_printf(" ar_fpsr 0x%lx\n", p->ar_fpsr);
20973+ kdb_print_nameval("r15", p->r15);
20974+ kdb_print_nameval("r14", p->r14);
20975+ kdb_print_nameval("r2", p->r2);
20976+ kdb_print_nameval("r3", p->r3);
20977+ kdb_print_nameval("r16", p->r16);
20978+ kdb_print_nameval("r17", p->r17);
20979+ kdb_print_nameval("r18", p->r18);
20980+ kdb_print_nameval("r19", p->r19);
20981+ kdb_print_nameval("r20", p->r20);
20982+ kdb_print_nameval("r21", p->r21);
20983+ kdb_print_nameval("r22", p->r22);
20984+ kdb_print_nameval("r23", p->r23);
20985+ kdb_print_nameval("r24", p->r24);
20986+ kdb_print_nameval("r25", p->r25);
20987+ kdb_print_nameval("r26", p->r26);
20988+ kdb_print_nameval("r27", p->r27);
20989+ kdb_print_nameval("r28", p->r28);
20990+ kdb_print_nameval("r29", p->r29);
20991+ kdb_print_nameval("r30", p->r30);
20992+ kdb_print_nameval("r31", p->r31);
20993+ kdb_printf(" ar_ccv 0x%lx\n", p->ar_ccv);
20994+ kdb_printf(" f6 0x%lx 0x%lx\n", p->f6.u.bits[0], p->f6.u.bits[1]);
20995+ kdb_printf(" f7 0x%lx 0x%lx\n", p->f7.u.bits[0], p->f7.u.bits[1]);
20996+ kdb_printf(" f8 0x%lx 0x%lx\n", p->f8.u.bits[0], p->f8.u.bits[1]);
20997+ kdb_printf(" f9 0x%lx 0x%lx\n", p->f9.u.bits[0], p->f9.u.bits[1]);
20998+ kdb_printf(" f10 0x%lx 0x%lx\n", p->f10.u.bits[0], p->f10.u.bits[1]);
20999+ kdb_printf(" f11 0x%lx 0x%lx\n", p->f11.u.bits[0], p->f11.u.bits[1]);
21000+
21001+ return 0;
21002+}
21003+
21004+/*
21005+ * kdba_stackdepth
21006+ *
21007+ * Print processes that are using more than a specific percentage of their
21008+ * stack.
21009+ *
21010+ * Inputs:
21011+ * argc argument count
21012+ * argv argument vector
21013+ * Outputs:
21014+ * None.
21015+ * Returns:
21016+ * zero for success, a kdb diagnostic if error
21017+ * Locking:
21018+ * none.
21019+ * Remarks:
21020+ * If no percentage is supplied, it uses 60.
21021+ */
21022+
21023+static int
21024+kdba_stackdepth(int argc, const char **argv)
21025+{
21026+ int diag, threshold, used;
21027+ unsigned long percentage;
21028+ unsigned long esp;
21029+ long offset = 0;
21030+ int nextarg;
21031+ struct task_struct *p, *g;
21032+ struct switch_stack *sw;
21033+
21034+ if (argc == 0) {
21035+ percentage = 60;
21036+ } else if (argc == 1) {
21037+ nextarg = 1;
21038+ diag = kdbgetaddrarg(argc, argv, &nextarg, &percentage, &offset, NULL);
21039+ if (diag)
21040+ return diag;
21041+ } else {
21042+ return KDB_ARGCOUNT;
21043+ }
21044+ percentage = max_t(int, percentage, 1);
21045+ percentage = min_t(int, percentage, 100);
21046+ threshold = ((2 * THREAD_SIZE * percentage) / 100 + 1) >> 1;
21047+ kdb_printf("stackdepth: processes using more than %ld%% (%d bytes) of stack\n",
21048+ percentage, threshold);
21049+ kdb_do_each_thread(g, p) {
21050+ if (kdb_task_has_cpu(p)) {
21051+ struct kdb_running_process *krp = kdb_running_process + kdb_process_cpu(p);
21052+ if (krp->seqno)
21053+ sw = krp->arch.sw;
21054+ else
21055+ sw = NULL;
21056+ } else
21057+ sw = (struct switch_stack *) (p->thread.ksp + 16);
21058+ if (!sw)
21059+ continue;
21060+ esp = (unsigned long) sw;
21061+ used = THREAD_SIZE - (esp - sw->ar_bspstore);
21062+ if (used >= threshold) {
21063+ kdb_ps1(p);
21064+ kdb_printf(" esp %lx bsp %lx used %d\n", esp, sw->ar_bspstore, used);
21065+ }
21066+ } kdb_while_each_thread(g, p);
21067+
21068+ return 0;
21069+}
21070+
21071+/*
21072+ * kdb_switch_stack
21073+ *
21074+ * Format a struct switch_stack
21075+ *
21076+ * Inputs:
21077+ * argc argument count
21078+ * argv argument vector
21079+ * Outputs:
21080+ * None.
21081+ * Returns:
21082+ * zero for success, a kdb diagnostic if error
21083+ * Locking:
21084+ * none.
21085+ * Remarks:
21086+ * If no address is supplied, it uses kdb_running_process[smp_processor_id()].arch.sw.
21087+ */
21088+
21089+static int
21090+kdba_switch_stack(int argc, const char **argv)
21091+{
21092+ int diag;
21093+ kdb_machreg_t addr;
21094+ long offset = 0;
21095+ int nextarg;
21096+ struct switch_stack *p;
21097+
21098+ if (argc == 0) {
21099+ addr = (kdb_machreg_t) kdb_running_process[smp_processor_id()].arch.sw;
21100+ } else if (argc == 1) {
21101+ nextarg = 1;
21102+ diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
21103+ if (diag)
21104+ return diag;
21105+ } else {
21106+ return KDB_ARGCOUNT;
21107+ }
21108+
21109+ p = (struct switch_stack *) addr;
21110+ kdb_printf("struct switch_stack %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
21111+ kdb_printf(" caller_unat 0x%lx\n", p->caller_unat);
21112+ kdb_printf(" ar_fpsr 0x%lx\n", p->ar_fpsr);
21113+ kdb_printf(" f2 0x%lx 0x%lx\n", p->f2.u.bits[0], p->f2.u.bits[1]);
21114+ kdb_printf(" f3 0x%lx 0x%lx\n", p->f3.u.bits[0], p->f3.u.bits[1]);
21115+ kdb_printf(" f4 0x%lx 0x%lx\n", p->f4.u.bits[0], p->f4.u.bits[1]);
21116+ kdb_printf(" f5 0x%lx 0x%lx\n", p->f5.u.bits[0], p->f5.u.bits[1]);
21117+ kdb_printf(" f12 0x%lx 0x%lx\n", p->f12.u.bits[0], p->f12.u.bits[1]);
21118+ kdb_printf(" f13 0x%lx 0x%lx\n", p->f13.u.bits[0], p->f13.u.bits[1]);
21119+ kdb_printf(" f14 0x%lx 0x%lx\n", p->f14.u.bits[0], p->f14.u.bits[1]);
21120+ kdb_printf(" f15 0x%lx 0x%lx\n", p->f15.u.bits[0], p->f15.u.bits[1]);
21121+ kdb_printf(" f16 0x%lx 0x%lx\n", p->f16.u.bits[0], p->f16.u.bits[1]);
21122+ kdb_printf(" f17 0x%lx 0x%lx\n", p->f17.u.bits[0], p->f17.u.bits[1]);
21123+ kdb_printf(" f18 0x%lx 0x%lx\n", p->f18.u.bits[0], p->f18.u.bits[1]);
21124+ kdb_printf(" f19 0x%lx 0x%lx\n", p->f19.u.bits[0], p->f19.u.bits[1]);
21125+ kdb_printf(" f20 0x%lx 0x%lx\n", p->f20.u.bits[0], p->f20.u.bits[1]);
21126+ kdb_printf(" f21 0x%lx 0x%lx\n", p->f21.u.bits[0], p->f21.u.bits[1]);
21127+ kdb_printf(" f22 0x%lx 0x%lx\n", p->f22.u.bits[0], p->f22.u.bits[1]);
21128+ kdb_printf(" f23 0x%lx 0x%lx\n", p->f23.u.bits[0], p->f23.u.bits[1]);
21129+ kdb_printf(" f24 0x%lx 0x%lx\n", p->f24.u.bits[0], p->f24.u.bits[1]);
21130+ kdb_printf(" f25 0x%lx 0x%lx\n", p->f25.u.bits[0], p->f25.u.bits[1]);
21131+ kdb_printf(" f26 0x%lx 0x%lx\n", p->f26.u.bits[0], p->f26.u.bits[1]);
21132+ kdb_printf(" f27 0x%lx 0x%lx\n", p->f27.u.bits[0], p->f27.u.bits[1]);
21133+ kdb_printf(" f28 0x%lx 0x%lx\n", p->f28.u.bits[0], p->f28.u.bits[1]);
21134+ kdb_printf(" f29 0x%lx 0x%lx\n", p->f29.u.bits[0], p->f29.u.bits[1]);
21135+ kdb_printf(" f30 0x%lx 0x%lx\n", p->f30.u.bits[0], p->f30.u.bits[1]);
21136+ kdb_printf(" f31 0x%lx 0x%lx\n", p->f31.u.bits[0], p->f31.u.bits[1]);
21137+ kdb_print_nameval("r4", p->r4);
21138+ kdb_print_nameval("r5", p->r5);
21139+ kdb_print_nameval("r6", p->r6);
21140+ kdb_print_nameval("r7", p->r7);
21141+ kdb_print_nameval("b0", p->b0);
21142+ kdb_print_nameval("b1", p->b1);
21143+ kdb_print_nameval("b2", p->b2);
21144+ kdb_print_nameval("b3", p->b3);
21145+ kdb_print_nameval("b4", p->b4);
21146+ kdb_print_nameval("b5", p->b5);
21147+ kdb_printf(" ar_pfs 0x%lx\n", p->ar_pfs);
21148+ kdb_printf(" ar_lc 0x%lx\n", p->ar_lc);
21149+ kdb_printf(" ar_unat 0x%lx\n", p->ar_unat);
21150+ kdb_printf(" ar_rnat 0x%lx\n", p->ar_rnat);
21151+ kdb_printf(" ar_bspstore 0x%lx\n", p->ar_bspstore);
21152+ kdb_printf(" pr 0x%lx\n", p->pr);
21153+
21154+ return 0;
21155+}
21156+
21157+/*
21158+ * kdb_minstate
21159+ *
21160+ * Format the PAL minstate area.
21161+ *
21162+ * Inputs:
21163+ * argc argument count
21164+ * argv argument vector
21165+ * Outputs:
21166+ * None.
21167+ * Returns:
21168+ * zero for success, a kdb diagnostic if error
21169+ * Locking:
21170+ * none.
21171+ * Remarks:
21172+ * None.
21173+ */
21174+
21175+static int
21176+kdba_minstate(int argc, const char **argv)
21177+{
21178+ int diag;
21179+ kdb_machreg_t addr;
21180+ long offset = 0;
21181+ int nextarg;
21182+ pal_min_state_area_t *p;
21183+
21184+ if (argc == 1) {
21185+ nextarg = 1;
21186+ diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
21187+ if (diag)
21188+ return diag;
21189+ } else {
21190+ return KDB_ARGCOUNT;
21191+ }
21192+
21193+ p = (pal_min_state_area_t *) addr;
21194+ kdb_printf("PAL minstate %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
21195+ kdb_printf(" pmsa_nat_bits 0x%lx\n", p->pmsa_nat_bits);
21196+ kdb_print_nameval("r1", p->pmsa_gr[1-1]);
21197+ kdb_print_nameval("r2", p->pmsa_gr[2-1]);
21198+ kdb_print_nameval("r3", p->pmsa_gr[3-1]);
21199+ kdb_print_nameval("r4", p->pmsa_gr[4-1]);
21200+ kdb_print_nameval("r5", p->pmsa_gr[5-1]);
21201+ kdb_print_nameval("r6", p->pmsa_gr[6-1]);
21202+ kdb_print_nameval("r7", p->pmsa_gr[7-1]);
21203+ kdb_print_nameval("r8", p->pmsa_gr[8-1]);
21204+ kdb_print_nameval("r9", p->pmsa_gr[9-1]);
21205+ kdb_print_nameval("r10", p->pmsa_gr[10-1]);
21206+ kdb_print_nameval("r11", p->pmsa_gr[11-1]);
21207+ kdb_print_nameval("r12", p->pmsa_gr[12-1]);
21208+ kdb_print_nameval("r13", p->pmsa_gr[13-1]);
21209+ kdb_print_nameval("r14", p->pmsa_gr[14-1]);
21210+ kdb_print_nameval("r15", p->pmsa_gr[15-1]);
21211+ kdb_printf(" Bank 0\n");
21212+ kdb_print_nameval("r16", p->pmsa_bank0_gr[16-16]);
21213+ kdb_print_nameval("r17", p->pmsa_bank0_gr[17-16]);
21214+ kdb_print_nameval("r18", p->pmsa_bank0_gr[18-16]);
21215+ kdb_print_nameval("r19", p->pmsa_bank0_gr[19-16]);
21216+ kdb_print_nameval("r20", p->pmsa_bank0_gr[20-16]);
21217+ kdb_print_nameval("r21", p->pmsa_bank0_gr[21-16]);
21218+ kdb_print_nameval("r22", p->pmsa_bank0_gr[22-16]);
21219+ kdb_print_nameval("r23", p->pmsa_bank0_gr[23-16]);
21220+ kdb_print_nameval("r24", p->pmsa_bank0_gr[24-16]);
21221+ kdb_print_nameval("r25", p->pmsa_bank0_gr[25-16]);
21222+ kdb_print_nameval("r26", p->pmsa_bank0_gr[26-16]);
21223+ kdb_print_nameval("r27", p->pmsa_bank0_gr[27-16]);
21224+ kdb_print_nameval("r28", p->pmsa_bank0_gr[28-16]);
21225+ kdb_print_nameval("r29", p->pmsa_bank0_gr[29-16]);
21226+ kdb_print_nameval("r30", p->pmsa_bank0_gr[30-16]);
21227+ kdb_print_nameval("r31", p->pmsa_bank0_gr[31-16]);
21228+ kdb_printf(" Bank 1\n");
21229+ kdb_print_nameval("r16", p->pmsa_bank1_gr[16-16]);
21230+ kdb_print_nameval("r17", p->pmsa_bank1_gr[17-16]);
21231+ kdb_print_nameval("r18", p->pmsa_bank1_gr[18-16]);
21232+ kdb_print_nameval("r19", p->pmsa_bank1_gr[19-16]);
21233+ kdb_print_nameval("r20", p->pmsa_bank1_gr[20-16]);
21234+ kdb_print_nameval("r21", p->pmsa_bank1_gr[21-16]);
21235+ kdb_print_nameval("r22", p->pmsa_bank1_gr[22-16]);
21236+ kdb_print_nameval("r23", p->pmsa_bank1_gr[23-16]);
21237+ kdb_print_nameval("r24", p->pmsa_bank1_gr[24-16]);
21238+ kdb_print_nameval("r25", p->pmsa_bank1_gr[25-16]);
21239+ kdb_print_nameval("r26", p->pmsa_bank1_gr[26-16]);
21240+ kdb_print_nameval("r27", p->pmsa_bank1_gr[27-16]);
21241+ kdb_print_nameval("r28", p->pmsa_bank1_gr[28-16]);
21242+ kdb_print_nameval("r29", p->pmsa_bank1_gr[29-16]);
21243+ kdb_print_nameval("r30", p->pmsa_bank1_gr[30-16]);
21244+ kdb_print_nameval("r31", p->pmsa_bank1_gr[31-16]);
21245+ kdb_printf(" pr 0x%lx\n", p->pmsa_pr);
21246+ kdb_print_nameval("b0", p->pmsa_br0);
21247+ kdb_printf(" ar.rsc 0x%lx\n", p->pmsa_rsc);
21248+ kdb_print_nameval("cr.iip", p->pmsa_iip);
21249+ kdb_printf(" cr.ipsr 0x%lx\n", p->pmsa_ipsr);
21250+ kdb_printf(" cr.ifs 0x%lx\n", p->pmsa_ifs);
21251+ kdb_print_nameval("cr.xip", p->pmsa_xip);
21252+ kdb_printf(" cr.xpsr 0x%lx\n", p->pmsa_xpsr);
21253+ kdb_printf(" cr.xfs 0x%lx\n", p->pmsa_xfs);
21254+ kdb_print_nameval("b1", p->pmsa_br1);
21255+
21256+ return 0;
21257+}
21258+
21259+/*
21260+ * kdba_cpuinfo
21261+ *
21262+ * Format struct cpuinfo_ia64.
21263+ *
21264+ * Inputs:
21265+ * argc argument count
21266+ * argv argument vector
21267+ * Outputs:
21268+ * None.
21269+ * Returns:
21270+ * zero for success, a kdb diagnostic if error
21271+ * Locking:
21272+ * none.
21273+ * Remarks:
21274+ * If no cpu is supplied, it prints cpuinfo for all online cpus.
21275+ */
21276+
21277+static int
21278+kdba_cpuinfo(int argc, const char **argv)
21279+{
21280+ int diag;
21281+ unsigned long cpunum = -1;
21282+ long offset = 0;
21283+ int nextarg, c, i;
21284+ struct cpuinfo_ia64 *cpuinfo;
21285+
21286+ if (argc == 1) {
21287+ nextarg = 1;
21288+ diag = kdbgetaddrarg(argc, argv, &nextarg, &cpunum, &offset, NULL);
21289+ if (diag)
21290+ return diag;
21291+ if (cpunum >= NR_CPUS || !cpu_online(cpunum))
21292+ return KDB_BADCPUNUM;
21293+ } else if (argc > 1) {
21294+ return KDB_ARGCOUNT;
21295+ }
21296+
21297+ for (c = (cpunum == -1 ? 0 : cpunum);
21298+ c < (cpunum == -1 ? NR_CPUS : cpunum+1);
21299+ ++c) {
21300+ if (!cpu_online(c))
21301+ continue;
21302+ cpuinfo = cpu_data(c);
21303+ kdb_printf("struct cpuinfo_ia64 for cpu %d is at 0x%p\n", c, cpuinfo);
21304+ kdb_printf(" softirq_pending 0x%x\n", cpuinfo->softirq_pending);
21305+ kdb_printf(" itm_delta %ld\n", cpuinfo->itm_delta);
21306+ kdb_printf(" itm_next %ld\n", cpuinfo->itm_next);
21307+ kdb_printf(" nsec_per_cyc %ld\n", cpuinfo->nsec_per_cyc);
21308+ kdb_printf(" unimpl_va_mask 0x%lx\n", cpuinfo->unimpl_va_mask);
21309+ kdb_printf(" unimpl_pa_mask 0x%lx\n", cpuinfo->unimpl_pa_mask);
21310+ kdb_printf(" itc_freq %ld\n", cpuinfo->itc_freq);
21311+ kdb_printf(" proc_freq %ld\n", cpuinfo->proc_freq);
21312+ kdb_printf(" cyc_per_usec %ld\n", cpuinfo->cyc_per_usec);
21313+ kdb_printf(" cyc_per_usec %ld\n", cpuinfo->cyc_per_usec);
21314+#if 0 /* RJA per-cpu MCA */
21315+ kdb_printf(" percpu_paddr 0x%lx\n", cpuinfo->percpu_paddr);
21316+#endif
21317+ kdb_printf(" ptce_base 0x%lx\n", cpuinfo->ptce_base);
21318+ kdb_printf(" ptce_count %d %d\n", cpuinfo->ptce_count[0], cpuinfo->ptce_count[1]);
21319+ kdb_printf(" ptce_stride %d %d\n", cpuinfo->ptce_stride[0], cpuinfo->ptce_stride[1]);
21320+#if 0 /* RJA per-cpu MCA */
21321+ kdb_printf(" pal_paddr 0x%lx\n", cpuinfo->pal_paddr);
21322+ kdb_printf(" pal_base 0x%lx\n", cpuinfo->pal_base);
21323+#endif
21324+ kdb_printf(" ksoftirqd 0x%p\n", cpuinfo->ksoftirqd);
21325+#ifdef CONFIG_SMP
21326+ kdb_printf(" loops_per_jiffy %ld\n", cpuinfo->loops_per_jiffy);
21327+ kdb_printf(" cpu %d\n", cpuinfo->cpu);
21328+ kdb_printf(" socket_id %d\n", cpuinfo->socket_id);
21329+ kdb_printf(" core_id %d\n", cpuinfo->core_id);
21330+ kdb_printf(" thread_id %d\n", cpuinfo->thread_id);
21331+ kdb_printf(" num_log %d\n", cpuinfo->num_log);
21332+ kdb_printf(" cores_per_socket %d\n", cpuinfo->cores_per_socket);
21333+ kdb_printf(" threads_per_core %d\n", cpuinfo->threads_per_core);
21334+#endif
21335+ kdb_printf(" ppn 0x%lx\n", cpuinfo->ppn);
21336+ kdb_printf(" features 0x%lx\n", cpuinfo->features);
21337+ kdb_printf(" number %d\n", cpuinfo->number);
21338+ kdb_printf(" revision %d\n", cpuinfo->revision);
21339+ kdb_printf(" model %d\n", cpuinfo->model);
21340+ kdb_printf(" family %d\n", cpuinfo->family);
21341+ kdb_printf(" archrev %d\n", cpuinfo->archrev);
21342+ kdb_printf(" vendor ");
21343+ for (i = 0; i < sizeof(cpuinfo->vendor); ++i)
21344+ kdb_printf(" 0x%02x", cpuinfo->vendor[i]);
21345+ kdb_printf("\n");
21346+#ifdef CONFIG_NUMA
21347+ kdb_printf(" node_data 0x%p\n", cpuinfo->node_data);
21348+#endif
21349+#if 0 /* RJA per-cpu MCA */
21350+ kdb_printf(" ia64_pa_mca_data 0x%p\n", cpuinfo->ia64_pa_mca_data);
21351+#endif
21352+ }
21353+ return 0;
21354+}
21355+
21356+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
21357+void
21358+kdba_installdbreg(kdb_bp_t *bp)
21359+{
21360+ unsigned long mask;
21361+ unsigned int regbase;
21362+ static unsigned long masks[] = {
21363+ 0x00FFFFFFFFFFFFFFUL, // 1 byte long
21364+ 0x00FFFFFFFFFFFFFEUL, // 2 bytes long
21365+ 0x0000000000000000UL, // invalid
21366+ 0x00FFFFFFFFFFFFFCUL // 4 bytes long
21367+ };
21368+ static unsigned char modes[] = {
21369+ 0x81, // instruction => x, plm=priv level 0 only
21370+ 0x41, // write => w, plm=priv level 0 only
21371+ 0x00, // io
21372+ 0x81 // read => r, plm=priv level 0 only
21373+ };
21374+
21375+ /* Note that bp->bp_hard[NR_CPU] is for x86.
21376+ * The ia64 uses bp->bp_hard[0] only.
21377+ */
21378+ if (KDB_DEBUG(BP))
21379+ kdb_printf("kdba_installdbreg:\n");
21380+ mask = masks[bp->bp_hard[0]->bph_length] |
21381+ (((unsigned long)(modes[bp->bp_hard[0]->bph_mode])) << 56);
21382+ regbase = 2*bp->bp_hard[0]->bph_reg;
21383+
21384+ switch (bp->bp_hard[0]->bph_mode)
21385+ {
21386+ case 1:
21387+ case 3:
21388+ if (KDB_DEBUG(BP)) {
21389+ kdb_printf("kdba_installdbreg: dbr[%u]=%016lx\n",
21390+ regbase, bp->bp_addr);
21391+ kdb_printf("kdba_installdbreg: dbr[%u]=%016lx\n",
21392+ regbase+1, mask);
21393+ }
21394+
21395+ ia64_set_dbr(regbase, bp->bp_addr);
21396+ ia64_set_dbr(regbase+1, mask);
21397+ ia64_srlz_d();
21398+ break;
21399+
21400+ case 0: /* instruction */
21401+#if 0
21402+ ia64_set_ibr(regbase, bp->bp_addr);
21403+ ia64_set_ibr(regbase+1, mask);
21404+ ia64_srlz_d();
21405+#else
21406+ kdb_printf("\"instr\" mode not implemented\n");
21407+#endif
21408+ break;
21409+
21410+ case 2: /* io */
21411+ kdb_printf("\"io\" mode not implemented\n");
21412+ break;
21413+ }
21414+}
21415+
21416+void
21417+kdba_removedbreg(kdb_bp_t *bp)
21418+{
21419+ unsigned int regbase = 2*bp->bp_hard[0]->bph_reg;
21420+
21421+ /* Note that bp->bp_hard[NR_CPU] is for x86.
21422+ * The ia64 uses bp->bp_hard[0] only.
21423+ */
21424+ switch (bp->bp_hard[0]->bph_mode)
21425+ {
21426+ case 1:
21427+ case 3:
21428+ ia64_set_dbr(regbase, 0);
21429+ ia64_set_dbr(regbase+1, 0);
21430+ ia64_srlz_d();
21431+ break;
21432+
21433+ case 0: /* instruction */
21434+#if 0
21435+ ia64_set_ibr(regbase, 0);
21436+ ia64_set_ibr(regbase+1, 0);
21437+ ia64_srlz_d();
21438+#else
21439+ kdb_printf("\"instr\" mode not implemented\n");
21440+#endif
21441+ break;
21442+
21443+ case 2: /* io */
21444+ kdb_printf("\"io\" mode not implemented\n");
21445+ break;
21446+ }
21447+}
21448+#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
21449+
21450+
21451+static kdb_machreg_t
21452+kdba_getdr(int regnum)
21453+{
21454+ kdb_machreg_t contents = 0;
21455+ unsigned long reg = (unsigned long)regnum;
21456+
21457+ __asm__ ("mov %0=ibr[%1]"::"r"(contents),"r"(reg));
21458+// __asm__ ("mov ibr[%0]=%1"::"r"(dbreg_cond),"r"(value));
21459+
21460+ return contents;
21461+}
21462+
21463+
21464+static void
21465+get_fault_regs(fault_regs_t *fr)
21466+{
21467+ fr->ifa = 0 ;
21468+ fr->isr = 0 ;
21469+
21470+ __asm__ ("rsm psr.ic;;") ;
21471+ ia64_srlz_d();
21472+ __asm__ ("mov %0=cr.ifa" : "=r"(fr->ifa));
21473+ __asm__ ("mov %0=cr.isr" : "=r"(fr->isr));
21474+ __asm__ ("ssm psr.ic;;") ;
21475+ ia64_srlz_d();
21476+}
21477+
21478+static void
21479+show_kernel_regs (void)
21480+{
21481+ unsigned long kr[8];
21482+ int i;
21483+
21484+ asm ("mov %0=ar.k0" : "=r"(kr[0])); asm ("mov %0=ar.k1" : "=r"(kr[1]));
21485+ asm ("mov %0=ar.k2" : "=r"(kr[2])); asm ("mov %0=ar.k3" : "=r"(kr[3]));
21486+ asm ("mov %0=ar.k4" : "=r"(kr[4])); asm ("mov %0=ar.k5" : "=r"(kr[5]));
21487+ asm ("mov %0=ar.k6" : "=r"(kr[6])); asm ("mov %0=ar.k7" : "=r"(kr[7]));
21488+
21489+ for (i = 0; i < 4; ++i)
21490+ kdb_printf(" kr%d: %016lx kr%d: %016lx\n", 2*i, kr[2*i], 2*i+1, kr[2*i+1]);
21491+ kdb_printf("\n");
21492+}
21493+
21494+static int
21495+change_cur_stack_frame(int regno, unsigned long *contents)
21496+{
21497+ unsigned long sof, i, cfm, sp, *bsp, __user *ubsp;
21498+ struct unw_frame_info info;
21499+ mm_segment_t old_fs;
21500+ int cpu = kdb_process_cpu(kdb_current_task);
21501+ struct kdb_running_process *krp = kdb_running_process + cpu;
21502+
21503+ if (kdb_current_task != krp->p) {
21504+ kdb_printf("Stacked registers are not available for tasks that are not running.\n");
21505+ kdb_printf("Use bt with a large BTARGS value instead\n");
21506+ return 0;
21507+ }
21508+ unw_init_frame_info(&info, krp->p, krp->arch.sw);
21509+ do {
21510+ if (unw_unwind(&info) < 0) {
21511+ kdb_printf("Failed to unwind\n");
21512+ return 0;
21513+ }
21514+ unw_get_sp(&info, &sp);
21515+ } while (sp <= (unsigned long) kdb_current_regs);
21516+ unw_get_bsp(&info, (unsigned long *) &bsp);
21517+ unw_get_cfm(&info, &cfm);
21518+
21519+ if (!bsp) {
21520+ kdb_printf("Unable to get Current Stack Frame\n");
21521+ return 0;
21522+ }
21523+
21524+ sof = (cfm & 0x7f);
21525+
21526+ if(((unsigned long)regno - 32) >= (sof - 2)) return 1;
21527+
21528+ old_fs = set_fs(KERNEL_DS);
21529+ for (i = 0; i < (regno - 32); ++i)
21530+ bsp = ia64_rse_skip_regs(bsp, 1);
21531+ ubsp = (unsigned long __user *) bsp;
21532+ put_user(*contents, ubsp);
21533+ set_fs(old_fs);
21534+
21535+ return 0 ;
21536+}
21537+
21538+static int
21539+show_cur_stack_frame(int regno, unsigned long *contents)
21540+{
21541+ unsigned long sof, i, cfm, val, sp, *bsp, __user *ubsp;
21542+ struct unw_frame_info info;
21543+ mm_segment_t old_fs;
21544+ int cpu = kdb_process_cpu(kdb_current_task);
21545+ struct kdb_running_process *krp = kdb_running_process + cpu;
21546+
21547+ if (kdb_current_task != krp->p) {
21548+ kdb_printf("Stacked registers are not available for tasks that are not running.\n");
21549+ kdb_printf("Use bt with a large BTARGS value instead\n");
21550+ return 0;
21551+ }
21552+ unw_init_frame_info(&info, krp->p, krp->arch.sw);
21553+ do {
21554+ if (unw_unwind(&info) < 0) {
21555+ kdb_printf("Failed to unwind\n");
21556+ return 0;
21557+ }
21558+ unw_get_sp(&info, &sp);
21559+ } while (sp <= (unsigned long) kdb_current_regs);
21560+ unw_get_bsp(&info, (unsigned long *) &bsp);
21561+ unw_get_cfm(&info, &cfm);
21562+
21563+ if (!bsp) {
21564+ kdb_printf("Unable to display Current Stack Frame\n");
21565+ return 0;
21566+ }
21567+
21568+ sof = (cfm & 0x7f);
21569+
21570+ if (regno) {
21571+ if ((unsigned) regno - 32 >= sof)
21572+ return 0;
21573+ bsp = ia64_rse_skip_regs(bsp, regno - 32);
21574+ old_fs = set_fs(KERNEL_DS);
21575+ ubsp = (unsigned long __user *) bsp;
21576+ get_user(val, ubsp);
21577+ set_fs(old_fs);
21578+ *contents = val;
21579+ return 1;
21580+ }
21581+
21582+ old_fs = set_fs(KERNEL_DS);
21583+ for (i = 0; i < sof; ++i) {
21584+ ubsp = (unsigned long __user *) bsp;
21585+ get_user(val, ubsp);
21586+ kdb_printf(" r%lu: %016lx ", 32 + i, val);
21587+ if (!((i + 1) % 3))
21588+ kdb_printf("\n");
21589+ bsp = ia64_rse_skip_regs(bsp, 1);
21590+ }
21591+ kdb_printf("\n");
21592+ set_fs(old_fs);
21593+
21594+ return 0 ;
21595+}
21596+
21597+/*
21598+ * kdba_getregcontents
21599+ *
21600+ * Return the contents of the register specified by the
21601+ * input string argument. Return an error if the string
21602+ * does not match a machine register.
21603+ *
21604+ * The following pseudo register names are supported:
21605+ * &regs - Prints address of exception frame
21606+ * kesp - Prints kernel stack pointer at time of fault
21607+ * sstk - Prints switch stack for ia64
21608+ * %<regname> - Uses the value of the registers at the
21609+ * last time the user process entered kernel
21610+ * mode, instead of the registers at the time
21611+ * kdb was entered.
21612+ *
21613+ * Parameters:
21614+ * regname Pointer to string naming register
21615+ * regs Pointer to structure containing registers.
21616+ * Outputs:
21617+ * *contents Pointer to unsigned long to recieve register contents
21618+ * Returns:
21619+ * 0 Success
21620+ * KDB_BADREG Invalid register name
21621+ * Locking:
21622+ * None.
21623+ * Remarks:
21624+ *
21625+ * Note that this function is really machine independent. The kdb
21626+ * register list is not, however.
21627+ */
21628+
21629+static struct kdbregs {
21630+ char *reg_name;
21631+ size_t reg_offset;
21632+} kdbreglist[] = {
21633+ { "psr", offsetof(struct pt_regs, cr_ipsr) },
21634+ { "ifs", offsetof(struct pt_regs, cr_ifs) },
21635+ { "ip", offsetof(struct pt_regs, cr_iip) },
21636+
21637+ { "unat", offsetof(struct pt_regs, ar_unat) },
21638+ { "pfs", offsetof(struct pt_regs, ar_pfs) },
21639+ { "rsc", offsetof(struct pt_regs, ar_rsc) },
21640+
21641+ { "rnat", offsetof(struct pt_regs, ar_rnat) },
21642+ { "bsps", offsetof(struct pt_regs, ar_bspstore) },
21643+ { "pr", offsetof(struct pt_regs, pr) },
21644+
21645+ { "ldrs", offsetof(struct pt_regs, loadrs) },
21646+ { "ccv", offsetof(struct pt_regs, ar_ccv) },
21647+ { "fpsr", offsetof(struct pt_regs, ar_fpsr) },
21648+
21649+ { "b0", offsetof(struct pt_regs, b0) },
21650+ { "b6", offsetof(struct pt_regs, b6) },
21651+ { "b7", offsetof(struct pt_regs, b7) },
21652+
21653+ { "r1",offsetof(struct pt_regs, r1) },
21654+ { "r2",offsetof(struct pt_regs, r2) },
21655+ { "r3",offsetof(struct pt_regs, r3) },
21656+
21657+ { "r8",offsetof(struct pt_regs, r8) },
21658+ { "r9",offsetof(struct pt_regs, r9) },
21659+ { "r10",offsetof(struct pt_regs, r10) },
21660+
21661+ { "r11",offsetof(struct pt_regs, r11) },
21662+ { "r12",offsetof(struct pt_regs, r12) },
21663+ { "r13",offsetof(struct pt_regs, r13) },
21664+
21665+ { "r14",offsetof(struct pt_regs, r14) },
21666+ { "r15",offsetof(struct pt_regs, r15) },
21667+ { "r16",offsetof(struct pt_regs, r16) },
21668+
21669+ { "r17",offsetof(struct pt_regs, r17) },
21670+ { "r18",offsetof(struct pt_regs, r18) },
21671+ { "r19",offsetof(struct pt_regs, r19) },
21672+
21673+ { "r20",offsetof(struct pt_regs, r20) },
21674+ { "r21",offsetof(struct pt_regs, r21) },
21675+ { "r22",offsetof(struct pt_regs, r22) },
21676+
21677+ { "r23",offsetof(struct pt_regs, r23) },
21678+ { "r24",offsetof(struct pt_regs, r24) },
21679+ { "r25",offsetof(struct pt_regs, r25) },
21680+
21681+ { "r26",offsetof(struct pt_regs, r26) },
21682+ { "r27",offsetof(struct pt_regs, r27) },
21683+ { "r28",offsetof(struct pt_regs, r28) },
21684+
21685+ { "r29",offsetof(struct pt_regs, r29) },
21686+ { "r30",offsetof(struct pt_regs, r30) },
21687+ { "r31",offsetof(struct pt_regs, r31) },
21688+
21689+};
21690+
21691+static const int nkdbreglist = sizeof(kdbreglist) / sizeof(struct kdbregs);
21692+
21693+int
21694+kdba_getregcontents(const char *regname, struct pt_regs *regs, unsigned long *contents)
21695+{
21696+ int i;
21697+
21698+ if (strcmp(regname, "isr") == 0) {
21699+ fault_regs_t fr ;
21700+ get_fault_regs(&fr) ;
21701+ *contents = fr.isr ;
21702+ return 0 ;
21703+ }
21704+
21705+ if (!regs) {
21706+ kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21707+ return KDB_BADREG;
21708+ }
21709+
21710+ if (strcmp(regname, "&regs") == 0) {
21711+ *contents = (unsigned long)regs;
21712+ return 0;
21713+ }
21714+
21715+ if (strcmp(regname, "sstk") == 0) {
21716+ *contents = (unsigned long)getprsregs(regs) ;
21717+ return 0;
21718+ }
21719+
21720+ if (strcmp(regname, "ksp") == 0) {
21721+ *contents = (unsigned long) (regs + 1);
21722+ return 0;
21723+ }
21724+
21725+ for (i=0; i<nkdbreglist; i++) {
21726+ if (strstr(kdbreglist[i].reg_name, regname))
21727+ break;
21728+ }
21729+
21730+ if (i == nkdbreglist) {
21731+ /* Lets check the rse maybe */
21732+ if (regname[0] == 'r')
21733+ if (show_cur_stack_frame(simple_strtoul(regname+1, NULL, 0), contents))
21734+ return 0 ;
21735+ return KDB_BADREG;
21736+ }
21737+
21738+ *contents = *(unsigned long *)((unsigned long)regs +
21739+ kdbreglist[i].reg_offset);
21740+
21741+ return 0;
21742+}
21743+
21744+/*
21745+ * kdba_setregcontents
21746+ *
21747+ * Set the contents of the register specified by the
21748+ * input string argument. Return an error if the string
21749+ * does not match a machine register.
21750+ *
21751+ * Supports modification of user-mode registers via
21752+ * %<register-name>
21753+ *
21754+ * Parameters:
21755+ * regname Pointer to string naming register
21756+ * regs Pointer to structure containing registers.
21757+ * contents Unsigned long containing new register contents
21758+ * Outputs:
21759+ * Returns:
21760+ * 0 Success
21761+ * KDB_BADREG Invalid register name
21762+ * Locking:
21763+ * None.
21764+ * Remarks:
21765+ */
21766+
21767+int
21768+kdba_setregcontents(const char *regname,
21769+ struct pt_regs *regs,
21770+ unsigned long contents)
21771+{
21772+ int i, ret = 0, fixed = 0;
21773+ char *endp;
21774+ unsigned long regno;
21775+
21776+ if (regname[0] == '%') {
21777+ regname++;
21778+ regs = (struct pt_regs *)
21779+ (kdb_current_task->thread.ksp - sizeof(struct pt_regs));
21780+ }
21781+
21782+ if (!regs) {
21783+ kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21784+ return KDB_BADREG;
21785+ }
21786+
21787+ /* fixed registers */
21788+ for (i=0; i<nkdbreglist; i++) {
21789+ if (strnicmp(kdbreglist[i].reg_name,
21790+ regname,
21791+ strlen(regname)) == 0) {
21792+ fixed = 1;
21793+ break;
21794+ }
21795+ }
21796+
21797+ /* stacked registers */
21798+ if (!fixed) {
21799+ regno = (simple_strtoul(&regname[1], &endp, 10));
21800+ if ((regname[0] == 'r') && regno > (unsigned long)31) {
21801+ ret = change_cur_stack_frame(regno, &contents);
21802+ if(!ret) return 0;
21803+ }
21804+ }
21805+
21806+ if ((i == nkdbreglist)
21807+ || (strlen(kdbreglist[i].reg_name) != strlen(regname))
21808+ || ret) {
21809+ return KDB_BADREG;
21810+ }
21811+
21812+ /* just in case of "standard" register */
21813+ *(unsigned long *)((unsigned long)regs + kdbreglist[i].reg_offset) =
21814+ contents;
21815+
21816+ return 0;
21817+}
21818+
21819+/*
21820+ * kdba_dumpregs
21821+ *
21822+ * Dump the specified register set to the display.
21823+ *
21824+ * Parameters:
21825+ * regs Pointer to structure containing registers.
21826+ * type Character string identifying register set to dump
21827+ * extra string further identifying register (optional)
21828+ * Outputs:
21829+ * Returns:
21830+ * 0 Success
21831+ * Locking:
21832+ * None.
21833+ * Remarks:
21834+ * This function will dump the general register set if the type
21835+ * argument is NULL (struct pt_regs). The alternate register
21836+ * set types supported by this function:
21837+ *
21838+ * d Debug registers
21839+ * c Control registers
21840+ * u User registers at most recent entry to kernel
21841+ * i Interrupt registers -- same as "irr" command
21842+ * Following not yet implemented:
21843+ * m Model Specific Registers (extra defines register #)
21844+ * r Memory Type Range Registers (extra defines register)
21845+ *
21846+ * For now, all registers are covered as follows:
21847+ *
21848+ * rd - dumps all regs
21849+ * rd %isr - current interrupt status reg, read freshly
21850+ * rd s - valid stacked regs
21851+ * rd %sstk - gets switch stack addr. dump memory and search
21852+ * rd d - debug regs, may not be too useful
21853+ * rd k - dump kernel regs
21854+ *
21855+ * ARs TB Done
21856+ * OTHERS TB Decided ??
21857+ *
21858+ * Intel wish list
21859+ * These will be implemented later - Srinivasa
21860+ *
21861+ * type action
21862+ * ---- ------
21863+ * g dump all General static registers
21864+ * s dump all general Stacked registers
21865+ * f dump all Floating Point registers
21866+ * p dump all Predicate registers
21867+ * b dump all Branch registers
21868+ * a dump all Application registers
21869+ * c dump all Control registers
21870+ *
21871+ */
21872+
21873+int
21874+kdba_dumpregs(struct pt_regs *regs,
21875+ const char *type,
21876+ const char *extra)
21877+
21878+{
21879+ int i;
21880+ int count = 0;
21881+
21882+ if (type
21883+ && (type[0] == 'u')) {
21884+ type = NULL;
21885+ regs = (struct pt_regs *)
21886+ (kdb_current_task->thread.ksp - sizeof(struct pt_regs));
21887+ }
21888+
21889+ if (type == NULL) {
21890+ if (!regs) {
21891+ kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21892+ return KDB_BADREG;
21893+ }
21894+ for (i=0; i<nkdbreglist; i++) {
21895+ kdb_printf("%4s: 0x%16.16lx ",
21896+ kdbreglist[i].reg_name,
21897+ *(unsigned long *)((unsigned long)regs +
21898+ kdbreglist[i].reg_offset));
21899+
21900+ if ((++count % 3) == 0)
21901+ kdb_printf("\n");
21902+ }
21903+
21904+ kdb_printf("&regs = %p\n", (void *)regs);
21905+
21906+ return 0;
21907+ }
21908+
21909+ switch (type[0]) {
21910+ case 'd':
21911+ {
21912+ for(i=0; i<8; i+=2) {
21913+ kdb_printf("idr%d: 0x%16.16lx idr%d: 0x%16.16lx\n", i,
21914+ kdba_getdr(i), i+1, kdba_getdr(i+1));
21915+
21916+ }
21917+ return 0;
21918+ }
21919+ case 'i':
21920+ kdba_show_intregs();
21921+ break;
21922+ case 'k':
21923+ show_kernel_regs();
21924+ break;
21925+ case 'm':
21926+ break;
21927+ case 'r':
21928+ break;
21929+
21930+ case 's':
21931+ {
21932+ if (!regs) {
21933+ kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21934+ return KDB_BADREG;
21935+ }
21936+ show_cur_stack_frame(0, NULL) ;
21937+
21938+ return 0 ;
21939+ }
21940+
21941+ case '%':
21942+ {
21943+ unsigned long contents ;
21944+
21945+ if (!kdba_getregcontents(type+1, regs, &contents))
21946+ kdb_printf("%s = 0x%16.16lx\n", type+1, contents) ;
21947+ else
21948+ kdb_printf("diag: Invalid register %s\n", type+1) ;
21949+
21950+ return 0 ;
21951+ }
21952+
21953+ default:
21954+ return KDB_BADREG;
21955+ }
21956+
21957+ /* NOTREACHED */
21958+ return 0;
21959+}
21960+EXPORT_SYMBOL(kdba_dumpregs);
21961+
21962+kdb_machreg_t
21963+kdba_getpc(struct pt_regs *regs)
21964+{
21965+ return regs ? regs->cr_iip + ia64_psr(regs)->ri : 0;
21966+}
21967+
21968+int
21969+kdba_setpc(struct pt_regs *regs, kdb_machreg_t newpc)
21970+{
21971+ if (KDB_NULL_REGS(regs))
21972+ return KDB_BADREG;
21973+ regs->cr_iip = newpc & ~0xf;
21974+ ia64_psr(regs)->ri = newpc & 0x3;
21975+ KDB_STATE_SET(IP_ADJUSTED);
21976+ return 0;
21977+}
21978+
21979+struct kdba_main_loop_data {
21980+ kdb_reason_t reason;
21981+ kdb_reason_t reason2;
21982+ int error;
21983+ kdb_dbtrap_t db_result;
21984+ struct pt_regs *regs;
21985+ int ret;
21986+};
21987+
21988+/*
21989+ * do_kdba_main_loop
21990+ *
21991+ * Invoked from kdba_main_loop via unw_init_running() after that routine
21992+ * has pushed a struct switch_stack.
21993+ *
21994+ * Inputs:
21995+ * info Unwind information.
21996+ * data kdb data passed as void * to unw_init_running.
21997+ * Returns:
21998+ * none (unw_init_running requires void). vdata->ret is set to
21999+ * 0 KDB was invoked for an event which it wasn't responsible
22000+ * 1 KDB handled the event for which it was invoked.
22001+ * Outputs:
22002+ * none
22003+ * Locking:
22004+ * None.
22005+ * Remarks:
22006+ * unw_init_running() creates struct switch_stack then struct
22007+ * unw_frame_info. We get the address of the info so step over
22008+ * that to get switch_stack. Just hope that unw_init_running
22009+ * does not change its stack usage. unw_init_running adds padding
22010+ * to put switch_stack on a 16 byte boundary.
22011+ */
22012+
22013+static void
22014+do_kdba_main_loop(struct unw_frame_info *info, void *vdata)
22015+{
22016+ struct kdba_main_loop_data *data = vdata;
22017+ struct switch_stack *sw, *prev_sw;
22018+ struct pt_regs *prev_regs;
22019+ struct kdb_running_process *krp =
22020+ kdb_running_process + smp_processor_id();
22021+ KDB_DEBUG_STATE(__FUNCTION__, data->reason);
22022+ prev_sw = krp->arch.sw;
22023+ sw = (struct switch_stack *)(info+1);
22024+ /* padding from unw_init_running */
22025+ sw = (struct switch_stack *)(((unsigned long)sw + 15) & ~15);
22026+ krp->arch.sw = sw;
22027+ prev_regs = krp->regs;
22028+ data->ret = kdb_save_running(data->regs, data->reason, data->reason2,
22029+ data->error, data->db_result);
22030+ kdb_unsave_running(data->regs);
22031+ krp->regs = prev_regs;
22032+ krp->arch.sw = prev_sw;
22033+}
22034+
22035+/*
22036+ * kdba_main_loop
22037+ *
22038+ * Do any architecture specific set up before entering the main kdb loop.
22039+ * The primary function of this routine is to make all processes look the
22040+ * same to kdb, kdb must be able to list a process without worrying if the
22041+ * process is running or blocked, so make all processes look as though they
22042+ * are blocked.
22043+ *
22044+ * Inputs:
22045+ * reason The reason KDB was invoked
22046+ * error The hardware-defined error code
22047+ * error2 kdb's current reason code. Initially error but can change
22048+ * acording to kdb state.
22049+ * db_result Result from break or debug point.
22050+ * regs The exception frame at time of fault/breakpoint. If reason
22051+ * is SILENT or CPU_UP then regs is NULL, otherwise it should
22052+ * always be valid.
22053+ * Returns:
22054+ * 0 KDB was invoked for an event which it wasn't responsible
22055+ * 1 KDB handled the event for which it was invoked.
22056+ * Outputs:
22057+ * Builds a switch_stack structure before calling the main loop.
22058+ * Locking:
22059+ * None.
22060+ * Remarks:
22061+ * none.
22062+ */
22063+
22064+int
22065+kdba_main_loop(kdb_reason_t reason, kdb_reason_t reason2, int error,
22066+ kdb_dbtrap_t db_result, struct pt_regs *regs)
22067+{
22068+ struct kdba_main_loop_data data;
22069+ KDB_DEBUG_STATE("kdba_main_loop", reason);
22070+ data.reason = reason;
22071+ data.reason2 = reason2;
22072+ data.error = error;
22073+ data.db_result = db_result;
22074+ data.regs = regs;
22075+ unw_init_running(do_kdba_main_loop, &data);
22076+ return(data.ret);
22077+}
22078+
22079+void
22080+kdba_disableint(kdb_intstate_t *state)
22081+{
22082+ unsigned long *fp = (unsigned long *)state;
22083+ unsigned long flags;
22084+
22085+ local_irq_save(flags);
22086+ *fp = flags;
22087+}
22088+
22089+void
22090+kdba_restoreint(kdb_intstate_t *state)
22091+{
22092+ unsigned long flags = *(unsigned long *)state;
22093+ local_irq_restore(flags);
22094+}
22095+
22096+void
22097+kdba_setsinglestep(struct pt_regs *regs)
22098+{
22099+ if (KDB_NULL_REGS(regs))
22100+ return;
22101+ ia64_psr(regs)->ss = 1;
22102+}
22103+
22104+void
22105+kdba_clearsinglestep(struct pt_regs *regs)
22106+{
22107+ if (KDB_NULL_REGS(regs))
22108+ return;
22109+ ia64_psr(regs)->ss = 0;
22110+}
22111+
22112+/*
22113+ * kdb_tpa
22114+ *
22115+ * Virtual to Physical address translation command.
22116+ *
22117+ * tpa <addr>
22118+ *
22119+ * Parameters:
22120+ * argc Count of arguments in argv
22121+ * argv Space delimited command line arguments
22122+ * Outputs:
22123+ * None.
22124+ * Returns:
22125+ * Zero for success, a kdb diagnostic if failure.
22126+ * Locking:
22127+ * None.
22128+ * Remarks:
22129+ */
22130+#define __xtpa(x) ({ia64_va _v; asm("tpa %0=%1" : "=r"(_v.l) : "r"(x)); _v.l;})
22131+static int
22132+kdba_tpa(int argc, const char **argv)
22133+{
22134+ kdb_machreg_t addr;
22135+ int diag;
22136+ long offset = 0;
22137+ int nextarg;
22138+ char c;
22139+
22140+ nextarg = 1;
22141+ if (argc != 1)
22142+ return KDB_ARGCOUNT;
22143+ diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
22144+ if (diag)
22145+ return diag;
22146+ if (kdb_getarea(c, addr))
22147+ return(0);
22148+ kdb_printf("vaddr: 0x%lx , paddr: 0x%lx\n", addr, __xtpa(addr));
22149+ return(0);
22150+}
22151+#if defined(CONFIG_NUMA)
22152+static int
22153+kdba_tpav(int argc, const char **argv)
22154+{
22155+ kdb_machreg_t addr, end, paddr;
22156+ int diag;
22157+ long offset = 0;
22158+ int nextarg, nid, nid_old;
22159+ char c;
22160+
22161+ nextarg = 1;
22162+ if (argc != 2)
22163+ return KDB_ARGCOUNT;
22164+ diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
22165+ if (diag)
22166+ return diag;
22167+ diag = kdbgetaddrarg(argc, argv, &nextarg, &end, &offset, NULL);
22168+ if (diag)
22169+ return diag;
22170+ if (kdb_getarea(c, addr))
22171+ return(0);
22172+ if (kdb_getarea(c, end))
22173+ return(0);
22174+ paddr=__xtpa(addr);
22175+ nid = paddr_to_nid(paddr);
22176+ kdb_printf("begin: 0x%lx , paddr: 0x%lx , nid: %d\n", addr, __xtpa(addr), nid);
22177+ for(;addr<end; addr += PAGE_SIZE) {
22178+ nid_old=nid;
22179+ paddr =__xtpa(addr);
22180+ nid = paddr_to_nid(paddr);
22181+ if (nid != nid_old)
22182+ kdb_printf("NOT on same NODE: addr: 0x%lx , paddr: 0x%lx , nid: %d\n", addr, paddr, nid);
22183+ }
22184+ paddr=__xtpa(end);
22185+ nid=paddr_to_nid(end);
22186+ kdb_printf("end: 0x%lx , paddr: 0x%lx , nid: %d\n", end, paddr, nid);
22187+ return(0);
22188+}
22189+#endif
22190+
22191+#if defined(CONFIG_SMP)
22192+/*
22193+ * kdba_sendinit
22194+ *
22195+ * This function implements the 'init' command.
22196+ *
22197+ * init [<cpunum>]
22198+ *
22199+ * Inputs:
22200+ * argc argument count
22201+ * argv argument vector
22202+ * Outputs:
22203+ * None.
22204+ * Returns:
22205+ * zero for success, a kdb diagnostic if error
22206+ * Locking:
22207+ * none.
22208+ * Remarks:
22209+ */
22210+
22211+static int
22212+kdba_sendinit(int argc, const char **argv)
22213+{
22214+ unsigned long cpunum;
22215+ int diag;
22216+
22217+ if (argc != 1)
22218+ return KDB_ARGCOUNT;
22219+
22220+ diag = kdbgetularg(argv[1], &cpunum);
22221+ if (diag)
22222+ return diag;
22223+
22224+ if (cpunum >= NR_CPUS || !cpu_online(cpunum))
22225+ return KDB_BADCPUNUM;
22226+
22227+ platform_send_ipi(cpunum, 0, IA64_IPI_DM_INIT, 0);
22228+ return 0;
22229+}
22230+
22231+/* Invoked once from kdb_wait_for_cpus when waiting for cpus. For those cpus
22232+ * that have not responded to the normal KDB interrupt yet, hit them with an
22233+ * INIT event.
22234+ */
22235+void
22236+kdba_wait_for_cpus(void)
22237+{
22238+ int c;
22239+ if (KDB_FLAG(CATASTROPHIC))
22240+ return;
22241+ kdb_printf(" Sending INIT to cpus that have not responded yet\n");
22242+ for_each_online_cpu(c)
22243+ if (kdb_running_process[c].seqno < kdb_seqno - 1)
22244+ platform_send_ipi(c, 0, IA64_IPI_DM_INIT, 0);
22245+}
22246+
22247+#endif /* CONFIG_SMP */
22248+
22249+/* This code is sensitive to the layout of the MCA/INIT stack (see mca_asm.h)
22250+ * and to the stack layout that ia64_mca_modify_original_stack() creates when
22251+ * it makes the original task look blocked.
22252+ */
22253+static void
22254+kdba_handlers_modify(struct task_struct *task, int cpu)
22255+{
22256+ struct kdb_running_process *work, *save;
22257+ work = kdb_running_process + cpu;
22258+ save = kdb_running_process_save + cpu;
22259+ *work = *save;
22260+ if (!kdba_show_handlers && REGION_NUMBER(task) >= RGN_GATE &&
22261+ (task_thread_info(task)->flags & _TIF_MCA_INIT)) {
22262+ struct ia64_sal_os_state *sos = (struct ia64_sal_os_state *)
22263+ ((unsigned long)save->p + MCA_SOS_OFFSET);
22264+ char *p;
22265+ if (!sos->prev_task)
22266+ return;
22267+ work->p = sos->prev_task;
22268+ p = (char *)sos->prev_task->thread.ksp;
22269+ p += 16;
22270+ work->arch.sw = (struct switch_stack *)p;
22271+ p += sizeof(struct switch_stack);
22272+ work->regs = (struct pt_regs *)p;
22273+ work->irq_depth = 2; /* any value >1 will do */
22274+ }
22275+}
22276+
22277+/* Turn the display of the MCA/INIT handlers on or off, or display the status
22278+ * of the MCA/INIT handlers.
22279+ */
22280+static int
22281+kdba_handlers(int argc, const char **argv)
22282+{
22283+ int cpu;
22284+ struct kdb_running_process *krp;
22285+ if (argc != 1)
22286+ return KDB_ARGCOUNT;
22287+ if (strcmp(argv[1], "show") == 0)
22288+ kdba_show_handlers = 1;
22289+ else if (strcmp(argv[1], "hide") == 0)
22290+ kdba_show_handlers = 0;
22291+ else if (strcmp(argv[1], "status") != 0) {
22292+ kdb_printf("handlers <show|hide|status>\n");
22293+ return 0;
22294+ }
22295+ for (cpu = 0, krp = kdb_running_process_save; cpu < NR_CPUS; ++cpu, ++krp) {
22296+ if (krp->p)
22297+ kdba_handlers_modify(krp->p, cpu);
22298+ }
22299+ if (strcmp(argv[1], "status") != 0)
22300+ return 0;
22301+ kdb_printf("handlers status is %s\n", kdba_show_handlers ? "'show'" : "'hide'");
22302+ kdb_printf(" cpu handler task command original task command\n");
22303+ for (cpu = 0, krp = kdb_running_process_save; cpu < NR_CPUS; ++cpu, ++krp) {
22304+ struct task_struct *p = krp->p;
22305+ if (!p)
22306+ continue;
22307+ kdb_printf("%4d", cpu);
22308+ if (task_thread_info(p)->flags & _TIF_MCA_INIT) {
22309+ struct ia64_sal_os_state *sos;
22310+ kdb_printf(" " kdb_machreg_fmt0 " %-*s ",
22311+ (unsigned long)p, (int)sizeof(p->comm), p->comm);
22312+ sos = (struct ia64_sal_os_state *)((unsigned long)p + MCA_SOS_OFFSET);
22313+ p = sos->prev_task;
22314+ } else
22315+ kdb_printf("%*s", (int)(1+2+16+1+sizeof(p->comm)+2), " ");
22316+ if (p)
22317+ kdb_printf(" " kdb_machreg_fmt0 " %-*s",
22318+ (unsigned long)p, (int)sizeof(p->comm), p->comm);
22319+ kdb_printf("\n");
22320+ }
22321+ return 0;
22322+}
22323+
22324+/* Executed once on each cpu at startup. */
22325+void
22326+kdba_cpu_up(void)
22327+{
22328+}
22329+
22330+/*
22331+ * kdba_init
22332+ *
22333+ * Architecture specific initialization.
22334+ *
22335+ * Parameters:
22336+ * None.
22337+ * Returns:
22338+ * None.
22339+ * Locking:
22340+ * None.
22341+ * Remarks:
22342+ * None.
22343+ */
22344+
22345+void
22346+kdba_init(void)
22347+{
22348+ kdb_running_process_save = kzalloc(
22349+ sizeof(*kdb_running_process_save) * NR_CPUS, GFP_KERNEL);
22350+ BUG_ON(!kdb_running_process_save);
22351+ kdb_register("irr", kdba_sir, "", "Show interrupt registers", 0);
22352+ kdb_register("itm", kdba_itm, "", "Set new ITM value", 0);
22353+#if defined(CONFIG_SMP)
22354+ kdb_register("init", kdba_sendinit, "", "Send INIT to cpu", 0);
22355+#endif
22356+ kdb_register("pt_regs", kdba_pt_regs, "address", "Format struct pt_regs", 0);
22357+ kdb_register("switch_stack", kdba_switch_stack, "address", "Format struct switch_stack", 0);
22358+ kdb_register("minstate", kdba_minstate, "address", "Format PAL minstate", 0);
22359+ kdb_register("tpa", kdba_tpa, "<vaddr>", "Translate virtual to physical address", 0);
22360+#if defined(CONFIG_NUMA)
22361+ kdb_register("tpav", kdba_tpav, "<begin addr> <end addr>", "Verify that physical addresses corresponding to virtual addresses from <begin addr> to <end addr> are in same node", 0);
22362+#endif
22363+ kdb_register("stackdepth", kdba_stackdepth, "[percentage]", "Print processes using >= stack percentage", 0);
22364+ kdb_register("cpuinfo", kdba_cpuinfo, "[cpu]", "Print struct cpuinfo_ia64", 0);
22365+ kdb_register("handlers", kdba_handlers, "<show|hide|status>", "Control the display of MCA/INIT handlers", 0);
22366+
22367+#ifdef CONFIG_SERIAL_8250_CONSOLE
22368+ kdba_serial_console = KDBA_SC_STANDARD;
22369+#endif
22370+#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
22371+ if (ia64_platform_is("sn2"))
22372+ kdba_serial_console = KDBA_SC_SGI_L1;
22373+#endif
22374+ return;
22375+}
22376+
22377+/*
22378+ * kdba_adjust_ip
22379+ *
22380+ * Architecture specific adjustment of instruction pointer before leaving
22381+ * kdb.
22382+ *
22383+ * Parameters:
22384+ * reason The reason KDB was invoked
22385+ * error The hardware-defined error code
22386+ * regs The exception frame at time of fault/breakpoint. If reason
22387+ * is SILENT or CPU_UP then regs is NULL, otherwise it should
22388+ * always be valid.
22389+ * Returns:
22390+ * None.
22391+ * Locking:
22392+ * None.
22393+ * Remarks:
22394+ * On IA64, KDB_ENTER() and KDB_ENTER_SLAVE() use break which is a fault,
22395+ * not a trap. The instruction pointer must be stepped before leaving
22396+ * kdb, otherwise we get a loop.
22397+ */
22398+
22399+void
22400+kdba_adjust_ip(kdb_reason_t reason, int error, struct pt_regs *regs)
22401+{
22402+ if ((reason == KDB_REASON_ENTER || reason == KDB_REASON_ENTER_SLAVE) &&
22403+ !KDB_STATE(IP_ADJUSTED)) {
22404+ if (KDB_NULL_REGS(regs))
22405+ return;
22406+ if (ia64_psr(regs)->ri < 2)
22407+ kdba_setpc(regs, regs->cr_iip + ia64_psr(regs)->ri + 1);
22408+ else
22409+ kdba_setpc(regs, regs->cr_iip + 16);
22410+ }
22411+}
22412+
22413+void
22414+kdba_save_running(struct kdba_running_process *k, struct pt_regs *regs)
22415+{
22416+ struct kdb_running_process *work, *save;
22417+ int cpu = smp_processor_id();
22418+ work = kdb_running_process + cpu;
22419+ save = kdb_running_process_save + cpu;
22420+ *save = *work;
22421+ if (!regs)
22422+ return;
22423+ kdba_handlers_modify((struct task_struct *)regs->r13, cpu);
22424+}
22425+
22426+void
22427+kdba_unsave_running(struct kdba_running_process *k, struct pt_regs *regs)
22428+{
22429+ memset(kdb_running_process_save + smp_processor_id(), 0,
22430+ sizeof(*kdb_running_process_save));
22431+}
22432+
22433+void
22434+kdba_set_current_task(const struct task_struct *p)
22435+{
22436+ int cpu = kdb_process_cpu(p);
22437+ struct kdb_running_process *work, *save;
22438+ work = kdb_running_process + cpu;
22439+ save = kdb_running_process_save + cpu;
22440+ kdb_current_task = p;
22441+ if (kdb_task_has_cpu(p)) {
22442+ kdb_current_regs = work->regs;
22443+ return;
22444+ }
22445+ kdb_current_regs = NULL;
22446+ /* For most blocked tasks we cannot get the pt_regs without doing an
22447+ * unwind, which is not worth doing. For tasks interrupted by
22448+ * MCA/INIT, when the user is not working on the handlers, we must use
22449+ * the registers at the time of interrupt.
22450+ */
22451+ if (work->p == save->p || work->p != p)
22452+ return;
22453+ kdb_current_regs = (struct pt_regs *)(work->p->thread.ksp + 16 +
22454+ sizeof(struct switch_stack));
22455+}
22456+
22457+/*
22458+ * asm-ia64 uaccess.h supplies __copy_to_user which relies on MMU to
22459+ * trap invalid addresses in the _xxx fields. Verify the other address
22460+ * of the pair is valid by accessing the first and last byte ourselves,
22461+ * then any access violations should only be caused by the _xxx
22462+ * addresses,
22463+ */
22464+
22465+int
22466+kdba_putarea_size(unsigned long to_xxx, void *from, size_t size)
22467+{
22468+ mm_segment_t oldfs = get_fs();
22469+ int r;
22470+ char c;
22471+ c = *((volatile char *)from);
22472+ c = *((volatile char *)from + size - 1);
22473+
22474+ if (to_xxx >> 61 <= 4) {
22475+ return kdb_putuserarea_size(to_xxx, from, size);
22476+ }
22477+
22478+ set_fs(KERNEL_DS);
22479+ r = __copy_to_user_inatomic((void __user *)to_xxx, from, size);
22480+ set_fs(oldfs);
22481+ return r;
22482+}
22483+
22484+int
22485+kdba_getarea_size(void *to, unsigned long from_xxx, size_t size)
22486+{
22487+ mm_segment_t oldfs = get_fs();
22488+ int r;
22489+ *((volatile char *)to) = '\0';
22490+ *((volatile char *)to + size - 1) = '\0';
22491+
22492+ if (from_xxx >> 61 <= 4)
22493+ return kdb_getuserarea_size(to, from_xxx, size);
22494+
22495+ set_fs(KERNEL_DS);
22496+ switch (size) {
22497+ case 1:
22498+ r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 1);
22499+ break;
22500+ case 2:
22501+ r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 2);
22502+ break;
22503+ case 4:
22504+ r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 4);
22505+ break;
22506+ case 8:
22507+ r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 8);
22508+ break;
22509+ default:
22510+ r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, size);
22511+ break;
22512+ }
22513+ set_fs(oldfs);
22514+ return r;
22515+}
22516+
22517+int
22518+kdba_verify_rw(unsigned long addr, size_t size)
22519+{
22520+ unsigned char data[(__force size_t) size];
22521+ return(kdba_getarea_size(data, addr, size) || kdba_putarea_size(addr, data, size));
22522+}
22523+
22524+#ifdef CONFIG_KDB_KDUMP
22525+void
22526+kdba_kdump_prepare(struct pt_regs *fixed_regs)
22527+{
22528+ int i;
22529+
22530+ /* Set on KEXEC bit on all onlinr cpus */
22531+ for (i = 1; i < NR_CPUS; ++i) {
22532+ if (!cpu_online(i))
22533+ continue;
22534+
22535+ KDB_STATE_SET_CPU(KEXEC, i);
22536+ }
22537+
22538+ machine_crash_shutdown(fixed_regs);
22539+}
22540+
22541+void kdba_kdump_shutdown_slave(struct pt_regs *regs)
22542+{
22543+ if (kdb_kdump_state != KDB_KDUMP_RESET) {
22544+ unw_init_running(kdump_cpu_freeze, NULL);
22545+ }
22546+}
22547+#endif
22548--- a/arch/ia64/kernel/head.S
22549+++ b/arch/ia64/kernel/head.S
22550@@ -259,8 +259,13 @@ start_ap:
22551 /*
22552 * Switch into virtual mode:
22553 */
22554+#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
22555+#define IA64_PSR_KDB_FLAGS IA64_PSR_DB
22556+#else
22557+#define IA64_PSR_KDB_FLAGS 0
22558+#endif
22559 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \
22560- |IA64_PSR_DI)
22561+ |IA64_PSR_DI|IA64_PSR_KDB_FLAGS)
22562 ;;
22563 mov cr.ipsr=r16
22564 movl r17=1f
22565--- a/arch/ia64/kernel/mca.c
22566+++ b/arch/ia64/kernel/mca.c
22567@@ -88,6 +88,10 @@
22568 #include <linux/cpumask.h>
22569 #include <linux/kdebug.h>
22570 #include <linux/cpu.h>
22571+#ifdef CONFIG_KDB
22572+#include <linux/kdb.h>
22573+#include <linux/kdbprivate.h> /* for switch state wrappers */
22574+#endif /* CONFIG_KDB */
22575
22576 #include <asm/delay.h>
22577 #include <asm/machvec.h>
22578@@ -824,6 +828,14 @@ ia64_mca_rendez_int_handler(int rendez_i
22579 */
22580 ia64_sal_mc_rendez();
22581
22582+#ifdef CONFIG_KDB
22583+ /* We get here when the MCA monarch has entered and has woken up the
22584+ * slaves. Do a KDB rendezvous to meet the monarch cpu.
22585+ */
22586+ if (monarch_cpu != -1)
22587+ KDB_ENTER_SLAVE();
22588+#endif
22589+
22590 NOTIFY_MCA(DIE_MCA_RENDZVOUS_PROCESS, get_irq_regs(), (long)&nd, 1);
22591
22592 /* Wait for the monarch cpu to exit. */
22593@@ -1361,6 +1373,19 @@ ia64_mca_handler(struct pt_regs *regs, s
22594 mca_insert_tr(0x2); /*Reload dynamic itrs*/
22595 }
22596
22597+#ifdef CONFIG_KDB
22598+ kdb_save_flags();
22599+ KDB_FLAG_CLEAR(CATASTROPHIC);
22600+ KDB_FLAG_CLEAR(RECOVERY);
22601+ if (recover)
22602+ KDB_FLAG_SET(RECOVERY);
22603+ else
22604+ KDB_FLAG_SET(CATASTROPHIC);
22605+ KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22606+ KDB_ENTER();
22607+ kdb_restore_flags();
22608+#endif /* CONFIG_KDB */
22609+
22610 NOTIFY_MCA(DIE_MCA_MONARCH_LEAVE, regs, (long)&nd, 1);
22611
22612 if (atomic_dec_return(&mca_count) > 0) {
22613@@ -1373,6 +1398,12 @@ ia64_mca_handler(struct pt_regs *regs, s
22614 if (cpu_isset(i, mca_cpu)) {
22615 monarch_cpu = i;
22616 cpu_clear(i, mca_cpu); /* wake next cpu */
22617+#ifdef CONFIG_KDB
22618+ /*
22619+ * No longer a monarch, report in as a slave.
22620+ */
22621+ KDB_ENTER_SLAVE();
22622+#endif
22623 while (monarch_cpu != -1)
22624 cpu_relax(); /* spin until last cpu leaves */
22625 set_curr_task(cpu, previous_current);
22626@@ -1382,6 +1413,7 @@ ia64_mca_handler(struct pt_regs *regs, s
22627 }
22628 }
22629 }
22630+
22631 set_curr_task(cpu, previous_current);
22632 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
22633 monarch_cpu = -1; /* This frees the slaves and previous monarchs */
22634@@ -1642,6 +1674,11 @@ default_monarch_init_process(struct noti
22635 }
22636 }
22637 printk("\n\n");
22638+#ifdef CONFIG_KDB
22639+ KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22640+ KDB_ENTER();
22641+ KDB_FLAG_CLEAR(NOIPI);
22642+#else /* !CONFIG_KDB */
22643 if (read_trylock(&tasklist_lock)) {
22644 do_each_thread (g, t) {
22645 printk("\nBacktrace of pid %d (%s)\n", t->pid, t->comm);
22646@@ -1649,6 +1686,7 @@ default_monarch_init_process(struct noti
22647 } while_each_thread (g, t);
22648 read_unlock(&tasklist_lock);
22649 }
22650+#endif /* CONFIG_KDB */
22651 /* FIXME: This will not restore zapped printk locks. */
22652 RESTORE_LOGLEVEL(console_loglevel);
22653 return NOTIFY_DONE;
22654@@ -1681,6 +1719,20 @@ ia64_init_handler(struct pt_regs *regs,
22655 int cpu = smp_processor_id();
22656 struct ia64_mca_notify_die nd =
22657 { .sos = sos, .monarch_cpu = &monarch_cpu };
22658+#ifdef CONFIG_KDB
22659+ int kdba_recalcitrant = 0;
22660+ /* kdba_wait_for_cpus() sends INIT to recalcitrant cpus which ends up
22661+ * calling this routine. If KDB is waiting for the IPI to be processed
22662+ * then treat all INIT events as slaves, kdb_initial_cpu is the
22663+ * monarch.
22664+ */
22665+ if (KDB_STATE(WAIT_IPI)) {
22666+ monarch_cpu = kdb_initial_cpu;
22667+ sos->monarch = 0;
22668+ KDB_STATE_CLEAR(WAIT_IPI);
22669+ kdba_recalcitrant = 1;
22670+ }
22671+#endif /* CONFIG_KDB */
22672
22673 NOTIFY_INIT(DIE_INIT_ENTER, regs, (long)&nd, 0);
22674
22675@@ -1719,6 +1771,11 @@ ia64_init_handler(struct pt_regs *regs,
22676 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_INIT;
22677 while (monarch_cpu == -1)
22678 cpu_relax(); /* spin until monarch enters */
22679+#ifdef CONFIG_KDB
22680+ KDB_ENTER_SLAVE();
22681+ if (kdba_recalcitrant)
22682+ monarch_cpu = -1;
22683+#endif /* CONFIG_KDB */
22684
22685 NOTIFY_INIT(DIE_INIT_SLAVE_ENTER, regs, (long)&nd, 1);
22686 NOTIFY_INIT(DIE_INIT_SLAVE_PROCESS, regs, (long)&nd, 1);
22687@@ -1747,6 +1804,14 @@ ia64_init_handler(struct pt_regs *regs,
22688 mprintk("Delaying for 5 seconds...\n");
22689 udelay(5*1000000);
22690 ia64_wait_for_slaves(cpu, "INIT");
22691+
22692+#ifdef CONFIG_KDB
22693+ kdb_save_flags();
22694+ KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22695+ KDB_ENTER();
22696+ kdb_restore_flags();
22697+#endif /* CONFIG_KDB */
22698+
22699 /* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through
22700 * to default_monarch_init_process() above and just print all the
22701 * tasks.
22702@@ -1985,6 +2050,13 @@ ia64_mca_init(void)
22703 printk(KERN_INFO "Increasing MCA rendezvous timeout from "
22704 "%ld to %ld milliseconds\n", timeout, isrv.v0);
22705 timeout = isrv.v0;
22706+#ifdef CONFIG_KDB
22707+ /* kdb must wait long enough for the MCA timeout to trip
22708+ * and process. The MCA timeout is in milliseconds.
22709+ */
22710+ kdb_wait_for_cpus_secs = max(kdb_wait_for_cpus_secs,
22711+ (int)(timeout/1000) + 10);
22712+#endif /* CONFIG_KDB */
22713 NOTIFY_MCA(DIE_MCA_NEW_TIMEOUT, NULL, timeout, 0);
22714 continue;
22715 }
22716--- a/arch/ia64/kernel/smp.c
22717+++ b/arch/ia64/kernel/smp.c
22718@@ -36,6 +36,11 @@
22719 #include <asm/current.h>
22720 #include <asm/delay.h>
22721 #include <asm/machvec.h>
22722+
22723+#ifdef CONFIG_KDB
22724+#include <linux/kdb.h>
22725+#endif /* CONFIG_KDB */
22726+
22727 #include <asm/io.h>
22728 #include <asm/irq.h>
22729 #include <asm/page.h>
22730@@ -64,6 +69,9 @@ static DEFINE_PER_CPU(unsigned short, sh
22731 #define IPI_CPU_STOP 1
22732 #define IPI_CALL_FUNC_SINGLE 2
22733 #define IPI_KDUMP_CPU_STOP 3
22734+#ifdef CONFIG_KDB
22735+#define IPI_KDB_INTERRUPT 4
22736+#endif /* CONFIG_KDB */
22737
22738 /* This needs to be cacheline aligned because it is written to by *other* CPUs. */
22739 static DEFINE_PER_CPU_SHARED_ALIGNED(u64, ipi_operation);
22740@@ -124,6 +132,12 @@ handle_IPI (int irq, void *dev_id)
22741 unw_init_running(kdump_cpu_freeze, NULL);
22742 break;
22743 #endif
22744+#ifdef CONFIG_KDB
22745+ case IPI_KDB_INTERRUPT:
22746+ if (!kdb_ipi(get_irq_regs(), NULL))
22747+ printk(KERN_ERR "kdb_ipi() rejected IPI_KDB_INTERRUPT\n");
22748+ break;
22749+#endif
22750 default:
22751 printk(KERN_CRIT "Unknown IPI on CPU %d: %lu\n",
22752 this_cpu, which);
22753@@ -332,3 +346,12 @@ setup_profiling_timer (unsigned int mult
22754 {
22755 return -EINVAL;
22756 }
22757+
22758+#if defined(CONFIG_KDB)
22759+void
22760+smp_kdb_stop(void)
22761+{
22762+ if (!KDB_FLAG(NOIPI))
22763+ send_IPI_allbutself(IPI_KDB_INTERRUPT);
22764+}
22765+#endif /* CONFIG_KDB */
22766--- a/arch/ia64/kernel/traps.c
22767+++ b/arch/ia64/kernel/traps.c
22768@@ -13,6 +13,9 @@
22769 #include <linux/tty.h>
22770 #include <linux/vt_kern.h> /* For unblank_screen() */
22771 #include <linux/module.h> /* for EXPORT_SYMBOL */
22772+#ifdef CONFIG_KDB
22773+#include <linux/kdb.h>
22774+#endif /* CONFIG_KDB */
22775 #include <linux/hardirq.h>
22776 #include <linux/kprobes.h>
22777 #include <linux/delay.h> /* for ssleep() */
22778@@ -78,6 +81,10 @@ die (const char *str, struct pt_regs *re
22779 if (!regs)
22780 return 1;
22781
22782+#ifdef CONFIG_KDB
22783+ (void)kdb(KDB_REASON_OOPS, err, regs);
22784+#endif /* CONFIG_KDB */
22785+
22786 if (panic_on_oops)
22787 panic("Fatal exception");
22788
22789@@ -171,6 +178,17 @@ __kprobes ia64_bad_break (unsigned long
22790 if (break_num < 0x80000) {
22791 sig = SIGILL; code = __ILL_BREAK;
22792 } else {
22793+#ifdef CONFIG_KDB
22794+ if (break_num == KDB_BREAK_ENTER &&
22795+ kdb(KDB_REASON_ENTER, break_num, regs))
22796+ return; /* kdb handled it */
22797+ if (break_num == KDB_BREAK_ENTER_SLAVE &&
22798+ kdb(KDB_REASON_ENTER_SLAVE, break_num, regs))
22799+ return; /* kdb handled it */
22800+ if (break_num == KDB_BREAK_BREAK &&
22801+ kdb(KDB_REASON_BREAK, break_num, regs))
22802+ return; /* kdb handled it */
22803+#endif /* CONFIG_KDB */
22804 if (notify_die(DIE_BREAK, "bad break", regs, break_num, TRAP_BRKPT, SIGTRAP)
22805 == NOTIFY_STOP)
22806 return;
22807@@ -565,6 +583,10 @@ ia64_fault (unsigned long vector, unsign
22808 if (notify_die(DIE_FAULT, "ia64_fault", &regs, vector, siginfo.si_code, SIGTRAP)
22809 == NOTIFY_STOP)
22810 return;
22811+#ifdef CONFIG_KDB
22812+ if (!user_mode(&regs) && kdb(KDB_REASON_DEBUG, vector, &regs))
22813+ return; /* kdb handled this */
22814+#endif /* CONFIG_KDB */
22815 siginfo.si_signo = SIGTRAP;
22816 siginfo.si_errno = 0;
22817 siginfo.si_addr = (void __user *) ifa;
22818--- a/arch/ia64/kernel/unwind.c
22819+++ b/arch/ia64/kernel/unwind.c
22820@@ -57,14 +57,27 @@
22821
22822 #ifdef UNW_DEBUG
22823 static unsigned int unw_debug_level = UNW_DEBUG;
22824-# define UNW_DEBUG_ON(n) unw_debug_level >= n
22825- /* Do not code a printk level, not all debug lines end in newline */
22826-# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) printk(__VA_ARGS__)
22827+# ifdef CONFIG_KDB
22828+# include <linux/kdb.h>
22829+# include <linux/kdbprivate.h>
22830+# define UNW_KMALLOC(s, f) debug_kmalloc(s, f)
22831+# define UNW_KFREE(p) debug_kfree(p)
22832+# define UNW_DEBUG_ON(n) (unw_debug_level >= n && !KDB_IS_RUNNING())
22833+# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) kdb_printf(__VA_ARGS__)
22834+# else /* !CONFIG_KDB */
22835+# define UNW_DEBUG_ON(n) unw_debug_level >= n
22836+ /* Do not code a printk level, not all debug lines end in newline */
22837+# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) printk(__VA_ARGS__)
22838+# define UNW_KMALLOC(s, f) kmalloc(s, f)
22839+# define UNW_KFREE(p) kfree(p)
22840+# endif /* CONFIG_KDB */
22841 # undef inline
22842 # define inline
22843 #else /* !UNW_DEBUG */
22844 # define UNW_DEBUG_ON(n) 0
22845 # define UNW_DPRINT(n, ...)
22846+# define UNW_KMALLOC(s, f) kmalloc(s, f)
22847+# define UNW_KFREE(p) kfree(p)
22848 #endif /* UNW_DEBUG */
22849
22850 #if UNW_STATS
22851@@ -73,10 +86,10 @@
22852 # define STAT(x...)
22853 #endif
22854
22855-#define alloc_reg_state() kmalloc(sizeof(struct unw_reg_state), GFP_ATOMIC)
22856-#define free_reg_state(usr) kfree(usr)
22857-#define alloc_labeled_state() kmalloc(sizeof(struct unw_labeled_state), GFP_ATOMIC)
22858-#define free_labeled_state(usr) kfree(usr)
22859+#define alloc_reg_state() UNW_KMALLOC(sizeof(struct unw_reg_state), GFP_ATOMIC)
22860+#define free_reg_state(usr) UNW_KFREE(usr)
22861+#define alloc_labeled_state() UNW_KMALLOC(sizeof(struct unw_labeled_state), GFP_ATOMIC)
22862+#define free_labeled_state(usr) UNW_KFREE(usr)
22863
22864 typedef unsigned long unw_word;
22865 typedef unsigned char unw_hash_index_t;
22866@@ -2092,7 +2105,7 @@ unw_add_unwind_table (const char *name,
22867 return NULL;
22868 }
22869
22870- table = kmalloc(sizeof(*table), GFP_USER);
22871+ table = UNW_KMALLOC(sizeof(*table), GFP_USER);
22872 if (!table)
22873 return NULL;
22874
22875@@ -2165,7 +2178,7 @@ unw_remove_unwind_table (void *handle)
22876 write_unlock(&tmp->lock);
22877 }
22878
22879- kfree(table);
22880+ UNW_KFREE(table);
22881 }
22882
22883 static int __init
22884@@ -2199,7 +2212,7 @@ create_gate_table (void)
22885 size += 3*8 + 8 + 8*UNW_LENGTH(*(u64 *) (segbase + entry->info_offset));
22886 size += 8; /* reserve space for "end of table" marker */
22887
22888- unw.gate_table = kmalloc(size, GFP_KERNEL);
22889+ unw.gate_table = UNW_KMALLOC(size, GFP_KERNEL);
22890 if (!unw.gate_table) {
22891 unw.gate_table_size = 0;
22892 printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __func__);