You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(75) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(70) |
Feb
(20) |
Mar
(52) |
Apr
(149) |
May
(387) |
Jun
(466) |
Jul
(133) |
Aug
(87) |
Sep
(122) |
Oct
(140) |
Nov
(185) |
Dec
(105) |
| 2010 |
Jan
(85) |
Feb
(45) |
Mar
(75) |
Apr
(17) |
May
(41) |
Jun
(52) |
Jul
(33) |
Aug
(29) |
Sep
(36) |
Oct
(15) |
Nov
(26) |
Dec
(34) |
| 2011 |
Jan
(26) |
Feb
(25) |
Mar
(26) |
Apr
(29) |
May
(20) |
Jun
(27) |
Jul
(15) |
Aug
(32) |
Sep
(13) |
Oct
(64) |
Nov
(60) |
Dec
(10) |
| 2012 |
Jan
(64) |
Feb
(63) |
Mar
(39) |
Apr
(43) |
May
(54) |
Jun
(11) |
Jul
(30) |
Aug
(45) |
Sep
(11) |
Oct
(70) |
Nov
(24) |
Dec
(23) |
| 2013 |
Jan
(17) |
Feb
(8) |
Mar
(35) |
Apr
(40) |
May
(20) |
Jun
(24) |
Jul
(36) |
Aug
(25) |
Sep
(42) |
Oct
(40) |
Nov
(9) |
Dec
(21) |
| 2014 |
Jan
(29) |
Feb
(24) |
Mar
(60) |
Apr
(22) |
May
(22) |
Jun
(46) |
Jul
(11) |
Aug
(23) |
Sep
(26) |
Oct
(10) |
Nov
(14) |
Dec
(2) |
| 2015 |
Jan
(28) |
Feb
(47) |
Mar
(33) |
Apr
(58) |
May
(5) |
Jun
(1) |
Jul
|
Aug
(8) |
Sep
(12) |
Oct
(25) |
Nov
(58) |
Dec
(21) |
| 2016 |
Jan
(12) |
Feb
(40) |
Mar
(2) |
Apr
(1) |
May
(67) |
Jun
(2) |
Jul
(5) |
Aug
(36) |
Sep
|
Oct
(24) |
Nov
(17) |
Dec
(50) |
| 2017 |
Jan
(14) |
Feb
(16) |
Mar
(2) |
Apr
(35) |
May
(14) |
Jun
(16) |
Jul
(3) |
Aug
(3) |
Sep
|
Oct
(19) |
Nov
|
Dec
(16) |
| 2018 |
Jan
(55) |
Feb
(11) |
Mar
(34) |
Apr
(14) |
May
(4) |
Jun
(20) |
Jul
(39) |
Aug
(16) |
Sep
(17) |
Oct
(16) |
Nov
(20) |
Dec
(30) |
| 2019 |
Jan
(29) |
Feb
(24) |
Mar
(37) |
Apr
(26) |
May
(19) |
Jun
(21) |
Jul
(2) |
Aug
(3) |
Sep
(9) |
Oct
(12) |
Nov
(12) |
Dec
(12) |
| 2020 |
Jan
(47) |
Feb
(36) |
Mar
(54) |
Apr
(44) |
May
(37) |
Jun
(19) |
Jul
(32) |
Aug
(13) |
Sep
(16) |
Oct
(24) |
Nov
(32) |
Dec
(11) |
| 2021 |
Jan
(14) |
Feb
(5) |
Mar
(40) |
Apr
(32) |
May
(42) |
Jun
(31) |
Jul
(29) |
Aug
(47) |
Sep
(38) |
Oct
(17) |
Nov
(74) |
Dec
(33) |
| 2022 |
Jan
(11) |
Feb
(15) |
Mar
(40) |
Apr
(21) |
May
(39) |
Jun
(44) |
Jul
(19) |
Aug
(46) |
Sep
(79) |
Oct
(35) |
Nov
(21) |
Dec
(15) |
| 2023 |
Jan
(56) |
Feb
(13) |
Mar
(43) |
Apr
(28) |
May
(60) |
Jun
(15) |
Jul
(29) |
Aug
(28) |
Sep
(32) |
Oct
(21) |
Nov
(42) |
Dec
(39) |
| 2024 |
Jan
(35) |
Feb
(17) |
Mar
(28) |
Apr
(7) |
May
(14) |
Jun
(35) |
Jul
(30) |
Aug
(35) |
Sep
(30) |
Oct
(28) |
Nov
(38) |
Dec
(18) |
| 2025 |
Jan
(21) |
Feb
(28) |
Mar
(36) |
Apr
(35) |
May
(34) |
Jun
(58) |
Jul
(9) |
Aug
(54) |
Sep
(47) |
Oct
(15) |
Nov
(44) |
Dec
|
|
From: <oh...@ma...> - 2009-02-22 18:01:19
|
Author: oharboe
Date: 2009-02-22 18:01:16 +0100 (Sun, 22 Feb 2009)
New Revision: 1378
Added:
trunk/src/target/target/pxi42x.cfg
Removed:
trunk/src/target/target/ipx42x.cfg
Log:
John Woods <jo...@gm...> fix newtap gaffe + rename
Deleted: trunk/src/target/target/ipx42x.cfg
===================================================================
--- trunk/src/target/target/ipx42x.cfg 2009-02-19 18:52:46 UTC (rev 1377)
+++ trunk/src/target/target/ipx42x.cfg 2009-02-22 17:01:16 UTC (rev 1378)
@@ -1,32 +0,0 @@
-#xscale ixp42x CPU
-
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME ipx42x
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- # this defaults to a bigendian
- set _ENDIAN big
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- # force an error till we get a good number
- set _CPUTAPID 0xffffffff
-}
-
-#use combined on interfaces or targets that can?t set TRST/SRST separately
-reset_config srst_only srst_pulls_trst
-#jtag scan chain
-
-jtag newtap $_CPUNAME cpu -irlen 7 -ircapture 0x1 -irmask 0x7f -expected-id $_CPUTAPID
-
-set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
-target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME -variant ipxP42x
-
Copied: trunk/src/target/target/pxi42x.cfg (from rev 1377, trunk/src/target/target/ipx42x.cfg)
===================================================================
--- trunk/src/target/target/ipx42x.cfg 2009-02-19 18:52:46 UTC (rev 1377)
+++ trunk/src/target/target/pxi42x.cfg 2009-02-22 17:01:16 UTC (rev 1378)
@@ -0,0 +1,32 @@
+#xscale ixp42x CPU
+
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME ipx42x
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ # this defaults to a bigendian
+ set _ENDIAN big
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ # force an error till we get a good number
+ set _CPUTAPID 0xffffffff
+}
+
+#use combined on interfaces or targets that can?t set TRST/SRST separately
+reset_config srst_only srst_pulls_trst
+#jtag scan chain
+
+jtag newtap $_CHIPNAME cpu -irlen 7 -ircapture 0x1 -irmask 0x7f -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME -variant ipxP42x
+
|
|
From: <oh...@ma...> - 2009-02-19 19:58:50
|
Author: oharboe
Date: 2009-02-19 19:52:46 +0100 (Thu, 19 Feb 2009)
New Revision: 1377
Modified:
trunk/src/flash/flash.c
Log:
John Woods <jo...@gm...> fix checks for addresses at upper end of the universe
Modified: trunk/src/flash/flash.c
===================================================================
--- trunk/src/flash/flash.c 2009-02-18 09:09:11 UTC (rev 1376)
+++ trunk/src/flash/flash.c 2009-02-19 18:52:46 UTC (rev 1377)
@@ -950,7 +950,7 @@
}
/* check whether it fits */
- if (addr + length > c->base + c->size)
+ if (addr + length - 1 > c->base + c->size - 1)
return ERROR_FLASH_DST_BREAKS_ALIGNMENT;
addr -= c->base;
@@ -1030,7 +1030,7 @@
section_first = section;
section_last = section;
padding[section] = 0;
- while ((run_address + run_size < c->base + c->size)
+ while ((run_address + run_size - 1 < c->base + c->size - 1)
&& (section_last + 1 < image->num_sections))
{
if (image->sections[section_last + 1].base_address < (run_address + run_size))
@@ -1052,7 +1052,7 @@
}
/* fit the run into bank constraints */
- if (run_address + run_size > c->base + c->size)
+ if (run_address + run_size - 1 > c->base + c->size - 1)
{
LOG_WARNING("writing %d bytes only - as image section is %d bytes and bank is only %d bytes", \
c->base + c->size - run_address, run_size, c->size);
|
|
From: oharboe at B. <oh...@ma...> - 2009-02-18 10:09:15
|
Author: oharboe
Date: 2009-02-18 10:09:11 +0100 (Wed, 18 Feb 2009)
New Revision: 1376
Modified:
trunk/doc/openocd.texi
Log:
Holger Schurig <hs...@ma...> incorporate some comments from Rick
Modified: trunk/doc/openocd.texi
===================================================================
--- trunk/doc/openocd.texi 2009-02-18 07:39:20 UTC (rev 1375)
+++ trunk/doc/openocd.texi 2009-02-18 09:09:11 UTC (rev 1376)
@@ -1509,9 +1509,12 @@
parameters'', the required parameters are:
@comment START REQUIRED
@itemize @bullet
-@item @b{-irlen NUMBER} - the length in bits of the instruction register
-@item @b{-ircapture NUMBER} - the ID code capture command.
-@item @b{-irmask NUMBER} - the corresponding mask for the ir register.
+@item @b{-irlen NUMBER} - the length in bits of the instruction register, mostly 4 or 5 bits.
+@item @b{-ircapture NUMBER} - the IDCODE capture command, usually 0x01.
+@item @b{-irmask NUMBER} - the corresponding mask for the IR register. For
+some devices, there are bits in the IR that aren't used. This lets you mask
+them off when doing comparisons. In general, this should just be all ones for
+the size of the IR.
@comment END REQUIRED
@end itemize
An example of a FOOBAR Tap
|
|
From: oharboe at B. <oh...@ma...> - 2009-02-18 08:39:23
|
Author: oharboe
Date: 2009-02-18 08:39:20 +0100 (Wed, 18 Feb 2009)
New Revision: 1375
Modified:
trunk/src/flash/mflash.c
trunk/src/flash/pic32mx.c
trunk/src/helper/jim-eventloop.h
trunk/src/server/gdb_server.c
trunk/src/target/mips_m4k.c
Log:
Holger Schurig <hs...@ma...> fix warnings
Modified: trunk/src/flash/mflash.c
===================================================================
--- trunk/src/flash/mflash.c 2009-02-17 11:54:30 UTC (rev 1374)
+++ trunk/src/flash/mflash.c 2009-02-18 07:39:20 UTC (rev 1375)
@@ -206,31 +206,6 @@
return mflash_bank->gpio_drv->set_gpio_output_val(mflash_bank->rst_pin, level);
}
-static int mg_dump_task_reg (void)
-{
- target_t *target = mflash_bank->target;
- u32 address = mflash_bank->base + MG_REG_OFFSET + MG_REG_ERROR;
- u8 value, i;
- char *reg_name[9] = {
- "error ",
- "sector count ",
- "sector num (LBA 7- 0) ",
- "cyl. low (LBA 15- 8) ",
- "cyl. high (LBA 23-16) ",
- "drv/head ",
- "status ",
- "dev control ",
- "burst control "
- };
-
- for (i = 0; i < 9; i++) {
- target_read_u8(target, address + i * 2, &value);
- LOG_INFO("%s : 0x%2.2x", reg_name[i], value);
- }
-
- return ERROR_OK;
-
-}
static int mflash_init_gpio (void)
{
mflash_gpio_drv_t *gpio_drv = mflash_bank->gpio_drv;
Modified: trunk/src/flash/pic32mx.c
===================================================================
--- trunk/src/flash/pic32mx.c 2009-02-17 11:54:30 UTC (rev 1374)
+++ trunk/src/flash/pic32mx.c 2009-02-18 07:39:20 UTC (rev 1375)
@@ -268,10 +268,12 @@
{
pic32mx_flash_bank_t *pic32mx_info = NULL;
target_t *target = bank->target;
+#if 0
u16 prot_reg[4] = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF};
int i, reg, bit;
int status;
u32 protection;
+#endif
pic32mx_info = bank->driver_priv;
@@ -824,7 +826,9 @@
int pic32mx_chip_erase(struct flash_bank_s *bank)
{
target_t *target = bank->target;
+#if 0
u32 status;
+#endif
if (target->state != TARGET_HALTED)
{
@@ -865,10 +869,10 @@
int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
+#if 0
flash_bank_t *bank;
int i;
-#if 0
if (argc != 0)
{
command_print(cmd_ctx, "pic32mx chip_erase");
Modified: trunk/src/helper/jim-eventloop.h
===================================================================
--- trunk/src/helper/jim-eventloop.h 2009-02-17 11:54:30 UTC (rev 1374)
+++ trunk/src/helper/jim-eventloop.h 2009-02-18 07:39:20 UTC (rev 1375)
@@ -95,17 +95,6 @@
#define JIM_GET_API(name) \
Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name))
-#if defined(JIM_EXTENSION) || defined(JIM_EMBEDDED)
-/* This must be included "inline" inside the extension */
-static void Jim_ImportEventloopAPI(Jim_Interp *interp)
-{
- JIM_GET_API(CreateFileHandler);
- JIM_GET_API(DeleteFileHandler);
- JIM_GET_API(CreateTimeHandler);
- JIM_GET_API(DeleteTimeHandler);
- JIM_GET_API(ProcessEvents);
-}
-#endif /* defined JIM_EXTENSION || defined JIM_EMBEDDED */
#undef JIM_GET_API
#endif /* __JIM_EVENTLOOP_CORE__ */
Modified: trunk/src/server/gdb_server.c
===================================================================
--- trunk/src/server/gdb_server.c 2009-02-17 11:54:30 UTC (rev 1374)
+++ trunk/src/server/gdb_server.c 2009-02-18 07:39:20 UTC (rev 1375)
@@ -600,7 +600,7 @@
- int checksum_ok;
+ int checksum_ok = 0;
/* explicit code expansion here to get faster inlined code in -O3 by not
* calculating checksum
*/
Modified: trunk/src/target/mips_m4k.c
===================================================================
--- trunk/src/target/mips_m4k.c 2009-02-17 11:54:30 UTC (rev 1374)
+++ trunk/src/target/mips_m4k.c 2009-02-18 07:39:20 UTC (rev 1375)
@@ -93,7 +93,7 @@
int mips_m4k_examine_debug_reason(target_t *target)
{
- int break_status;
+ u32 break_status;
int retval;
if ((target->debug_reason != DBG_REASON_DBGRQ)
|
|
From: oharboe at B. <oh...@ma...> - 2009-02-17 12:54:46
|
Author: oharboe
Date: 2009-02-17 12:54:30 +0100 (Tue, 17 Feb 2009)
New Revision: 1374
Modified:
trunk/src/helper/startup.tcl
trunk/src/server/httpd/httpd.tcl
zy1000/trunk/build/include/rom.h
zy1000/trunk/build/menu/zy1000menu.xml
zy1000/trunk/build/tcl/browsemem.tcl
zy1000/trunk/build/tcl/downloadmem.tcl
zy1000/trunk/build/tcl/editconfigs.tcl
zy1000/trunk/build/tcl/erase.tcl
zy1000/trunk/build/tcl/flash.tcl
zy1000/trunk/build/tcl/flashinfo.tcl
zy1000/trunk/build/tcl/index.tcl
zy1000/trunk/build/tcl/openocd.tcl
zy1000/trunk/build/tcl/production.tcl
zy1000/trunk/build/tcl/run.tcl
Log:
zy1000 1.49 snapshot
Modified: trunk/src/helper/startup.tcl
===================================================================
--- trunk/src/helper/startup.tcl 2009-02-17 09:28:39 UTC (rev 1373)
+++ trunk/src/helper/startup.tcl 2009-02-17 11:54:30 UTC (rev 1374)
@@ -303,3 +303,11 @@
proc srst_asserted {} {
puts "Sensed nSRST asserted."
}
+
+# catch any exceptions, capture output and return output
+proc capture_catch {a} {
+ catch {
+ capture {uplevel $a}
+ } result
+ return $result
+}
Modified: trunk/src/server/httpd/httpd.tcl
===================================================================
--- trunk/src/server/httpd/httpd.tcl 2009-02-17 09:28:39 UTC (rev 1373)
+++ trunk/src/server/httpd/httpd.tcl 2009-02-17 11:54:30 UTC (rev 1374)
@@ -99,14 +99,6 @@
return [string map {\n <br/> { } { } \t { } > > < < / /} $a]
}
-# catch any exceptions, capture output and return it
-proc capture_catch {a} {
- catch {
- capture {uplevel $a}
- } result
- return $result
-}
-
proc first_flash_base {} {
set t [lindex 0 [ocd_flash_banks]]
return $t(base)
Modified: zy1000/trunk/build/include/rom.h
===================================================================
--- zy1000/trunk/build/include/rom.h 2009-02-17 09:28:39 UTC (rev 1373)
+++ zy1000/trunk/build/include/rom.h 2009-02-17 11:54:30 UTC (rev 1374)
@@ -2,724 +2,724 @@
static CYGBLD_ATTRIB_ALIGN(4) const unsigned char filedata[] = {
0x2e, 0x6d, 0x6f, 0x52, 0xb3, 0x00, 0x00, 0x00,
- 0x00, 0xea, 0x07, 0x00, 0x04, 0x03, 0x02, 0x01,
+ 0xa0, 0xea, 0x07, 0x00, 0x04, 0x03, 0x02, 0x01,
0x52, 0x4f, 0x4d, 0x46, 0x53, 0x20, 0x76, 0x31,
0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x6f, 0x01, 0x0a, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x05, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x80, 0x16, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x80, 0x16, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x31, 0x00, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x20, 0x31, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x40, 0x02, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x1b, 0x00, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x1b, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0x90, 0x37, 0x00, 0x00,
- 0xa8, 0x7a, 0x9a, 0x49, 0x00, 0xc1, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa8, 0x37, 0x00, 0x00,
+ 0xf4, 0xa2, 0x9a, 0x49, 0x00, 0xc1, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0x8a, 0x2b, 0x00, 0x00,
- 0xa8, 0x7a, 0x9a, 0x49, 0xa0, 0xf8, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x96, 0x2b, 0x00, 0x00,
+ 0xf4, 0xa2, 0x9a, 0x49, 0xc0, 0xf8, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x1e, 0x00, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x1e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0xae, 0x37, 0x00, 0x00,
- 0xa8, 0x7a, 0x9a, 0x49, 0x40, 0x24, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xb4, 0x37, 0x00, 0x00,
+ 0xf4, 0xa2, 0x9a, 0x49, 0x60, 0x24, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x9d, 0x2f, 0x00, 0x00,
- 0xa9, 0x7a, 0x9a, 0x49, 0x00, 0x5c, 0x01, 0x00,
+ 0xf4, 0xa2, 0x9a, 0x49, 0x20, 0x5c, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0xf3, 0x2d, 0x00, 0x00,
- 0xa9, 0x7a, 0x9a, 0x49, 0xa0, 0x8b, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xff, 0x2d, 0x00, 0x00,
+ 0xf4, 0xa2, 0x9a, 0x49, 0xc0, 0x8b, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x9e, 0x00, 0x00, 0x00,
- 0xa9, 0x7a, 0x9a, 0x49, 0xa0, 0xb9, 0x01, 0x00,
+ 0xf5, 0xa2, 0x9a, 0x49, 0xc0, 0xb9, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0x78, 0x38, 0x00, 0x00,
- 0xa9, 0x7a, 0x9a, 0x49, 0x40, 0xba, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x90, 0x38, 0x00, 0x00,
+ 0xf5, 0xa2, 0x9a, 0x49, 0x60, 0xba, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0x06, 0x2e, 0x00, 0x00,
- 0xaa, 0x7a, 0x9a, 0x49, 0xc0, 0xf2, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x18, 0x2e, 0x00, 0x00,
+ 0xf5, 0xa2, 0x9a, 0x49, 0x00, 0xf3, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x8b, 0x65, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x20, 0x02, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x20, 0x21, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x3e,
0x08, 0x00, 0x6f, 0x01, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x92, 0x02, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0xe7, 0x07, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0xe8, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf3, 0x2e, 0x00, 0x00,
- 0xaa, 0x7a, 0x9a, 0x49, 0x80, 0x86, 0x02, 0x00,
+ 0xf6, 0xa2, 0x9a, 0x49, 0xc0, 0x86, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0x97, 0x39, 0x00, 0x00,
- 0xaa, 0x7a, 0x9a, 0x49, 0x80, 0xb5, 0x02, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xbb, 0x39, 0x00, 0x00,
+ 0xf6, 0xa2, 0x9a, 0x49, 0xc0, 0xb5, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x80, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x1e, 0x00, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x80, 0x1e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x59, 0x26, 0x00, 0x00,
- 0xab, 0x7a, 0x9a, 0x49, 0x20, 0xef, 0x02, 0x00,
+ 0xf6, 0xa2, 0x9a, 0x49, 0x80, 0xef, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x22, 0x03, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x15, 0x03, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xe0, 0x15, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x6a, 0x08, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x18, 0x03, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x20, 0x19, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x39, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xc0, 0x02, 0x00, 0x00,
- 0xa8, 0x7a, 0x9a, 0x49, 0x00, 0x22, 0x00, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0x22, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf2, 0x08, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x40, 0x21, 0x03, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xa0, 0x21, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0xdf, 0x2a, 0x00, 0x00,
- 0xb0, 0x7a, 0x9a, 0x49, 0x40, 0x2a, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xdd, 0x2a, 0x00, 0x00,
+ 0xfb, 0xa2, 0x9a, 0x49, 0xa0, 0x2a, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x19, 0x30, 0x00, 0x00,
- 0xb0, 0x7a, 0x9a, 0x49, 0x20, 0x55, 0x03, 0x00,
+ 0xfb, 0xa2, 0x9a, 0x49, 0x80, 0x55, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0xcb, 0x32, 0x00, 0x00,
- 0xb0, 0x7a, 0x9a, 0x49, 0x40, 0x85, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xdb, 0x32, 0x00, 0x00,
+ 0xfb, 0xa2, 0x9a, 0x49, 0xa0, 0x85, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x0d, 0x29, 0x00, 0x00,
- 0xb1, 0x7a, 0x9a, 0x49, 0x20, 0xb8, 0x03, 0x00,
+ 0xfc, 0xa2, 0x9a, 0x49, 0x80, 0xb8, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xeb, 0x03, 0x01, 0x02, 0xd7, 0x2d, 0x00, 0x00,
- 0xb1, 0x7a, 0x9a, 0x49, 0x40, 0xe1, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x07, 0x2e, 0x00, 0x00,
+ 0xfc, 0xa2, 0x9a, 0x49, 0xa0, 0xe1, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x26, 0x01, 0x00, 0x00,
- 0xb1, 0x7a, 0x9a, 0x49, 0x20, 0x0f, 0x04, 0x00,
+ 0xfc, 0xa2, 0x9a, 0x49, 0xc0, 0x0f, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x3f, 0x0b, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x10, 0x04, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0x11, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x91, 0x30, 0x00, 0x00,
- 0xb1, 0x7a, 0x9a, 0x49, 0xa0, 0x1b, 0x04, 0x00,
+ 0xfd, 0xa2, 0x9a, 0x49, 0x40, 0x1c, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x41, 0x07, 0x00, 0x00,
- 0xb2, 0x7a, 0x9a, 0x49, 0x40, 0x4c, 0x04, 0x00,
+ 0xfd, 0xa2, 0x9a, 0x49, 0xe0, 0x4c, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x80, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x24, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0x24, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x22, 0x48, 0x00, 0x00,
- 0xb2, 0x7a, 0x9a, 0x49, 0xa0, 0x53, 0x04, 0x00,
+ 0xfd, 0xa2, 0x9a, 0x49, 0x40, 0x54, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x32, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x04, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x2b, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x2b, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xca, 0x2e, 0x00, 0x00,
- 0xb2, 0x7a, 0x9a, 0x49, 0xe0, 0x9b, 0x04, 0x00,
+ 0xfd, 0xa2, 0x9a, 0x49, 0x80, 0x9c, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x34, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x2c, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x2c, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xab, 0x30, 0x00, 0x00,
- 0xb3, 0x7a, 0x9a, 0x49, 0xc0, 0xca, 0x04, 0x00,
+ 0xfd, 0xa2, 0x9a, 0x49, 0x60, 0xcb, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x70, 0x01, 0x00, 0x00,
- 0xb3, 0x7a, 0x9a, 0x49, 0x80, 0xfb, 0x04, 0x00,
+ 0xfe, 0xa2, 0x9a, 0x49, 0x20, 0xfc, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x37, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x2c, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xa0, 0x2c, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xb3, 0x35, 0x00, 0x00,
- 0xb3, 0x7a, 0x9a, 0x49, 0x00, 0xfd, 0x04, 0x00,
+ 0xfe, 0xa2, 0x9a, 0x49, 0xa0, 0xfd, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x13, 0x06, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x32, 0x05, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x60, 0x33, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x65, 0x03, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x38, 0x05, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x80, 0x39, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xce, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x3c, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x00, 0x3d, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x51, 0x08, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x3d, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x3d, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x62, 0x09, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x45, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x40, 0x46, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x14, 0x04, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x4f, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x4f, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x53, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x53, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xbe, 0x07, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x53, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x40, 0x54, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x11, 0x0a, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x5b, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x00, 0x5c, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x23, 0x01, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x65, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x66, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x64, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x66, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x60, 0x67, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xc4, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x67, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x67, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x89, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x68, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x68, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x69, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x68, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x60, 0x69, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x69, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x69, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x4b, 0x0c, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x00, 0x6a, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xa0, 0x6a, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5c, 0x03, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x76, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x00, 0x77, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x79, 0x05, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x60, 0x7a, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x85, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x09, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x40, 0x0a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x0a, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x0a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x87, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x0a, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x0b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0b, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x0b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xfe, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0c, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x0c, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xb4, 0x01, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0d, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x0d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x3a, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x0e, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x80, 0x0f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x11, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0f, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x0f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xee, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x0f, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x0f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x10, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x10, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x10, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x11, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x00, 0x11, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xa0, 0x11, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa5, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x11, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x12, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x12, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x12, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x86, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x12, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x60, 0x13, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x75, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x13, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x00, 0x14, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x99, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x13, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x80, 0x14, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x8f, 0x01, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x14, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x15, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xad, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x16, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x16, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
- 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x16, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x80, 0x17, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x74, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x17, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x00, 0x18, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x17, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x80, 0x18, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x18, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x18, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x6f, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x18, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x40, 0x19, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x19, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xc0, 0x19, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x8d, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x19, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x1a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x35, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x1a, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xc0, 0x1a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x1b, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0x1c, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x6c, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xa0, 0x1c, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x40, 0x1d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x36, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x1e, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xc0, 0x1e, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5d, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x1f, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0x20, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x4a, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x20, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x60, 0x21, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xc6, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x22, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xc0, 0x22, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xc0, 0x03, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x00, 0x24, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xa0, 0x24, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x0a, 0x0c, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x27, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x60, 0x28, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5f, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x33, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x80, 0x34, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x19, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x40, 0x35, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xe0, 0x35, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x09, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x36, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x00, 0x37, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x37, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x20, 0x38, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x31, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x38, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x80, 0x39, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x3a, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xc0, 0x3a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf1, 0x08, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x3a, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x80, 0x3b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x86, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x43, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x80, 0x44, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x65, 0x01, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x45, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0x20, 0x46, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x84, 0x0f, 0x00, 0x00,
- 0xa7, 0x7a, 0x9a, 0x49, 0x00, 0x47, 0x06, 0x00,
+ 0xf3, 0xa2, 0x9a, 0x49, 0xa0, 0x47, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x8a, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x56, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x40, 0x57, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x27, 0x07, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0x5d, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0xe0, 0x5d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x47, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x64, 0x06, 0x00,
+ 0x28, 0xa3, 0x9a, 0x49, 0x20, 0x65, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x37, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x69, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x80, 0x6a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xfa, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x70, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0x70, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x9f, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x74, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0x74, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf2, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x77, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x60, 0x78, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x01, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x7d, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x60, 0x7e, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x77, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x80, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x80, 0x81, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x1d, 0x07, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x85, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0x86, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x17, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x8c, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x20, 0x8d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe2, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x8f, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0x90, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x19, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x95, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0x96, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xc2, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x9a, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x60, 0x9b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xbd, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x9f, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0xa0, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf6, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xa4, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xa5, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa2, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xa8, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xa9, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xae, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0xae, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x31, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xae, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xaf, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x4c, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xae, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0xaf, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x25, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0xb3, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xa0, 0xb3, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x14, 0x01, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0xb6, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xe0, 0xb6, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x3c, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xb7, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xb8, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x55, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xbd, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0xbe, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x88, 0x09, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0xc2, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xa0, 0xc2, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x15, 0x02, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xcb, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x40, 0xcc, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x9b, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0xcd, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x60, 0xce, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xd3, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xd4, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x98, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0xd7, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x20, 0xd8, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe3, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xdd, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0xdd, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x3f, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xe1, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0xe1, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x4e, 0x02, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xe5, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xe6, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x97, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0xe7, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x60, 0xe8, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x67, 0x02, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xed, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x00, 0xee, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0xef, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x80, 0xf0, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xf1, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0xf1, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x84, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0xf4, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xe0, 0xf4, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x2d, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0xf9, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x80, 0xfa, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x49, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xff, 0x06, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0xff, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xfd, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x04, 0x07, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x20, 0x05, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5e, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x09, 0x07, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x20, 0x0a, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x9e, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x0e, 0x07, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x80, 0x0f, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x84, 0x07, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x15, 0x07, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0x20, 0x16, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf0, 0x04, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x1d, 0x07, 0x00,
+ 0x29, 0xa3, 0x9a, 0x49, 0xc0, 0x1d, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xcc, 0x01, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x22, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0x22, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5a, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x24, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xa0, 0x24, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x24, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x00, 0x25, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xfa, 0x09, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x33, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x34, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf5, 0x0b, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x3d, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x3e, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x7f, 0x06, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x49, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x4a, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x32, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x04, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x80, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x2d, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x00, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x33, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x80, 0x2d, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x80, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x88, 0x0e, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x20, 0x50, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0x50, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe0, 0x06, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0x5e, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x60, 0x5f, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x5e, 0x02, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x65, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x66, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x37, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x2d, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x38, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0x2e, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x2e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x39, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x2e, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xa0, 0x2e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x18, 0x0c, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x68, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xa0, 0x68, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x74, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0x74, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa9, 0x10, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x83, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x00, 0x84, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x66, 0x01, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x94, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0x94, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xaf, 0x05, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x95, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x96, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xcf, 0x0e, 0x00, 0x00,
- 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x9b, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x00, 0x9c, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x36, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xa0, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x2f, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xa0, 0x2f, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xec, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xaa, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xaa, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf1, 0x1d, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xab, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xab, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xf6, 0x11, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xc9, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xc9, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x30, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0xe0, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x30, 0x00, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x40, 0x30, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdb, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xdb, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x77, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdb, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x60, 0xdc, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdc, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xdc, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdc, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x60, 0xdd, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdd, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xe0, 0xdd, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x58, 0x03, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdd, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0x60, 0xde, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
0xeb, 0x03, 0x01, 0x02, 0x38, 0x06, 0x00, 0x00,
- 0x5d, 0x7b, 0x9a, 0x49, 0x20, 0xe1, 0x07, 0x00,
+ 0x2a, 0xa3, 0x9a, 0x49, 0xc0, 0xe1, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x38, 0x3e,
0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -6962,149 +6962,171 @@
0x09, 0x09, 0x09, 0x09, 0x61, 0x70, 0x70, 0x65,
0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f,
0x6c, 0x65, 0x20, 0x5b, 0x63, 0x61, 0x70, 0x74,
- 0x75, 0x72, 0x65, 0x20, 0x22, 0x24, 0x6d, 0x6f,
+ 0x75, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x63,
+ 0x68, 0x20, 0x22, 0x24, 0x6d, 0x6f, 0x64, 0x69,
+ 0x66, 0x79, 0x5f, 0x63, 0x6d, 0x64, 0x20, 0x24,
+ 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61, 0x64, 0x64,
+ 0x72, 0x65, 0x73, 0x73, 0x20, 0x24, 0x66, 0x6f,
+ 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x22, 0x5d, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09,
+ 0x7d, 0x20, 0x20, 0x0d, 0x0a, 0x09, 0x09, 0x09,
+ 0x09, 0x69, 0x66, 0x20, 0x7b, 0x5b, 0x73, 0x74,
+ 0x72, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d,
+ 0x70, 0x61, 0x72, 0x65, 0x20, 0x24, 0x66, 0x6f,
+ 0x72, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x22, 0x46, 0x69, 0x6c, 0x6c, 0x22,
+ 0x5d, 0x3d, 0x3d, 0x30, 0x7d, 0x20, 0x7b, 0x0d,
+ 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x70,
+ 0x70, 0x65, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e,
+ 0x73, 0x6f, 0x6c, 0x65, 0x20, 0x5b, 0x63, 0x61,
+ 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x61,
+ 0x74, 0x63, 0x68, 0x20, 0x22, 0x24, 0x6d, 0x6f,
0x64, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6d, 0x64,
0x20, 0x24, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x24,
0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x22, 0x5d, 0x0d, 0x0a, 0x09, 0x09,
- 0x09, 0x09, 0x7d, 0x20, 0x20, 0x0d, 0x0a, 0x09,
- 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x7b, 0x5b,
- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x63,
- 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x20, 0x24,
- 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x46, 0x69, 0x6c,
- 0x6c, 0x22, 0x5d, 0x3d, 0x3d, 0x30, 0x7d, 0x20,
- 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09,
- 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x63,
- 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x20, 0x5b,
- 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x20,
- 0x22, 0x24, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79,
- 0x5f, 0x63, 0x6d, 0x64, 0x20, 0x24, 0x66, 0x6f,
- 0x72, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x20, 0x24, 0x66, 0x6f, 0x72, 0x6d,
- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x24,
- 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6c, 0x65, 0x6e,
- 0x67, 0x74, 0x68, 0x22, 0x5d, 0x0d, 0x0a, 0x09,
- 0x09, 0x09, 0x09, 0x7d, 0x20, 0x20, 0x0d, 0x0a,
- 0x09, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09,
- 0x09, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x0d, 0x0a,
- 0x09, 0x09, 0x09, 0x0d, 0x0a, 0x61, 0x70, 0x70,
- 0x65, 0x6e, 0x64, 0x20, 0x62, 0x75, 0x66, 0x66,
- 0x65, 0x72, 0x20, 0x7b, 0x0d, 0x0a, 0x09, 0x09,
- 0x09, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x3c, 0x66,
- 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x3d, 0x22, 0x62, 0x72, 0x6f, 0x77,
- 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x2e, 0x74, 0x63,
- 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f,
- 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x74, 0x22,
- 0x3e, 0x20, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09,
- 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x0d,
- 0x0a, 0x09, 0x09, 0x09, 0x09, 0x3c, 0x74, 0x72,
- 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d,
- 0x74, 0x65, 0x78, 0x74, 0x22, 0x3e, 0x41, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x3c, 0x2f, 0x74,
- 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x69,
- 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70,
- 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22,
- 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66,
- 0x6f, 0x72, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72,
- 0x65, 0x73, 0x73, 0x22, 0x20, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x3d, 0x22, 0x7d, 0x0d, 0x0a, 0x61,
- 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x62, 0x75,
- 0x66, 0x66, 0x65, 0x72, 0x20, 0x24, 0x66, 0x6f,
- 0x72, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x0d, 0x0a, 0x61, 0x70, 0x70, 0x65,
- 0x6e, 0x64, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65,
- 0x72, 0x20, 0x7b, 0x22, 0x3e, 0x3c, 0x2f, 0x74,
- 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0d,
- 0x0a, 0x09, 0x09, 0x09, 0x09, 0x3c, 0x74, 0x72,
- 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d,
- 0x74, 0x65, 0x78, 0x74, 0x22, 0x3e, 0x4c, 0x65,
- 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x2f, 0x74, 0x64,
- 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x69, 0x6e,
- 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65,
- 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20,
+ 0x75, 0x65, 0x20, 0x24, 0x66, 0x6f, 0x72, 0x6d,
+ 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22,
+ 0x5d, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x7d,
+ 0x20, 0x20, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x7d,
+ 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x0d, 0x0a, 0x09,
+ 0x09, 0x09, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x0d,
+ 0x0a, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20,
+ 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x7b,
+ 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x0d, 0x0a, 0x09,
+ 0x09, 0x09, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22,
+ 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x6d, 0x65,
+ 0x6d, 0x2e, 0x74, 0x63, 0x6c, 0x22, 0x20, 0x6d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70,
+ 0x6f, 0x73, 0x74, 0x22, 0x3e, 0x20, 0x0d, 0x0a,
+ 0x09, 0x09, 0x09, 0x09, 0x3c, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3e, 0x0d, 0x0a, 0x09, 0x09, 0x09,
+ 0x09, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, 0x78, 0x74,
+ 0x22, 0x3e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74,
+ 0x64, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74,
+ 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74,
+ 0x65, 0x78, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x5f,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22,
+ 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22,
+ 0x7d, 0x0d, 0x0a, 0x61, 0x70, 0x70, 0x65, 0x6e,
+ 0x64, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72,
+ 0x20, 0x24, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x61,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x0d, 0x0a,
+ 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x62,
+ 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x7b, 0x22,
+ 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f,
+ 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x09, 0x09, 0x09,
+ 0x09, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, 0x78, 0x74,
+ 0x22, 0x3e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,
+ 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64,
+ 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20,
+ 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65,
+ 0x78, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6c,
+ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x20, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x7d, 0x0d,
+ 0x0a, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20,
+ 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x22,
+ 0x30, 0x78, 0x5b, 0x74, 0x6f, 0x68, 0x65, 0x78,
+ 0x20, 0x24, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6c,
+ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5d, 0x22, 0x0d,
+ 0x0a, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20,
+ 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x7b,
+ 0x22, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x09, 0x09,
+ 0x09, 0x09, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74,
+ 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, 0x78,
+ 0x74, 0x22, 0x3e, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64,
+ 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20,
+ 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65,
+ 0x78, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x7d, 0x0d, 0x0a,
+ 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x62,
+ 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x24, 0x66,
+ 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x0d, 0x0a, 0x61, 0x70, 0x70, 0x65, 0x6e,
+ 0x64, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72,
+ 0x20, 0x7b, 0x22, 0x3e, 0x3c, 0x2f, 0x74, 0x64,
+ 0x3e, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09,
+ 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x6d,
+ 0x61, 0x6c, 0x6c, 0x22, 0x3e, 0x26, 0x6e, 0x62,
+ 0x73, 0x70, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c,
+ 0x74, 0x64, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75,
+ 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22,
+ 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20,
0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x6f,
- 0x72, 0x6d, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,
- 0x68, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3d, 0x22, 0x7d, 0x0d, 0x0a, 0x61, 0x70, 0x70,
- 0x65, 0x6e, 0x64, 0x20, 0x62, 0x75, 0x66, 0x66,
- 0x65, 0x72, 0x20, 0x22, 0x30, 0x78, 0x5b, 0x74,
- 0x6f, 0x68, 0x65, 0x78, 0x20, 0x24, 0x66, 0x6f,
- 0x72, 0x6d, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,
- 0x68, 0x5d, 0x22, 0x0d, 0x0a, 0x61, 0x70, 0x70,
- 0x65, 0x6e, 0x64, 0x20, 0x62, 0x75, 0x66, 0x66,
- 0x65, 0x72, 0x20, 0x7b, 0x22, 0x3e, 0x3c, 0x2f,
+ 0x72, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3d, 0x22, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
+ 0x22, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0d,
+ 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3c, 0x74,
+ 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x73, 0x6d, 0x61, 0x6c,
+ 0x6c, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70,
+ 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64,
+ 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20,
+ 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75,
+ 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, ...
[truncated message content] |
|
From: oharboe at B. <oh...@ma...> - 2009-02-17 10:28:46
|
Author: oharboe
Date: 2009-02-17 10:28:39 +0100 (Tue, 17 Feb 2009)
New Revision: 1373
Modified:
trunk/src/jtag/zy1000.c
zy1000/trunk/build/include/jtag_minidriver.h
zy1000/trunk/build/include/rom.h
zy1000/trunk/snapshots/athttpd.zip
zy1000/trunk/snapshots/discover.zip
zy1000/trunk/snapshots/jimtcl.zip
Log:
zy1000 1.49 snapshot
Modified: trunk/src/jtag/zy1000.c
===================================================================
--- trunk/src/jtag/zy1000.c 2009-02-13 09:56:51 UTC (rev 1372)
+++ trunk/src/jtag/zy1000.c 2009-02-17 09:28:39 UTC (rev 1373)
@@ -32,7 +32,7 @@
#include <stdlib.h>
-#define ZYLIN_VERSION "1.48"
+#define ZYLIN_VERSION "1.49"
#define ZYLIN_DATE __DATE__
#define ZYLIN_TIME __TIME__
#define ZYLIN_OPENOCD "$Revision: 1241 $"
Modified: zy1000/trunk/build/include/jtag_minidriver.h
===================================================================
--- zy1000/trunk/build/include/jtag_minidriver.h 2009-02-13 09:56:51 UTC (rev 1372)
+++ zy1000/trunk/build/include/jtag_minidriver.h 2009-02-17 09:28:39 UTC (rev 1373)
@@ -35,7 +35,7 @@
#endif
// FIFO empty?
-static __inline__ void waitIdle()
+static __inline__ void waitIdle(void)
{
cyg_uint32 empty;
do
@@ -44,12 +44,12 @@
} while ((empty & 0x100)==0);
}
-static __inline__ void waitQueue()
+static __inline__ void waitQueue(void)
{
// waitIdle();
}
-static void sampleShiftRegister()
+static void sampleShiftRegister(void)
{
#if 0
cyg_uint32 dummy;
Modified: zy1000/trunk/build/include/rom.h
===================================================================
--- zy1000/trunk/build/include/rom.h 2009-02-13 09:56:51 UTC (rev 1372)
+++ zy1000/trunk/build/include/rom.h 2009-02-17 09:28:39 UTC (rev 1373)
@@ -1,690 +1,726 @@
/* This is a generated file. Do not edit. */
static CYGBLD_ATTRIB_ALIGN(4) const unsigned char filedata[] = {
- 0x2e, 0x6d, 0x6f, 0x52, 0xaa, 0x00, 0x00, 0x00,
- 0xa0, 0xdd, 0x07, 0x00, 0x04, 0x03, 0x02, 0x01,
+ 0x2e, 0x6d, 0x6f, 0x52, 0xb3, 0x00, 0x00, 0x00,
+ 0x00, 0xea, 0x07, 0x00, 0x04, 0x03, 0x02, 0x01,
0x52, 0x4f, 0x4d, 0x46, 0x53, 0x20, 0x76, 0x31,
0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x6f, 0x01, 0x09, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x40, 0x05, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x60, 0x15, 0x00, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x0a, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x05, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x80, 0x16, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x80, 0x2e, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x31, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x01, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0xa0, 0x1a, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x40, 0x02, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x1b, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x90, 0x37, 0x00, 0x00,
- 0xf8, 0x11, 0x49, 0x49, 0x60, 0xbe, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x90, 0x37, 0x00, 0x00,
+ 0xa8, 0x7a, 0x9a, 0x49, 0x00, 0xc1, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x8a, 0x2b, 0x00, 0x00,
- 0xf8, 0x11, 0x49, 0x49, 0x00, 0xf6, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x8a, 0x2b, 0x00, 0x00,
+ 0xa8, 0x7a, 0x9a, 0x49, 0xa0, 0xf8, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x00, 0x1c, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x1e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xae, 0x37, 0x00, 0x00,
- 0xf8, 0x11, 0x49, 0x49, 0xa0, 0x21, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xae, 0x37, 0x00, 0x00,
+ 0xa8, 0x7a, 0x9a, 0x49, 0x40, 0x24, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x9d, 0x2f, 0x00, 0x00,
- 0xf8, 0x11, 0x49, 0x49, 0x60, 0x59, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x9d, 0x2f, 0x00, 0x00,
+ 0xa9, 0x7a, 0x9a, 0x49, 0x00, 0x5c, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf3, 0x2d, 0x00, 0x00,
- 0xf9, 0x11, 0x49, 0x49, 0x00, 0x89, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf3, 0x2d, 0x00, 0x00,
+ 0xa9, 0x7a, 0x9a, 0x49, 0xa0, 0x8b, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x9e, 0x00, 0x00, 0x00,
- 0xf9, 0x11, 0x49, 0x49, 0x00, 0xb7, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x9e, 0x00, 0x00, 0x00,
+ 0xa9, 0x7a, 0x9a, 0x49, 0xa0, 0xb9, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x78, 0x38, 0x00, 0x00,
- 0xf9, 0x11, 0x49, 0x49, 0xa0, 0xb7, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x78, 0x38, 0x00, 0x00,
+ 0xa9, 0x7a, 0x9a, 0x49, 0x40, 0xba, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x06, 0x2e, 0x00, 0x00,
- 0xf9, 0x11, 0x49, 0x49, 0x20, 0xf0, 0x01, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x06, 0x2e, 0x00, 0x00,
+ 0xaa, 0x7a, 0x9a, 0x49, 0xc0, 0xf2, 0x01, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x8b, 0x65, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x40, 0x1e, 0x02, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x8b, 0x65, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x20, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x3e,
0x08, 0x00, 0x6f, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x92, 0x02, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x00, 0xdb, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x92, 0x02, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0xe7, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf3, 0x2e, 0x00, 0x00,
- 0xfa, 0x11, 0x49, 0x49, 0xe0, 0x83, 0x02, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf3, 0x2e, 0x00, 0x00,
+ 0xaa, 0x7a, 0x9a, 0x49, 0x80, 0x86, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x97, 0x39, 0x00, 0x00,
- 0xfa, 0x11, 0x49, 0x49, 0xe0, 0xb2, 0x02, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x97, 0x39, 0x00, 0x00,
+ 0xaa, 0x7a, 0x9a, 0x49, 0x80, 0xb5, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x00, 0x03, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x60, 0x1c, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x80, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x1e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x59, 0x26, 0x00, 0x00,
- 0xfa, 0x11, 0x49, 0x49, 0x80, 0xec, 0x02, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x59, 0x26, 0x00, 0x00,
+ 0xab, 0x7a, 0x9a, 0x49, 0x20, 0xef, 0x02, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x22, 0x03, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xe0, 0x12, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x22, 0x03, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x15, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x6a, 0x08, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x16, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x6a, 0x08, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x18, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x31, 0x39, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xc0, 0x02, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x60, 0x1f, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xc0, 0x02, 0x00, 0x00,
+ 0xa8, 0x7a, 0x9a, 0x49, 0x00, 0x22, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf2, 0x08, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xa0, 0x1e, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf2, 0x08, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x40, 0x21, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xdf, 0x2a, 0x00, 0x00,
- 0x00, 0x12, 0x49, 0x49, 0xa0, 0x27, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xdf, 0x2a, 0x00, 0x00,
+ 0xb0, 0x7a, 0x9a, 0x49, 0x40, 0x2a, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x19, 0x30, 0x00, 0x00,
- 0x00, 0x12, 0x49, 0x49, 0x80, 0x52, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x19, 0x30, 0x00, 0x00,
+ 0xb0, 0x7a, 0x9a, 0x49, 0x20, 0x55, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xcb, 0x32, 0x00, 0x00,
- 0x00, 0x12, 0x49, 0x49, 0xa0, 0x82, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xcb, 0x32, 0x00, 0x00,
+ 0xb0, 0x7a, 0x9a, 0x49, 0x40, 0x85, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x0d, 0x29, 0x00, 0x00,
- 0x01, 0x12, 0x49, 0x49, 0x80, 0xb5, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x0d, 0x29, 0x00, 0x00,
+ 0xb1, 0x7a, 0x9a, 0x49, 0x20, 0xb8, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xd7, 0x2d, 0x00, 0x00,
- 0x01, 0x12, 0x49, 0x49, 0xa0, 0xde, 0x03, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xd7, 0x2d, 0x00, 0x00,
+ 0xb1, 0x7a, 0x9a, 0x49, 0x40, 0xe1, 0x03, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x26, 0x01, 0x00, 0x00,
- 0x01, 0x12, 0x49, 0x49, 0x80, 0x0c, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x26, 0x01, 0x00, 0x00,
+ 0xb1, 0x7a, 0x9a, 0x49, 0x20, 0x0f, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x3f, 0x0b, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xc0, 0x0d, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x3f, 0x0b, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x10, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x91, 0x30, 0x00, 0x00,
- 0x02, 0x12, 0x49, 0x49, 0x00, 0x19, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x91, 0x30, 0x00, 0x00,
+ 0xb1, 0x7a, 0x9a, 0x49, 0xa0, 0x1b, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x32, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x41, 0x07, 0x00, 0x00,
- 0x02, 0x12, 0x49, 0x49, 0xa0, 0x49, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x41, 0x07, 0x00, 0x00,
+ 0xb2, 0x7a, 0x9a, 0x49, 0x40, 0x4c, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe0, 0x06, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x22, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x80, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x24, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x22, 0x48, 0x00, 0x00,
- 0x02, 0x12, 0x49, 0x49, 0x00, 0x51, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x22, 0x48, 0x00, 0x00,
+ 0xb2, 0x7a, 0x9a, 0x49, 0xa0, 0x53, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x32, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x04, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x29, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x2b, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xca, 0x2e, 0x00, 0x00,
- 0x02, 0x12, 0x49, 0x49, 0x40, 0x99, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xca, 0x2e, 0x00, 0x00,
+ 0xb2, 0x7a, 0x9a, 0x49, 0xe0, 0x9b, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x34, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xab, 0x30, 0x00, 0x00,
- 0x02, 0x12, 0x49, 0x49, 0x20, 0xc8, 0x04, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x2c, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x70, 0x01, 0x00, 0x00,
- 0x03, 0x12, 0x49, 0x49, 0xe0, 0xf8, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xab, 0x30, 0x00, 0x00,
+ 0xb3, 0x7a, 0x9a, 0x49, 0xc0, 0xca, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x36, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x70, 0x01, 0x00, 0x00,
+ 0xb3, 0x7a, 0x9a, 0x49, 0x80, 0xfb, 0x04, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x37, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x2a, 0x00, 0x00,
- 0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x37, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xb3, 0x35, 0x00, 0x00,
- 0x03, 0x12, 0x49, 0x49, 0x60, 0xfa, 0x04, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x2c, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x13, 0x06, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x30, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xb3, 0x35, 0x00, 0x00,
+ 0xb3, 0x7a, 0x9a, 0x49, 0x00, 0xfd, 0x04, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x33, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x65, 0x03, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x40, 0x36, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x13, 0x06, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x32, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xce, 0x00, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0xc0, 0x39, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x65, 0x03, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x38, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x51, 0x08, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0xa0, 0x3a, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xce, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x3c, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x62, 0x09, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0x00, 0x43, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x51, 0x08, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x3d, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x14, 0x04, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0x80, 0x4c, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x62, 0x09, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x45, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0xa0, 0x50, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x14, 0x04, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x4f, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x23, 0x01, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0x00, 0x51, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x53, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x64, 0x00, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0x40, 0x52, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xbe, 0x07, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x53, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x69, 0x00, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0xc0, 0x52, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x11, 0x0a, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x5b, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
- 0x31, 0x12, 0x49, 0x49, 0x40, 0x53, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x23, 0x01, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x65, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x34, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x00, 0x54, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x64, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x66, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x85, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xe3, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xc4, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x67, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x80, 0xe4, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x89, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x68, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xc0, 0xe4, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x69, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x68, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfe, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xc0, 0xe5, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x69, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xb4, 0x01, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xc0, 0xe6, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x4b, 0x0c, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x00, 0x6a, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x3a, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x80, 0xe8, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5c, 0x03, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x76, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x11, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xc0, 0xe8, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe0, 0x8f, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x79, 0x05, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xee, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xe8, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x85, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xa0, 0x09, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xe9, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x0a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x35, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x20, 0xea, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x87, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x0a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xa0, 0xea, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa5, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x20, 0xeb, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xfe, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0c, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xeb, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xb4, 0x01, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x86, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x60, 0xec, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x3a, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x0e, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x75, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x00, 0xed, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x11, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x0f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x99, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x80, 0xed, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xee, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x0f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xad, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x20, 0xee, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x10, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xee, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x10, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x60, 0xef, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x7b, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x00, 0x11, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x36, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x6f, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0xef, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa5, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x11, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x60, 0xf0, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x40, 0x12, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x8d, 0x00, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xc0, 0xf0, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x86, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xc0, 0x12, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x35, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x60, 0xf1, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x75, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x60, 0x13, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xa0, 0xf2, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x99, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x13, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x6c, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xe0, 0xf3, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x8f, 0x01, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x80, 0x14, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x36, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x60, 0xf5, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xad, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0x20, 0x16, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x5d, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xa0, 0xf6, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x72, 0x00, 0x00, 0x00,
+ 0x5b, 0x7b, 0x9a, 0x49, 0xe0, 0x16, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x4a, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x00, 0xf8, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x74, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x17, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xc6, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x60, 0xf9, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x17, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x37, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xc0, 0x03, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x40, 0xfb, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x18, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x0a, 0x0c, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x00, 0xff, 0x05, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x6f, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x18, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x5f, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x0b, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x19, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x19, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x80, 0x0c, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x8d, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x19, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x09, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xa0, 0x0d, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x35, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x1a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xc0, 0x0e, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x1b, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x31, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x10, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x6c, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xa0, 0x1c, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x60, 0x11, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x36, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x1e, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf1, 0x08, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x12, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5d, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x1f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x86, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x20, 0x1b, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x4a, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x20, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x38, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x65, 0x01, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0xc0, 0x1c, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xc6, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x22, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x84, 0x0f, 0x00, 0x00,
- 0xf7, 0x11, 0x49, 0x49, 0x40, 0x1e, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xc0, 0x03, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x00, 0x24, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x01, 0x06, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0xe0, 0x2d, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x0a, 0x0c, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xc0, 0x27, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x27, 0x07, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x00, 0x34, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5f, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x33, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x47, 0x05, 0x00, 0x00,
- 0x32, 0x12, 0x49, 0x49, 0x40, 0x3b, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x19, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x40, 0x35, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x37, 0x06, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xa0, 0x40, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x09, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x60, 0x36, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x52, 0x0c, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0x46, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x37, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfa, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0x53, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x31, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x38, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x83, 0x0b, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0x57, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x20, 0x3a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x9f, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0x62, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf1, 0x08, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x3a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x20, 0x39, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf4, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0x66, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x86, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0xe0, 0x43, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf2, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0x6c, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x65, 0x01, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x80, 0x45, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x77, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0x72, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x84, 0x0f, 0x00, 0x00,
+ 0xa7, 0x7a, 0x9a, 0x49, 0x00, 0x47, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfe, 0x06, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x00, 0x77, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x8a, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x56, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x17, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x00, 0x7e, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x27, 0x07, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0x5d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe2, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0x81, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x47, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x64, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x19, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0x87, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x37, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x69, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xc2, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0x8c, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xfa, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x70, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xbd, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0x91, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x9f, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x74, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf6, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0x95, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf2, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x77, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x30, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa2, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0x99, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x01, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x7d, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xa0, 0x9f, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x77, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x80, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x31, 0x00, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0x9f, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x1d, 0x07, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x85, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x4c, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0xa0, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x17, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x8c, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x25, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0xa4, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe2, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x8f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x14, 0x01, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xc0, 0xa7, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x19, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x95, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x3c, 0x06, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0xa8, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xc2, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0x9a, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x05, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0xaf, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xbd, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x9f, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x88, 0x09, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0xb3, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf6, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xa4, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x15, 0x02, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0xbc, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa2, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xa8, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x31, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x9b, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x00, 0xbf, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xae, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xc3, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xa0, 0xc4, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x31, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xae, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0xc9, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x4c, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xae, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x98, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xa0, 0xcd, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x25, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0xb3, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe3, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0xd3, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x14, 0x01, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0xb6, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe3, 0x03, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0xd7, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x3c, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xb7, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x3f, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0xdb, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x55, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xbd, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x4e, 0x02, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0xdf, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x88, 0x09, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0xc2, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x97, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0xe1, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x15, 0x02, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0xcb, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x67, 0x02, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0xe7, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x9b, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0xcd, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x32, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x00, 0xea, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xd3, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x84, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x40, 0xeb, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x98, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0xd7, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x2d, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0xe0, 0xf0, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe3, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xdd, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x48, 0x05, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x20, 0xf6, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x3f, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xe1, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfc, 0x04, 0x00, 0x00,
- 0x33, 0x12, 0x49, 0x49, 0x80, 0xfb, 0x06, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x4e, 0x02, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xe5, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x5d, 0x05, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x80, 0x00, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x97, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xc0, 0xe7, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x9e, 0x06, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xe0, 0x05, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x67, 0x02, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0xed, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x84, 0x07, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x80, 0x0c, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x33, 0x01, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0xef, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf0, 0x04, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x14, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xf1, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xcc, 0x01, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x19, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x84, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0xf4, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x33, 0x39, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x5a, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x1b, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x2d, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0xf9, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x60, 0x1b, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x49, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0xff, 0x06, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xfa, 0x09, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x2a, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xfd, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x04, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x32, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf5, 0x0b, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x34, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5e, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x09, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x7f, 0x06, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x40, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x9e, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x0e, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x34, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x04, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x80, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x60, 0x2a, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x84, 0x07, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x80, 0x15, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x35, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xe0, 0x2a, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf0, 0x04, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x1d, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x88, 0x0e, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x47, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xcc, 0x01, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x22, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe0, 0x06, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xc0, 0x55, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5a, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x24, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x5e, 0x02, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x5c, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x24, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x34, 0x39, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0x2b, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xfa, 0x09, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x33, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x2b, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf5, 0x0b, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x3d, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x31, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x2c, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x7f, 0x06, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x49, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x32, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x18, 0x0c, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x5f, 0x07, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x04, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x80, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x33, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x6b, 0x07, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x80, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa9, 0x10, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x60, 0x7a, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x88, 0x0e, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x20, 0x50, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x66, 0x01, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x20, 0x8b, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe0, 0x06, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0x5e, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x36, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xaf, 0x05, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x8c, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x5e, 0x02, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x65, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x37, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xcf, 0x0e, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x60, 0x92, 0x07, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xe0, 0x2d, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x38, 0x3e,
+ 0x01, 0x00, 0x6f, 0x01, 0x03, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x40, 0x2e, 0x00, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x39, 0x3e,
0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xa0, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x00, 0x2d, 0x00, 0x00,
- 0x3c, 0x20, 0x20, 0x20, 0x31, 0x35, 0x39, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xec, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xa1, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x2e, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x30, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf1, 0x1d, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xa2, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x18, 0x0c, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x00, 0x68, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x31, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xf6, 0x11, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xc0, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x21, 0x0f, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x74, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x32, 0x3e,
- 0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0xe0, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xa0, 0x2d, 0x00, 0x00,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa9, 0x10, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x83, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x33, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xd2, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x66, 0x01, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x20, 0x94, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x34, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x77, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xc0, 0xd2, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xaf, 0x05, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0xa0, 0x95, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x35, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xd3, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xcf, 0x0e, 0x00, 0x00,
+ 0x5c, 0x7b, 0x9a, 0x49, 0x60, 0x9b, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x36, 0x3e,
- 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xc0, 0xd3, 0x07, 0x00,
+ 0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xa0, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xa0, 0x2f, 0x00, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x37, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0x40, 0xd4, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xec, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xaa, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x38, 0x3e,
0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0xed, 0x03, 0x01, 0x02, 0x38, 0x06, 0x00, 0x00,
- 0x34, 0x12, 0x49, 0x49, 0xc0, 0xd4, 0x07, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf1, 0x1d, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xab, 0x07, 0x00,
0x3c, 0x20, 0x20, 0x20, 0x31, 0x36, 0x39, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xf6, 0x11, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xc9, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x30, 0x3e,
+ 0x01, 0x00, 0x6f, 0x01, 0x02, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0xe0, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0x30, 0x00, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x31, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdb, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x32, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x77, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdb, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x33, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdc, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x34, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x78, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdc, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x35, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x79, 0x00, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x40, 0xdd, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x36, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x58, 0x03, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0xc0, 0xdd, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x37, 0x3e,
+ 0x08, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xeb, 0x03, 0x01, 0x02, 0x38, 0x06, 0x00, 0x00,
+ 0x5d, 0x7b, 0x9a, 0x49, 0x20, 0xe1, 0x07, 0x00,
+ 0x3c, 0x20, 0x20, 0x20, 0x31, 0x37, 0x38, 0x3e,
0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -830,26 +866,30 @@
0x2e, 0x74, 0x63, 0x6c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00,
+ 0x74, 0x65, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00,
0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x2e,
0x74, 0x63, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x24, 0x00, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00,
+ 0x25, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00,
0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x74,
0x63, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x25, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00,
+ 0x26, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
0x78, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x26, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
+ 0x27, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00,
0x7a, 0x79, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x74,
0x63, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x27, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00,
+ 0x28, 0x00, 0x00, 0x00, 0x40, 0x05, 0x00, 0x00,
0x7a, 0x79, 0x6c, 0x77, 0x65, 0x62, 0x2e, 0x63,
0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00...
[truncated message content] |
|
From: ntfreak at B. <nt...@ma...> - 2009-02-13 10:56:52
|
Author: ntfreak Date: 2009-02-13 10:56:51 +0100 (Fri, 13 Feb 2009) New Revision: 1372 Modified: trunk/guess-rev.sh trunk/src/Makefile.am Log: - guess-rev.sh now works as expected when build_dir is not the same as src_dir Modified: trunk/guess-rev.sh =================================================================== --- trunk/guess-rev.sh 2009-02-12 15:35:03 UTC (rev 1371) +++ trunk/guess-rev.sh 2009-02-13 09:56:51 UTC (rev 1372) @@ -3,7 +3,6 @@ REV=unknown -which svnversion > /dev/null 2>&1 && REV=`svnversion -n` +which svnversion > /dev/null 2>&1 && REV=`svnversion -n "$1"` echo -n $REV - Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2009-02-12 15:35:03 UTC (rev 1371) +++ trunk/src/Makefile.am 2009-02-13 09:56:51 UTC (rev 1372) @@ -21,7 +21,7 @@ if RELEASE openocd_CPPFLAGS += -DRELSTR=\"Release\" -DPKGBLDREV=\"\" else -openocd_CPPFLAGS += -DRELSTR=\"svn:\" -DPKGBLDREV=\"`$(top_srcdir)/guess-rev.sh`\" +openocd_CPPFLAGS += -DRELSTR=\"svn:\" -DPKGBLDREV=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\" endif # add default CPPFLAGS |
|
From: ntfreak at B. <nt...@ma...> - 2009-02-12 16:35:04
|
Author: ntfreak Date: 2009-02-12 16:35:03 +0100 (Thu, 12 Feb 2009) New Revision: 1371 Modified: trunk/src/flash/flash.c Log: - issue warning when flash image exceeds configured flash size. - see https://lists.berlios.de/pipermail/openocd-development/2009-February/004680.html Modified: trunk/src/flash/flash.c =================================================================== --- trunk/src/flash/flash.c 2009-02-10 18:21:17 UTC (rev 1370) +++ trunk/src/flash/flash.c 2009-02-12 15:35:03 UTC (rev 1371) @@ -1053,7 +1053,11 @@ /* fit the run into bank constraints */ if (run_address + run_size > c->base + c->size) + { + LOG_WARNING("writing %d bytes only - as image section is %d bytes and bank is only %d bytes", \ + c->base + c->size - run_address, run_size, c->size); run_size = c->base + c->size - run_address; + } /* allocate buffer */ buffer = malloc(run_size); |
|
From: <kc...@ma...> - 2009-02-10 19:21:31
|
Author: kc8apf
Date: 2009-02-10 19:21:17 +0100 (Tue, 10 Feb 2009)
New Revision: 1370
Modified:
trunk/configure.in
trunk/src/helper/types.h
trunk/src/jtag/bitbang.c
trunk/src/jtag/bitq.c
trunk/src/jtag/ft2232.c
trunk/src/jtag/gw16012.c
trunk/src/jtag/jlink.c
trunk/src/jtag/jtag.c
trunk/src/jtag/jtag.h
trunk/src/jtag/rlink/rlink.c
trunk/src/jtag/usbprog.c
trunk/src/jtag/vsllink.c
trunk/src/jtag/zy1000.c
trunk/src/xsvf/xsvf.c
Log:
Use C89/C99/C++ compliant boolean types
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/configure.in 2009-02-10 18:21:17 UTC (rev 1370)
@@ -11,6 +11,7 @@
AC_CHECK_HEADERS(sys/time.h)
AC_CHECK_HEADERS(elf.h)
AC_CHECK_HEADERS(strings.h)
+AC_CHECK_HEADERS(stdbool.h)
AC_HEADER_TIME
Modified: trunk/src/helper/types.h
===================================================================
--- trunk/src/helper/types.h 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/helper/types.h 2009-02-10 18:21:17 UTC (rev 1370)
@@ -45,7 +45,22 @@
typedef struct jtag_tap_s jtag_tap_t;
+#ifdef HAVE_STDBOOL_H
+#include <stdbool.h>
+#else /* HAVE_STDBOOL_H */
+#define __bool_true_false_are_defined 1
+#ifndef __cplusplus
+
+#define false 0
+#define true 1
+
+#define bool _Bool
+typedef int _Bool;
+#endif /* __cplusplus */
+
+#endif /* HAVE_STDBOOL_H */
+
/* DANGER!!!! here be dragons!
*
* Leave these fn's as byte accesses because it is safe
Modified: trunk/src/jtag/bitbang.c
===================================================================
--- trunk/src/jtag/bitbang.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/bitbang.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -112,11 +112,11 @@
state_count = 0;
while (num_states)
{
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[state_count])
{
tms = 0;
}
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[state_count])
{
tms = 1;
}
Modified: trunk/src/jtag/bitq.c
===================================================================
--- trunk/src/jtag/bitq.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/bitq.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -194,9 +194,9 @@
for (i = 0; i<=cmd->num_states; i++)
{
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[i])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[i])
bitq_io(0, 0, 0);
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[i])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[i])
bitq_io(1, 0, 0);
else
{
Modified: trunk/src/jtag/ft2232.c
===================================================================
--- trunk/src/jtag/ft2232.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/ft2232.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -562,9 +562,9 @@
while (num_states_batch--)
{
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[state_count])
buf_set_u32(&tms_byte, bit_count++, 1, 0x0);
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[state_count])
buf_set_u32(&tms_byte, bit_count++, 1, 0x1);
else
{
Modified: trunk/src/jtag/gw16012.c
===================================================================
--- trunk/src/jtag/gw16012.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/gw16012.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -230,11 +230,11 @@
while (num_states)
{
gw16012_control(0x0); /* single-bit mode */
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[state_count])
{
gw16012_data(0x0); /* TCK cycle with TMS low */
}
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[state_count])
{
gw16012_data(0x2); /* TCK cycle with TMS high */
}
Modified: trunk/src/jtag/jlink.c
===================================================================
--- trunk/src/jtag/jlink.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/jlink.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -366,11 +366,11 @@
for (i = 0; i < num_states; i++)
{
- if (path[i] == tap_state_transition(tap_get_state(), FALSE))
+ if (path[i] == tap_state_transition(tap_get_state(), false))
{
jlink_tap_append_step(0, 0);
}
- else if (path[i] == tap_state_transition(tap_get_state(), TRUE))
+ else if (path[i] == tap_state_transition(tap_get_state(), true))
{
jlink_tap_append_step(1, 0);
}
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/jtag.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -957,8 +957,8 @@
LOG_ERROR("BUG: TAP_RESET is not a valid state for pathmove sequences");
exit(-1);
}
- if ( tap_state_transition(cur_state, 1) != path[i]
- && tap_state_transition(cur_state, 0) != path[i])
+ if ( tap_state_transition(cur_state, true) != path[i]
+ && tap_state_transition(cur_state, false) != path[i])
{
LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", tap_state_name(cur_state), tap_state_name(path[i]));
exit(-1);
@@ -2920,6 +2920,7 @@
}
}
+
/*-----<Cable Helper API>---------------------------------------*/
/* these Cable Helper API functions are all documented in the jtag.h header file,
@@ -2964,6 +2965,7 @@
return end_state_follower;
}
+
int tap_move_ndx( tap_state_t astate )
{
/* given a stable state, return the index into the tms_seqs[] array within tap_get_tms_path() */
@@ -2994,6 +2996,7 @@
return ndx;
}
+
int tap_get_tms_path( tap_state_t from, tap_state_t to )
{
/* tap_move[i][j]: tap movement command to go from state i to state j
@@ -3035,9 +3038,10 @@
return tms_seqs[tap_move_ndx(from)][tap_move_ndx(to)];
}
-int tap_is_state_stable(tap_state_t astate)
+
+bool tap_is_state_stable(tap_state_t astate)
{
- int is_stable;
+ bool is_stable;
/* A switch() is used because it is symbol dependent
(not value dependent like an array), and can also check bounds.
@@ -3050,16 +3054,16 @@
case TAP_DRPAUSE:
case TAP_IRSHIFT:
case TAP_IRPAUSE:
- is_stable = 1;
+ is_stable = true;
break;
default:
- is_stable = 0;
+ is_stable = false;
}
return is_stable;
}
-tap_state_t tap_state_transition(tap_state_t cur_state, int tms)
+tap_state_t tap_state_transition(tap_state_t cur_state, bool tms)
{
tap_state_t new_state;
Modified: trunk/src/jtag/jtag.h
===================================================================
--- trunk/src/jtag/jtag.h 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/jtag.h 2009-02-10 18:21:17 UTC (rev 1370)
@@ -29,6 +29,7 @@
#include "command.h"
+
#if 0
#define _DEBUG_JTAG_IO_
#endif
@@ -37,6 +38,7 @@
#define DEBUG_JTAG_IOZ 64
#endif
+
/* 16 Tap States, from page 21 of ASSET InterTech, Inc.'s svf.pdf
*/
enum tap_state {
@@ -57,6 +59,7 @@
//extern tap_transition_t tap_transitions[16]; /* describe the TAP state diagram */
+
/*-----<Cable Helper API>-------------------------------------------*/
/* The "Cable Helper API" is what the cable drivers can use to help implement
@@ -147,9 +150,9 @@
/**
* Function tap_is_state_stable
- * returns TRUE if the \a astate is stable.
+ * returns true if the \a astate is stable.
*/
-int tap_is_state_stable(tap_state_t astate);
+bool tap_is_state_stable(tap_state_t astate);
/**
* Function tap_state_transition
@@ -158,7 +161,7 @@
* @param tms is either zero or non-zero, just like a real TMS line in a jtag interface.
* @return tap_state_t - the next state a TAP would enter.
*/
-tap_state_t tap_state_transition(tap_state_t current_state, int tms);
+tap_state_t tap_state_transition(tap_state_t current_state, bool tms);
/**
* Function tap_state_name
@@ -168,6 +171,7 @@
/*-----</Cable Helper API>------------------------------------------*/
+
extern tap_state_t cmd_queue_end_state; /* finish DR scans in dr_end_state */
extern tap_state_t cmd_queue_cur_state; /* current TAP state */
Modified: trunk/src/jtag/rlink/rlink.c
===================================================================
--- trunk/src/jtag/rlink/rlink.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/rlink/rlink.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -927,11 +927,11 @@
state_count = 0;
while (num_states)
{
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[state_count])
{
tms = 0;
}
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[state_count])
{
tms = 1;
}
Modified: trunk/src/jtag/usbprog.c
===================================================================
--- trunk/src/jtag/usbprog.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/usbprog.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -268,13 +268,13 @@
state_count = 0;
while (num_states)
{
- if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), false) == cmd->path[state_count])
{
/* LOG_INFO("1"); */
usbprog_write(0, 0, 0);
usbprog_write(1, 0, 0);
}
- else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), true) == cmd->path[state_count])
{
/* LOG_INFO("2"); */
usbprog_write(0, 1, 0);
Modified: trunk/src/jtag/vsllink.c
===================================================================
--- trunk/src/jtag/vsllink.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/vsllink.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -634,11 +634,11 @@
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = 0;
}
- if (path[i - start] == tap_state_transition(tap_get_state(), TRUE))
+ if (path[i - start] == tap_state_transition(tap_get_state(), true))
{
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] |= 1 << (i & 7);
}
- else if (path[i - start] == tap_state_transition(tap_get_state(), FALSE))
+ else if (path[i - start] == tap_state_transition(tap_get_state(), false))
{
// nothing to do
}
Modified: trunk/src/jtag/zy1000.c
===================================================================
--- trunk/src/jtag/zy1000.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/jtag/zy1000.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -764,11 +764,11 @@
while (num_states)
{
- if (tap_state_transition(cur_state, FALSE) == path[state_count])
+ if (tap_state_transition(cur_state, false) == path[state_count])
{
tms = 0;
}
- else if (tap_state_transition(cur_state, TRUE) == path[state_count])
+ else if (tap_state_transition(cur_state, true) == path[state_count])
{
tms = 1;
}
Modified: trunk/src/xsvf/xsvf.c
===================================================================
--- trunk/src/xsvf/xsvf.c 2009-02-10 16:11:07 UTC (rev 1369)
+++ trunk/src/xsvf/xsvf.c 2009-02-10 18:21:17 UTC (rev 1370)
@@ -201,11 +201,11 @@
int j = (move >> i) & 1;
if (j)
{
- curstate = tap_state_transition(curstate, TRUE);
+ curstate = tap_state_transition(curstate, true);
}
else
{
- curstate = tap_state_transition(curstate, FALSE);
+ curstate = tap_state_transition(curstate, false);
}
moves[i] = curstate;
}
|
|
From: <kc...@ma...> - 2009-02-10 17:11:10
|
Author: kc8apf
Date: 2009-02-10 17:11:07 +0100 (Tue, 10 Feb 2009)
New Revision: 1369
Modified:
trunk/src/jtag/jtag.c
Log:
A few more usages of TRUE and FALSE to remove
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-02-09 14:47:34 UTC (rev 1368)
+++ trunk/src/jtag/jtag.c 2009-02-10 16:11:07 UTC (rev 1369)
@@ -957,8 +957,8 @@
LOG_ERROR("BUG: TAP_RESET is not a valid state for pathmove sequences");
exit(-1);
}
- if ( tap_state_transition(cur_state, TRUE) != path[i]
- && tap_state_transition(cur_state, FALSE) != path[i])
+ if ( tap_state_transition(cur_state, 1) != path[i]
+ && tap_state_transition(cur_state, 0) != path[i])
{
LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", tap_state_name(cur_state), tap_state_name(path[i]));
exit(-1);
|
|
From: ntfreak at B. <nt...@ma...> - 2009-02-09 15:47:35
|
Author: ntfreak
Date: 2009-02-09 15:47:34 +0100 (Mon, 09 Feb 2009)
New Revision: 1368
Modified:
trunk/src/jtag/jtag.c
trunk/src/jtag/jtag.h
Log:
- fix native win32 build issues
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-02-09 10:01:09 UTC (rev 1367)
+++ trunk/src/jtag/jtag.c 2009-02-09 14:47:34 UTC (rev 1368)
@@ -2920,7 +2920,6 @@
}
}
-
/*-----<Cable Helper API>---------------------------------------*/
/* these Cable Helper API functions are all documented in the jtag.h header file,
@@ -2965,7 +2964,6 @@
return end_state_follower;
}
-
int tap_move_ndx( tap_state_t astate )
{
/* given a stable state, return the index into the tms_seqs[] array within tap_get_tms_path() */
@@ -2996,7 +2994,6 @@
return ndx;
}
-
int tap_get_tms_path( tap_state_t from, tap_state_t to )
{
/* tap_move[i][j]: tap movement command to go from state i to state j
@@ -3038,10 +3035,9 @@
return tms_seqs[tap_move_ndx(from)][tap_move_ndx(to)];
}
-
-BOOL tap_is_state_stable(tap_state_t astate)
+int tap_is_state_stable(tap_state_t astate)
{
- BOOL is_stable;
+ int is_stable;
/* A switch() is used because it is symbol dependent
(not value dependent like an array), and can also check bounds.
@@ -3054,16 +3050,16 @@
case TAP_DRPAUSE:
case TAP_IRSHIFT:
case TAP_IRPAUSE:
- is_stable = TRUE;
+ is_stable = 1;
break;
default:
- is_stable = FALSE;
+ is_stable = 0;
}
return is_stable;
}
-tap_state_t tap_state_transition(tap_state_t cur_state, BOOL tms)
+tap_state_t tap_state_transition(tap_state_t cur_state, int tms)
{
tap_state_t new_state;
Modified: trunk/src/jtag/jtag.h
===================================================================
--- trunk/src/jtag/jtag.h 2009-02-09 10:01:09 UTC (rev 1367)
+++ trunk/src/jtag/jtag.h 2009-02-09 14:47:34 UTC (rev 1368)
@@ -29,7 +29,6 @@
#include "command.h"
-
#if 0
#define _DEBUG_JTAG_IO_
#endif
@@ -38,7 +37,6 @@
#define DEBUG_JTAG_IOZ 64
#endif
-
/* 16 Tap States, from page 21 of ASSET InterTech, Inc.'s svf.pdf
*/
enum tap_state {
@@ -51,10 +49,6 @@
typedef enum tap_state tap_state_t;
-typedef unsigned BOOL;
-#define TRUE 1
-#define FALSE 0
-
typedef struct tap_transition_s
{
tap_state_t high;
@@ -63,7 +57,6 @@
//extern tap_transition_t tap_transitions[16]; /* describe the TAP state diagram */
-
/*-----<Cable Helper API>-------------------------------------------*/
/* The "Cable Helper API" is what the cable drivers can use to help implement
@@ -156,7 +149,7 @@
* Function tap_is_state_stable
* returns TRUE if the \a astate is stable.
*/
-BOOL tap_is_state_stable(tap_state_t astate);
+int tap_is_state_stable(tap_state_t astate);
/**
* Function tap_state_transition
@@ -165,7 +158,7 @@
* @param tms is either zero or non-zero, just like a real TMS line in a jtag interface.
* @return tap_state_t - the next state a TAP would enter.
*/
-tap_state_t tap_state_transition(tap_state_t current_state, BOOL tms);
+tap_state_t tap_state_transition(tap_state_t current_state, int tms);
/**
* Function tap_state_name
@@ -175,7 +168,6 @@
/*-----</Cable Helper API>------------------------------------------*/
-
extern tap_state_t cmd_queue_end_state; /* finish DR scans in dr_end_state */
extern tap_state_t cmd_queue_cur_state; /* current TAP state */
|
|
From: oharboe at B. <oh...@ma...> - 2009-02-09 11:01:10
|
Author: oharboe
Date: 2009-02-09 11:01:09 +0100 (Mon, 09 Feb 2009)
New Revision: 1367
Modified:
trunk/src/target/board/x300t.cfg
Log:
Andi <ope...@gm...> - better dram setup
Modified: trunk/src/target/board/x300t.cfg
===================================================================
--- trunk/src/target/board/x300t.cfg 2009-02-03 05:59:17 UTC (rev 1366)
+++ trunk/src/target/board/x300t.cfg 2009-02-09 10:01:09 UTC (rev 1367)
@@ -1,5 +1,5 @@
# This is for the T-Home X300T / X301T IPTV box,
-# which are based on IPTV reference designs from Kiss/Cisco KMM-32**
+# which are based on IPTV reference designs from Kiss/Cisco KMM-3***
#
# It has Sigma Designs SMP8634 chip.
source [find target/smp8634.cfg]
@@ -11,7 +11,20 @@
flash bank cfi 0xac000000 0x100000 2 2 0
proc x300t_init { } {
- # Setup SDRAM config and flash mapping
- # map flash to CPU address space REG_BASE_cpu_block+CPU_remap4
- mww 0x6f010 0x48000000
+ # Setup SDRAM config and flash mapping
+ # initialize ram
+ mww 0xa003fffc 3
+ mww 0xa003fffc 2
+ mww 0xa0030000 0xE34111BA
+ mww 0xa003fffc 0xa4444
+ mww 0xa003fffc 0
+
+ # remap boot vector in CPU local RAM
+ mww 0xa006f000 0x60000
+
+ # map flash to CPU address space REG_BASE_cpu_block+CPU_remap4
+ mww 0x0006f010 0x48000000
+
+ # map flash addr to REG_BASE_cpu_block + LR_XENV_LOCATION (normally done by XOS)
+ mww 0x00061ff0 0x48000000
}
|
|
From: <kc...@ma...> - 2009-02-03 06:59:56
|
Author: kc8apf
Date: 2009-02-03 06:59:17 +0100 (Tue, 03 Feb 2009)
New Revision: 1366
Modified:
trunk/src/flash/str9xpec.c
trunk/src/helper/binarybuffer.c
trunk/src/jtag/amt_jtagaccel.c
trunk/src/jtag/bitbang.c
trunk/src/jtag/bitq.c
trunk/src/jtag/dummy.c
trunk/src/jtag/ft2232.c
trunk/src/jtag/gw16012.c
trunk/src/jtag/jlink.c
trunk/src/jtag/jtag.c
trunk/src/jtag/jtag.h
trunk/src/jtag/rlink/rlink.c
trunk/src/jtag/usbprog.c
trunk/src/jtag/vsllink.c
trunk/src/jtag/zy1000.c
trunk/src/svf/svf.c
trunk/src/target/arm11.h
trunk/src/target/arm11_dbgtap.c
trunk/src/target/xscale.c
trunk/src/xsvf/xsvf.c
trunk/tools/xsvf_tools/svf2xsvf.py
Log:
- Cable driver helper API courtesy of Dick Hollenbeck <di...@so...>
- Formatting changes from uncrustify
Modified: trunk/src/flash/str9xpec.c
===================================================================
--- trunk/src/flash/str9xpec.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/flash/str9xpec.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -111,7 +111,7 @@
return ERROR_OK;
}
-int str9xpec_set_instr(jtag_tap_t *tap, u32 new_instr, enum tap_state end_state)
+int str9xpec_set_instr(jtag_tap_t *tap, u32 new_instr, tap_state_t end_state)
{
if( tap == NULL ){
return ERROR_TARGET_INVALID;
Modified: trunk/src/helper/binarybuffer.c
===================================================================
--- trunk/src/helper/binarybuffer.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/helper/binarybuffer.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -32,23 +32,23 @@
#include "binarybuffer.h"
-const unsigned char bit_reverse_table256[] =
+const unsigned char bit_reverse_table256[] =
{
- 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
- 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
- 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
- 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
- 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
+ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
+ 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
+ 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
+ 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
+ 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
- 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
+ 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
- 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
+ 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
- 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
+ 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
- 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
+ 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
};
@@ -63,8 +63,8 @@
for (i = 0; i < num_bytes; i++)
to[i] = from[i];
-
- /* mask out bits that don't belong to the buffer */
+
+ /* mask out bits that don't belong to the buffer */
if (size % 8)
{
to[size / 8] &= (0xff >> (8 - (size % 8)));
@@ -111,7 +111,7 @@
/* mask out bits that don't really belong to the buffer if size isn't a multiple of 8 bits */
if ((size % 8) && (i == num_bytes -1 ))
{
- if ((buf1[i] & ((1 << (size % 8)) - 1) & mask[i]) !=
+ if ((buf1[i] & ((1 << (size % 8)) - 1) & mask[i]) !=
(buf2[i] & ((1 << (size % 8)) - 1) & mask[i]))
return 1;
}
@@ -136,10 +136,10 @@
buf[i] = 0xff;
else
buf[i] = (1 << count) - 1;
-
+
count -= 8;
}
-
+
return buf;
}
@@ -147,7 +147,7 @@
{
int src_idx = src_start, dst_idx = dst_start;
int i;
-
+
for (i = 0; i < len; i++)
{
if (((src[src_idx/8] >> (src_idx % 8)) & 1) == 1)
@@ -164,9 +164,9 @@
u32 flip_u32(u32 value, unsigned int num)
{
u32 c;
-
- c = (bit_reverse_table256[value & 0xff] << 24) |
- (bit_reverse_table256[(value >> 8) & 0xff] << 16) |
+
+ c = (bit_reverse_table256[value & 0xff] << 24) |
+ (bit_reverse_table256[(value >> 8) & 0xff] << 16) |
(bit_reverse_table256[(value >> 16) & 0xff] << 8) |
(bit_reverse_table256[(value >> 24) & 0xff]);
@@ -179,21 +179,21 @@
int ceil_f_to_u32(float x)
{
u32 y;
-
+
if (x < 0) /* return zero for negative numbers */
return 0;
-
+
y = x; /* cut off fraction */
-
+
if ((x - y) > 0.0) /* if there was a fractional part, increase by one */
y++;
-
+
return y;
}
char* buf_to_str(const u8 *buf, int buf_len, int radix)
{
- const char *DIGITS = "0123456789abcdef";
+ const char *DIGITS = "0123456789ABCDEF";
float factor;
char *str;
int str_len;
@@ -202,7 +202,7 @@
int j; /* base-256 digits */
int i; /* output digits (radix) */
-
+
if (radix == 16)
{
factor = 2.0; /* log(256) / log(16) = 2.0 */
@@ -217,10 +217,10 @@
}
else
return NULL;
-
+
str_len = ceil_f_to_u32(CEIL(buf_len, 8) * factor);
str = calloc(str_len + 1, 1);
-
+
for (i = b256_len - 1; i >= 0; i--)
{
tmp = buf[i];
@@ -237,7 +237,7 @@
for (j = 0; j < str_len; j++)
str[j] = DIGITS[(int)str[j]];
-
+
return str;
}
@@ -247,12 +247,12 @@
u32 tmp;
float factor;
u8 *b256_buf;
- int b256_len;
-
+ int b256_len;
+
int j; /* base-256 digits */
int i; /* input digits (ASCII) */
-
- if (radix == 0)
+
+ if (radix == 0)
{
/* identify radix, and skip radix-prefix (0, 0x or 0X) */
if ((str[0] == '0') && (str[1] && ((str[1] == 'x') || (str[1] == 'X'))))
@@ -272,7 +272,7 @@
radix = 10;
}
}
-
+
if (radix == 16)
factor = 0.5; /* log(16) / log(256) = 0.5 */
else if (radix == 10)
@@ -286,14 +286,14 @@
charbuf = malloc(str_len + 1);
memcpy(charbuf, str, str_len);
charbuf[str_len] = '\0';
-
+
/* number of digits in base-256 notation */
b256_len = ceil_f_to_u32(str_len * factor);
b256_buf = calloc(b256_len, 1);
-
+
/* go through zero terminated buffer */
for (i = 0; charbuf[i]; i++)
- {
+ {
tmp = charbuf[i];
if ((tmp >= '0') && (tmp <= '9'))
tmp = (tmp - '0');
@@ -302,19 +302,19 @@
else if ((tmp >= 'A') && (tmp <= 'F'))
tmp = (tmp - 'A' + 10);
else continue; /* skip characters other than [0-9,a-f,A-F] */
-
+
if (tmp >= radix)
- continue; /* skip digits invalid for the current radix */
-
+ continue; /* skip digits invalid for the current radix */
+
for (j = 0; j < b256_len; j++)
{
tmp += (u32)b256_buf[j] * radix;
b256_buf[j] = (u8)(tmp & 0xFF);
tmp >>= 8;
}
-
+
}
-
+
for (j = 0; j < CEIL(buf_len, 8); j++)
{
if (j < b256_len)
@@ -326,18 +326,18 @@
/* mask out bits that don't belong to the buffer */
if (buf_len % 8)
buf[(buf_len / 8)] &= 0xff >> (8 - (buf_len % 8));
-
+
free(b256_buf);
free(charbuf);
-
+
return i;
}
int buf_to_u32_handler(u8 *in_buf, void *priv, struct scan_field_s *field)
{
u32 *dest = priv;
-
+
*dest = buf_get_u32(in_buf, 0, 32);
-
+
return ERROR_OK;
}
Modified: trunk/src/jtag/amt_jtagaccel.c
===================================================================
--- trunk/src/jtag/amt_jtagaccel.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/jtag/amt_jtagaccel.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -109,6 +109,7 @@
{{0x1f, 0x00}, {0x0c, 0x00}, {0x07, 0x00}, {0x97, 0x00}, {0x08, 0x00}, {0x00, 0x00}}, /* IRPAUSE */
};
+
jtag_interface_t amt_jtagaccel_interface =
{
.name = "amt_jtagaccel",
@@ -157,8 +158,8 @@
void amt_jtagaccel_end_state(int state)
{
- if (tap_move_map[state] != -1)
- end_state = state;
+ if (tap_is_state_stable(state))
+ tap_set_end_state(state);
else
{
LOG_ERROR("BUG: %i is not a valid end state", state);
@@ -187,9 +188,12 @@
u8 aw_scan_tms_5;
u8 tms_scan[2];
- tms_scan[0] = amt_jtagaccel_tap_move[tap_move_map[cur_state]][tap_move_map[end_state]][0];
- tms_scan[1] = amt_jtagaccel_tap_move[tap_move_map[cur_state]][tap_move_map[end_state]][1];
+ tap_state_t cur_state = tap_get_state();
+ tap_state_t end_state = tap_get_end_state();
+ tms_scan[0] = amt_jtagaccel_tap_move[tap_move_ndx(cur_state)][tap_move_ndx(end_state)][0];
+ tms_scan[1] = amt_jtagaccel_tap_move[tap_move_ndx(cur_state)][tap_move_ndx(end_state)][1];
+
aw_scan_tms_5 = 0x40 | (tms_scan[0] & 0x1f);
AMT_AW(aw_scan_tms_5);
if (jtag_speed > 3 || rtck_enabled)
@@ -203,7 +207,7 @@
amt_wait_scan_busy();
}
- cur_state = end_state;
+ tap_set_state(end_state);
}
void amt_jtagaccel_runtest(int num_cycles)
@@ -212,10 +216,10 @@
u8 aw_scan_tms_5;
u8 aw_scan_tms_1to4;
- enum tap_state saved_end_state = end_state;
+ tap_state_t saved_end_state = tap_get_end_state();
/* only do a state_move when we're not already in IDLE */
- if (cur_state != TAP_IDLE)
+ if (tap_get_state() != TAP_IDLE)
{
amt_jtagaccel_end_state(TAP_IDLE);
amt_jtagaccel_state_move();
@@ -235,7 +239,7 @@
}
amt_jtagaccel_end_state(saved_end_state);
- if (cur_state != end_state)
+ if (tap_get_state() != tap_get_end_state())
amt_jtagaccel_state_move();
}
@@ -243,7 +247,7 @@
{
int bits_left = scan_size;
int bit_count = 0;
- enum tap_state saved_end_state = end_state;
+ tap_state_t saved_end_state = tap_get_end_state();
u8 aw_tdi_option;
u8 dw_tdi_scan;
u8 dr_tdo;
@@ -297,8 +301,8 @@
bits_left -= 8;
}
- tms_scan[0] = amt_jtagaccel_tap_move[tap_move_map[cur_state]][tap_move_map[end_state]][0];
- tms_scan[1] = amt_jtagaccel_tap_move[tap_move_map[cur_state]][tap_move_map[end_state]][1];
+ tms_scan[0] = amt_jtagaccel_tap_move[tap_move_ndx(tap_get_state())][tap_move_ndx(tap_get_end_state())][0];
+ tms_scan[1] = amt_jtagaccel_tap_move[tap_move_ndx(tap_get_state())][tap_move_ndx(tap_get_end_state())][1];
aw_tms_scan = 0x40 | (tms_scan[0] & 0x1f) | (buf_get_u32(buffer, bit_count, 1) << 5);
AMT_AW(aw_tms_scan);
if (jtag_speed > 3 || rtck_enabled)
@@ -318,7 +322,7 @@
if (jtag_speed > 3 || rtck_enabled)
amt_wait_scan_busy();
}
- cur_state = end_state;
+ tap_set_state(tap_get_end_state());
}
int amt_jtagaccel_execute_queue(void)
@@ -351,7 +355,7 @@
#endif
if (cmd->cmd.reset->trst == 1)
{
- cur_state = TAP_RESET;
+ tap_set_state(TAP_RESET);
}
amt_jtagaccel_reset(cmd->cmd.reset->trst, cmd->cmd.reset->srst);
break;
@@ -404,26 +408,26 @@
#if PARPORT_USE_GIVEIO == 1
int amt_jtagaccel_get_giveio_access(void)
{
- HANDLE h;
- OSVERSIONINFO version;
+ HANDLE h;
+ OSVERSIONINFO version;
- version.dwOSVersionInfoSize = sizeof version;
- if (!GetVersionEx( &version )) {
+ version.dwOSVersionInfoSize = sizeof version;
+ if (!GetVersionEx( &version )) {
errno = EINVAL;
return -1;
- }
- if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
+ }
+ if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
return 0;
- h = CreateFile( "\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
- if (h == INVALID_HANDLE_VALUE) {
+ h = CreateFile( "\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
+ if (h == INVALID_HANDLE_VALUE) {
errno = ENODEV;
return -1;
- }
+ }
- CloseHandle( h );
+ CloseHandle( h );
- return 0;
+ return 0;
}
#endif
Modified: trunk/src/jtag/bitbang.c
===================================================================
--- trunk/src/jtag/bitbang.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/jtag/bitbang.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -74,13 +74,12 @@
int bitbang_execute_queue(void);
-
/* The bitbang driver leaves the TCK 0 when in idle */
-void bitbang_end_state(enum tap_state state)
+void bitbang_end_state(tap_state_t state)
{
- if (tap_move_map[state] != -1)
- end_state = state;
+ if (tap_is_state_stable(state))
+ tap_set_end_state(state);
else
{
LOG_ERROR("BUG: %i is not a valid end state", state);
@@ -88,10 +87,10 @@
}
}
-void bitbang_state_move(void) {
-
+void bitbang_state_move(void)
+{
int i=0, tms=0;
- u8 tms_scan = TAP_MOVE(cur_state, end_state);
+ u8 tms_scan = tap_get_tms_path(tap_get_state(), tap_get_end_state());
for (i = 0; i < 7; i++)
{
@@ -101,7 +100,7 @@
}
bitbang_interface->write(CLOCK_IDLE(), tms, 0);
- cur_state = end_state;
+ tap_set_state(tap_get_end_state());
}
void bitbang_path_move(pathmove_command_t *cmd)
@@ -113,41 +112,41 @@
state_count = 0;
while (num_states)
{
- if (tap_transitions[cur_state].low == cmd->path[state_count])
+ if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[state_count])
{
tms = 0;
}
- else if (tap_transitions[cur_state].high == cmd->path[state_count])
+ else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[state_count])
{
tms = 1;
}
else
{
- LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", jtag_state_name(cur_state), jtag_state_name(cmd->path[state_count]));
+ LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", tap_state_name(tap_get_state()), tap_state_name(cmd->path[state_count]));
exit(-1);
}
bitbang_interface->write(0, tms, 0);
bitbang_interface->write(1, tms, 0);
- cur_state = cmd->path[state_count];
+ tap_set_state(cmd->path[state_count]);
state_count++;
num_states--;
}
bitbang_interface->write(CLOCK_IDLE(), tms, 0);
- end_state = cur_state;
+ tap_set_end_state(tap_get_state());
}
void bitbang_runtest(int num_cycles)
{
int i;
- enum tap_state saved_end_state = end_state;
+ tap_state_t saved_end_state = tap_get_end_state();
/* only do a state_move when we're not already in IDLE */
- if (cur_state != TAP_IDLE)
+ if (tap_get_state() != TAP_IDLE)
{
bitbang_end_state(TAP_IDLE);
bitbang_state_move();
@@ -163,14 +162,14 @@
/* finish in end_state */
bitbang_end_state(saved_end_state);
- if (cur_state != end_state)
+ if (tap_get_state() != tap_get_end_state())
bitbang_state_move();
}
static void bitbang_stableclocks(int num_cycles)
{
- int tms = (cur_state == TAP_RESET ? 1 : 0);
+ int tms = (tap_get_state() == TAP_RESET ? 1 : 0);
int i;
/* send num_cycles clocks onto the cable */
@@ -185,10 +184,10 @@
void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
{
- enum tap_state saved_end_state = end_state;
+ tap_state_t saved_end_state = tap_get_end_state();
int bit_cnt;
- if (!((!ir_scan && (cur_state == TAP_DRSHIFT)) || (ir_scan && (cur_state == TAP_IRSHIFT))))
+ if (!((!ir_scan && (tap_get_state() == TAP_DRSHIFT)) || (ir_scan && (tap_get_state() == TAP_IRSHIFT))))
{
if (ir_scan)
bitbang_end_state(TAP_IRSHIFT);
@@ -241,11 +240,11 @@
bitbang_interface->write(CLOCK_IDLE(), 0, 0);
if (ir_scan)
- cur_state = TAP_IRPAUSE;
+ tap_set_state(TAP_IRPAUSE);
else
- cur_state = TAP_DRPAUSE;
+ tap_set_state(TAP_DRPAUSE);
- if (cur_state != end_state)
+ if (tap_get_state() != tap_get_end_state())
bitbang_state_move();
}
@@ -277,7 +276,7 @@
{
case JTAG_END_STATE:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("end_state: %s", jtag_state_name(cmd->cmd.end_state->end_state) );
+ LOG_DEBUG("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state) );
#endif
if (cmd->cmd.end_state->end_state != -1)
bitbang_end_state(cmd->cmd.end_state->end_state);
@@ -288,13 +287,13 @@
#endif
if ((cmd->cmd.reset->trst == 1) || (cmd->cmd.reset->srst && (jtag_reset_config & RESET_SRST_PULLS_TRST)))
{
- cur_state = TAP_RESET;
+ tap_set_state(TAP_RESET);
}
bitbang_interface->reset(cmd->cmd.reset->trst, cmd->cmd.reset->srst);
break;
case JTAG_RUNTEST:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, jtag_state_name(cmd->cmd.runtest->end_state) );
+ LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, tap_state_name(cmd->cmd.runtest->end_state) );
#endif
if (cmd->cmd.runtest->end_state != -1)
bitbang_end_state(cmd->cmd.runtest->end_state);
@@ -310,7 +309,7 @@
case JTAG_STATEMOVE:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("statemove end in %s", jtag_state_name(cmd->cmd.statemove->end_state));
+ LOG_DEBUG("statemove end in %s", tap_state_name(cmd->cmd.statemove->end_state));
#endif
if (cmd->cmd.statemove->end_state != -1)
bitbang_end_state(cmd->cmd.statemove->end_state);
@@ -319,13 +318,13 @@
case JTAG_PATHMOVE:
#ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("pathmove: %i states, end in %s", cmd->cmd.pathmove->num_states,
- jtag_state_name(cmd->cmd.pathmove->path[cmd->cmd.pathmove->num_states - 1]));
+ tap_state_name(cmd->cmd.pathmove->path[cmd->cmd.pathmove->num_states - 1]));
#endif
bitbang_path_move(cmd->cmd.pathmove);
break;
case JTAG_SCAN:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", jtag_state_name(cmd->cmd.scan->end_state) );
+ LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", tap_state_name(cmd->cmd.scan->end_state) );
#endif
if (cmd->cmd.scan->end_state != -1)
bitbang_end_state(cmd->cmd.scan->end_state);
Modified: trunk/src/jtag/bitq.c
===================================================================
--- trunk/src/jtag/bitq.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/jtag/bitq.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -1,22 +1,22 @@
/***************************************************************************
- * Copyright (C) 2007 by Pavel Chromy *
- * ch...@as... *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
+* Copyright (C) 2007 by Pavel Chromy *
+* ch...@as... *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+* *
+* This program is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU General Public License for more details. *
+* *
+* You should have received a copy of the GNU General Public License *
+* along with this program; if not, write to the *
+* Free Software Foundation, Inc., *
+* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -34,12 +34,12 @@
#include <stdlib.h>
#include <unistd.h>
-bitq_interface_t *bitq_interface; /* low level bit queue interface */
+bitq_interface_t* bitq_interface; /* low level bit queue interface */
-bitq_state_t bitq_in_state; /* state of input queue */
+bitq_state_t bitq_in_state; /* state of input queue */
-u8 *bitq_in_buffer; /* buffer dynamically reallocated as needed */
-unsigned long bitq_in_bufsize=32; /* min. buffer size */
+u8* bitq_in_buffer; /* buffer dynamically reallocated as needed */
+unsigned long bitq_in_bufsize = 32; /* min. buffer size */
/*
* input queue processing does not use jtag_read_buffer() to avoid unnecessary overhead
@@ -49,284 +49,338 @@
void bitq_in_proc(void)
{
/* static information preserved between calls to increase performance */
- static u8 *in_buff; /* pointer to buffer for scanned data */
- static int in_idx; /* index of byte being scanned */
- static u8 in_mask; /* mask of next bit to be scanned */
+ static u8* in_buff; /* pointer to buffer for scanned data */
+ static int in_idx; /* index of byte being scanned */
+ static u8 in_mask; /* mask of next bit to be scanned */
- scan_field_t *field;
- int tdo;
+ scan_field_t* field;
+ int tdo;
/* loop through the queue */
- while (bitq_in_state.cmd) {
+ while (bitq_in_state.cmd)
+ {
/* only JTAG_SCAN command may return data */
- if (bitq_in_state.cmd->type==JTAG_SCAN) {
+ if (bitq_in_state.cmd->type==JTAG_SCAN)
+ {
/* loop through the fields */
- while (bitq_in_state.field_idx<bitq_in_state.cmd->cmd.scan->num_fields) {
-
- field=&bitq_in_state.cmd->cmd.scan->fields[bitq_in_state.field_idx];
- if ( field->in_value || field->in_handler) {
-
- if (bitq_in_state.bit_pos==0) {
+ while (bitq_in_state.field_idx<bitq_in_state.cmd->cmd.scan->num_fields)
+ {
+ field = &bitq_in_state.cmd->cmd.scan->fields[bitq_in_state.field_idx];
+ if (field->in_value || field->in_handler)
+ {
+ if (bitq_in_state.bit_pos==0)
+ {
/* initialize field scanning */
- in_mask=0x01;
- in_idx=0;
- if (field->in_value) in_buff=field->in_value;
- else {
+ in_mask = 0x01;
+ in_idx = 0;
+ if (field->in_value)
+ in_buff = field->in_value;
+ else
+ {
/* buffer reallocation needed? */
- if (field->num_bits>bitq_in_bufsize*8) {
+ if (field->num_bits>bitq_in_bufsize * 8)
+ {
/* buffer previously allocated? */
- if (bitq_in_buffer!=NULL) {
+ if (bitq_in_buffer!=NULL)
+ {
/* free it */
free(bitq_in_buffer);
- bitq_in_buffer=NULL;
+ bitq_in_buffer = NULL;
}
/* double the buffer size until it fits */
- while (field->num_bits>bitq_in_bufsize*8) bitq_in_bufsize*=2;
+ while (field->num_bits>bitq_in_bufsize * 8)
+ bitq_in_bufsize *= 2;
}
/* if necessary, allocate buffer and check for malloc error */
- if (bitq_in_buffer==NULL && (bitq_in_buffer=malloc(bitq_in_bufsize))==NULL) {
+ if (bitq_in_buffer==NULL && ( bitq_in_buffer = malloc(bitq_in_bufsize) )==NULL)
+ {
LOG_ERROR("malloc error");
exit(-1);
}
- in_buff=(void *)bitq_in_buffer;
+ in_buff = (void*) bitq_in_buffer;
}
}
/* field scanning */
- while (bitq_in_state.bit_pos<field->num_bits) {
- if ((tdo=bitq_interface->in())<0) {
+ while (bitq_in_state.bit_pos<field->num_bits)
+ {
+ if ( ( tdo = bitq_interface->in() )<0 )
+ {
#ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("bitq in EOF");
#endif
return;
}
- if (in_mask==0x01) in_buff[in_idx]=0;
- if (tdo) in_buff[in_idx]|=in_mask;
- if (in_mask==0x80) {
- in_mask=0x01;
+ if (in_mask==0x01)
+ in_buff[in_idx] = 0;
+ if (tdo)
+ in_buff[in_idx] |= in_mask;
+ if (in_mask==0x80)
+ {
+ in_mask = 0x01;
in_idx++;
}
- else in_mask<<=1;
+ else
+ in_mask <<= 1;
bitq_in_state.bit_pos++;
}
- if (field->in_handler && bitq_in_state.status==ERROR_OK) {
- bitq_in_state.status=(*field->in_handler)(in_buff, field->in_handler_priv, field);
+ if (field->in_handler && bitq_in_state.status==ERROR_OK)
+ {
+ bitq_in_state.status = (*field->in_handler)(in_buff, field->in_handler_priv, field);
}
-
}
- bitq_in_state.field_idx++; /* advance to next field */
- bitq_in_state.bit_pos=0; /* start next field from the first bit */
+ bitq_in_state.field_idx++; /* advance to next field */
+ bitq_in_state.bit_pos = 0; /* start next field from the first bit */
}
-
}
- bitq_in_state.cmd=bitq_in_state.cmd->next; /* advance to next command */
- bitq_in_state.field_idx=0; /* preselect first field */
+ bitq_in_state.cmd = bitq_in_state.cmd->next; /* advance to next command */
+ bitq_in_state.field_idx = 0; /* preselect first field */
}
}
+
void bitq_io(int tms, int tdi, int tdo_req)
{
bitq_interface->out(tms, tdi, tdo_req);
/* check and process the input queue */
- if (bitq_interface->in_rdy()) bitq_in_proc();
+ if ( bitq_interface->in_rdy() )
+ bitq_in_proc();
}
-void bitq_end_state(enum tap_state state)
+
+void bitq_end_state(tap_state_t state)
{
- if (state==-1) return;
- if (tap_move_map[state]==-1) {
+ if (state==-1)
+ return;
+
+ if (!tap_is_state_stable(state))
+ {
LOG_ERROR("BUG: %i is not a valid end state", state);
exit(-1);
}
- end_state = state;
+ tap_set_end_state(state);
}
-void bitq_state_move(enum tap_state new_state)
+
+void bitq_state_move(tap_state_t new_state)
{
- int i=0;
- u8 tms_scan;
+ int i = 0;
+ u8 tms_scan;
- if (tap_move_map[cur_state]==-1 || tap_move_map[new_state]==-1) {
+ if (!tap_is_state_stable(tap_get_state()) || !tap_is_state_stable(new_state))
+ {
LOG_ERROR("TAP move from or to unstable state");
exit(-1);
}
- tms_scan=TAP_MOVE(cur_state, new_state);
+ tms_scan = tap_get_tms_path(tap_get_state(), new_state);
- for (i=0; i<7; i++) {
- bitq_io(tms_scan&1, 0, 0);
- tms_scan>>=1;
+ for (i = 0; i<7; i++)
+ {
+ bitq_io(tms_scan & 1, 0, 0);
+ tms_scan >>= 1;
}
- cur_state = new_state;
+ tap_set_state(new_state);
}
-void bitq_path_move(pathmove_command_t *cmd)
+
+void bitq_path_move(pathmove_command_t* cmd)
{
int i;
- for (i=0; i<=cmd->num_states; i++) {
- if (tap_transitions[cur_state].low == cmd->path[i])
+ for (i = 0; i<=cmd->num_states; i++)
+ {
+ if (tap_state_transition(tap_get_state(), FALSE) == cmd->path[i])
bitq_io(0, 0, 0);
- else if (tap_transitions[cur_state].high == cmd->path[i])
+ else if (tap_state_transition(tap_get_state(), TRUE) == cmd->path[i])
bitq_io(1, 0, 0);
- else {
- LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", jtag_state_name(cur_state), jtag_state_name(cmd->path[i]));
+ else
+ {
+ LOG_ERROR( "BUG: %s -> %s isn't a valid TAP transition", tap_state_name(
+ tap_get_state() ), tap_state_name(cmd->path[i]) );
exit(-1);
}
- cur_state = cmd->path[i];
+ tap_set_state(cmd->path[i]);
}
- end_state = cur_state;
+ tap_set_end_state( tap_get_state() );
}
+
void bitq_runtest(int num_cycles)
{
int i;
/* only do a state_move when we're not already in IDLE */
- if (cur_state != TAP_IDLE) bitq_state_move(TAP_IDLE);
+ if (tap_get_state() != TAP_IDLE)
+ bitq_state_move(TAP_IDLE);
/* execute num_cycles */
for (i = 0; i < num_cycles; i++)
bitq_io(0, 0, 0);
/* finish in end_state */
- if (cur_state != end_state) bitq_state_move(end_state);
+ if ( tap_get_state() != tap_get_end_state() )
+ bitq_state_move( tap_get_end_state() );
}
-void bitq_scan_field(scan_field_t *field, int pause)
+
+void bitq_scan_field(scan_field_t* field, int pause)
{
int bit_cnt;
int tdo_req;
- u8 *out_ptr;
- u8 out_mask;
+ u8* out_ptr;
+ u8 out_mask;
- if ( field->in_value || field->in_handler) tdo_req=1;
- else tdo_req=0;
+ if (field->in_value || field->in_handler)
+ tdo_req = 1;
+ else
+ tdo_req = 0;
- if (field->out_value==NULL) {
+ if (field->out_value==NULL)
+ {
/* just send zeros and request data from TDO */
- for (bit_cnt=field->num_bits; bit_cnt>1; bit_cnt--)
+ for (bit_cnt = field->num_bits; bit_cnt>1; bit_cnt--)
bitq_io(0, 0, tdo_req);
+
bitq_io(pause, 0, tdo_req);
}
- else {
+ else
+ {
/* send data, and optionally request TDO */
- out_mask=0x01;
- out_ptr=field->out_value;
- for (bit_cnt=field->num_bits; bit_cnt>1; bit_cnt--) {
- bitq_io(0, ((*out_ptr)&out_mask)!=0, tdo_req);
- if (out_mask==0x80) {
- out_mask=0x01;
+ out_mask = 0x01;
+ out_ptr = field->out_value;
+ for (bit_cnt = field->num_bits; bit_cnt>1; bit_cnt--)
+ {
+ bitq_io(0, ( (*out_ptr) & out_mask )!=0, tdo_req);
+ if (out_mask==0x80)
+ {
+ out_mask = 0x01;
out_ptr++;
}
- else out_mask<<=1;
+ else
+ out_mask <<= 1;
}
- bitq_io(pause, ((*out_ptr)&out_mask)!=0, tdo_req);
+
+ bitq_io(pause, ( (*out_ptr) & out_mask )!=0, tdo_req);
}
- if (pause) {
- bitq_io(0,0,0);
- if (cur_state==TAP_IRSHIFT) cur_state=TAP_IRPAUSE;
- else if (cur_state==TAP_DRSHIFT) cur_state=TAP_DRPAUSE;
+ if (pause)
+ {
+ bitq_io(0, 0, 0);
+ if (tap_get_state()==TAP_IRSHIFT)
+ tap_set_state(TAP_IRPAUSE);
+ else if (tap_get_state()==TAP_DRSHIFT)
+ tap_set_state(TAP_DRPAUSE);
}
}
-void bitq_scan(scan_command_t *cmd)
+
+void bitq_scan(scan_command_t* cmd)
{
int i;
- if (cmd->ir_scan) bitq_state_move(TAP_IRSHIFT);
- else bitq_state_move(TAP_DRSHIFT);
+ if (cmd->ir_scan)
+ bitq_state_move(TAP_IRSHIFT);
+ else
+ bitq_state_move(TAP_DRSHIFT);
- for (i=0; i < cmd->num_fields-1; i++)
+ for (i = 0; i < cmd->num_fields - 1; i++)
bitq_scan_field(&cmd->fields[i], 0);
+
bitq_scan_field(&cmd->fields[i], 1);
}
+
int bitq_execute_queue(void)
{
- jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
+ jtag_command_t* cmd = jtag_command_queue; /* currently processed command */
bitq_in_state.cmd = jtag_command_queue;
bitq_in_state.field_idx = 0;
- bitq_in_state.bit_pos = 0;
- bitq_in_state.status = ERROR_OK;
+ bitq_in_state.bit_pos = 0;
+ bitq_in_state.status = ERROR_OK;
- while (cmd) {
-
- switch (cmd->type) {
-
- case JTAG_END_STATE:
+ while (cmd)
+ {
+ switch (cmd->type)
+ {
+ case JTAG_END_STATE:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
+ LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
#endif
- bitq_end_state(cmd->cmd.end_state->end_state);
- break;
+ bitq_end_state(cmd->cmd.end_state->end_state);
+ break;
- case JTAG_RESET:
+ case JTAG_RESET:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
+ LOG_DEBUG("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
#endif
- if ((cmd->cmd.reset->trst == 1) || (cmd->cmd.reset->srst && (jtag_reset_config & RESET_SRST_PULLS_TRST)))
- {
- cur_state = TAP_RESET;
- }
- bitq_interface->reset(cmd->cmd.reset->trst, cmd->cmd.reset->srst);
- if (bitq_interface->in_rdy()) bitq_in_proc();
- break;
+ if ( (cmd->cmd.reset->trst == 1) || ( cmd->cmd.reset->srst && (jtag_reset_config & RESET_SRST_PULLS_TRST) ) )
+ {
+ tap_set_state(TAP_RESET);
+ }
+ bitq_interface->reset(cmd->cmd.reset->trst, cmd->cmd.reset->srst);
+ if ( bitq_interface->in_rdy() )
+ bitq_in_proc();
+ break;
- case JTAG_RUNTEST:
+ case JTAG_RUNTEST:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
+ LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
#endif
- bitq_end_state(cmd->cmd.runtest->end_state);
- bitq_runtest(cmd->cmd.runtest->num_cycles);
- break;
+ bitq_end_state(cmd->cmd.runtest->end_state);
+ bitq_runtest(cmd->cmd.runtest->num_cycles);
+ break;
- case JTAG_STATEMOVE:
+ case JTAG_STATEMOVE:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
+ LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
#endif
- bitq_end_state(cmd->cmd.statemove->end_state);
- bitq_state_move(end_state); /* uncoditional TAP move */
- break;
+ bitq_end_state(cmd->cmd.statemove->end_state);
+ bitq_state_move( tap_get_end_state() ); /* uncoditional TAP move */
+ break;
- case JTAG_PATHMOVE:
+ case JTAG_PATHMOVE:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("pathmove: %i states, end in %i", cmd->cmd.pathmove->num_states, cmd->cmd.pathmove->path[cmd->cmd.pathmove->num_states - 1]);
+ LOG_DEBUG("pathmove: %i states, end in %i", cmd->cmd.pathmove->num_states,
+ cmd->cmd.pathmove->path[cmd->cmd.pathmove->num_states - 1]);
#endif
- bitq_path_move(cmd->cmd.pathmove);
- break;
+ bitq_path_move(cmd->cmd.pathmove);
+ break;
- case JTAG_SCAN:
+ case JTAG_SCAN:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state);
- if (cmd->cmd.scan->ir_scan) LOG_DEBUG("scan ir");
- else LOG_DEBUG("scan dr");
+ LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state);
+ if (cmd->cmd.scan->ir_scan)
+ LOG_DEBUG("scan ir");
+ else
+ LOG_DEBUG("scan dr");
#endif
- bitq_end_state(cmd->cmd.scan->end_state);
- bitq_scan(cmd->cmd.scan);
- if (cur_state != end_state) bitq_state_move(end_state);
- break;
+ bitq_end_state(cmd->cmd.scan->end_state);
+ bitq_scan(cmd->cmd.scan);
+ if ( tap_get_state() != tap_get_end_state() )
+ bitq_state_move( tap_get_end_state() );
+ break;
- case JTAG_SLEEP:
+ case JTAG_SLEEP:
#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("sleep %i", cmd->cmd.sleep->us);
+ LOG_DEBUG("sleep %i", cmd->cmd.sleep->us);
#endif
- bitq_interface->sleep(cmd->cmd.sleep->us);
- if (bitq_interface->in_rdy()) bitq_in_proc();
- break;
+ bitq_interface->sleep(cmd->cmd.sleep->us);
+ if ( bitq_interface->in_rdy() )
+ bitq_in_proc();
+ break;
- default:
- LOG_ERROR("BUG: unknown JTAG command type encountered");
- exit(-1);
+ default:
+ LOG_ERROR("BUG: unknown JTAG command type encountered");
+ exit(-1);
}
cmd = cmd->next;
@@ -335,11 +389,13 @@
bitq_interface->flush();
bitq_in_proc();
- if (bitq_in_state.cmd) {
+ if (bitq_in_state.cmd)
+ {
LOG_ERROR("missing data from bitq interface");
return ERROR_JTAG_QUEUE_FAILED;
}
- if (bitq_interface->in()>=0) {
+ if (bitq_interface->in()>=0)
+ {
LOG_ERROR("extra data from bitq interface");
return ERROR_JTAG_QUEUE_FAILED;
}
@@ -347,11 +403,12 @@
return bitq_in_state.status;
}
+
void bitq_cleanup(void)
{
if (bitq_in_buffer!=NULL)
{
free(bitq_in_buffer);
- bitq_in_buffer=NULL;
+ bitq_in_buffer = NULL;
}
}
Modified: trunk/src/jtag/dummy.c
===================================================================
--- trunk/src/jtag/dummy.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/jtag/dummy.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -34,9 +34,6 @@
static int clock_count; /* count clocks in any stable state, only stable states */
-
-static tap_state_t tap_state_transition(tap_state_t cur_state, int tms);
-
static u32 dummy_data;
@@ -105,7 +102,7 @@
clock_count = 0;
}
- LOG_DEBUG("dummy_tap: %s", jtag_state_name(dummy_state) );
+ LOG_DEBUG("dummy_tap: %s", tap_state_name(dummy_state) );
#if defined(DEBUG)
if(dummy_state == TAP_DRCAPTURE)
@@ -131,7 +128,7 @@
if (trst || (srst && (jtag_reset_config & RESET_SRST_PULLS_TRST)))
dummy_state = TAP_RESET;
- LOG_DEBUG("reset to: %s", jtag_state_name(dummy_state) );
+ LOG_DEBUG("reset to: %s", tap_state_name(dummy_state) );
}
static int dummy_khz(int khz, int *jtag_speed)
@@ -187,106 +184,3 @@
{
}
-
-/**
- * Function tap_state_transition
- * takes a current TAP state and returns the next state according to the tms value.
- *
- * Even though there is code to duplicate this elsewhere, we do it here a little
- * differently just to get a second opinion, i.e. a verification, on state tracking
- * in that other logic. Plus array lookups without index checking are no favorite thing.
- * This is educational for developers new to TAP controllers.
- */
-static tap_state_t tap_state_transition(tap_state_t cur_state, int tms)
-{
- tap_state_t new_state;
-
- if (tms)
- {
- switch (cur_state)
- {
- case TAP_RESET:
- new_state = cur_state;
- break;
- case TAP_IDLE:
- case TAP_DRUPDATE:
- case TAP_IRUPDATE:
- new_state = TAP_DRSELECT;
- break;
- case TAP_DRSELECT:
- new_state = TAP_IRSELECT;
- break;
- case TAP_DRCAPTURE:
- case TAP_DRSHIFT:
- new_state = TAP_DREXIT1;
- break;
- case TAP_DREXIT1:
- case TAP_DREXIT2:
- new_state = TAP_DRUPDATE;
- break;
- case TAP_DRPAUSE:
- new_state = TAP_DREXIT2;
- break;
- case TAP_IRSELECT:
- new_state = TAP_RESET;
- break;
- case TAP_IRCAPTURE:
- case TAP_IRSHIFT:
- new_state = TAP_IREXIT1;
- break;
- case TAP_IREXIT1:
- case TAP_IREXIT2:
- new_state = TAP_IRUPDATE;
- break;
- case TAP_IRPAUSE:
- new_state = TAP_IREXIT2;
- break;
- default:
- LOG_ERROR( "fatal: invalid argument cur_state=%d", cur_state );
- exit(1);
- break;
- }
- }
- else
- {
- switch (cur_state)
- {
- case TAP_RESET:
- case TAP_IDLE:
- case TAP_DRUPDATE:
- case TAP_IRUPDATE:
- new_state = TAP_IDLE;
- break;
- case TAP_DRSELECT:
- new_state = TAP_DRCAPTURE;
- break;
- case TAP_DRCAPTURE:
- case TAP_DRSHIFT:
- case TAP_DREXIT2:
- new_state = TAP_DRSHIFT;
- break;
- case TAP_DREXIT1:
- case TAP_DRPAUSE:
- new_state = TAP_DRPAUSE;
- break;
- case TAP_IRSELECT:
- new_state = TAP_IRCAPTURE;
- break;
- case TAP_IRCAPTURE:
- case TAP_IRSHIFT:
- case TAP_IREXIT2:
- new_state = TAP_IRSHIFT;
- break;
- case TAP_IREXIT1:
- case TAP_IRPAUSE:
- new_state = TAP_IRPAUSE;
- break;
- default:
- LOG_ERROR( "fatal: invalid argument cur_state=%d", cur_state );
- exit(1);
- break;
- }
- }
-
- return new_state;
-}
Modified: trunk/src/jtag/ft2232.c
===================================================================
--- trunk/src/jtag/ft2232.c 2009-02-03 04:30:33 UTC (rev 1365)
+++ trunk/src/jtag/ft2232.c 2009-02-03 05:59:17 UTC (rev 1366)
@@ -1,25 +1,34 @@
/***************************************************************************
- * Copyright (C) 2004, 2006 by Dominic Rath *
- * Dom...@gm... *
- * *
- * Copyright (C) 2008 by Spencer Oliver *
- * sp...@sp... *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
+* Copyright (C) 2004, 2006 by Dominic Rath *
+* Dom...@gm... *
+* *
+* Copyright (C) 2008 by Spencer Oliver *
+* sp...@sp... *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+* *
+* This program is distributed in the hope that it will be useful, *
+* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+* GNU General Public License for more details. *
+* *
+* You should have received a copy of the GNU General Public License *
+* along with this program; if not, write to the *
+* Free Software Foundation, Inc., *
+* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+***************************************************************************/
+
+
+/* This code uses information contained in the MPSSE specification which was
+ * found here:
+ * http://www.ftdichip.com/Documents/AppNotes/AN2232C-01_MPSSE_Cmnd.pdf
+ * Hereafter this is called the "MPSSE Spec".
+ */
+
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -64,17 +73,17 @@
int ft2232_execute_queue(void);
int ft2232_speed(int speed);
-int ft2232_speed_div(int speed, int *khz);
-int ft2232_khz(int khz, int *jtag_speed);
-int ft2232_register_commands(struct command_context_s *cmd_ctx);
+int ft2232_speed_div(int speed, int* khz);
+int ft2232_khz(int khz, int* jtag_speed);
+int ft2232_register_commands(struct command_context_s* cmd_ctx);
int ft2232_init(void);
int ft2232_quit(void);
-int ft2232_handle_device_desc_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int ft2232_handle_serial_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int ft2232_handle_layout_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int ft2232_handle_vid_pid_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int ft2232_handle_latency_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
/**
@@ -85,36 +94,36 @@
* @param num_cycles is the count of clocks cycles to send.
* @return int - ERROR_OK or ERROR_JTAG_QUEUE_FAILED
*/
-static int ft2232_stableclocks(int num_cycles, jtag_command_t *cmd);
+static int ft2232_stableclocks(int num_cycles, jtag_command_t* cmd);
-char *ft2232_device_desc = NULL;
-char *ft2232_serial = NULL;
-char *ft2232_layout = NULL;
+char* ft2232_device_desc = NULL;
+char* ft2232_serial = NULL;
+char* ft2232_layout = NULL;
unsigned char ft2232_latency = 2;
-#define MAX_USB_IDS 8
+#define MAX_USB_IDS 8
/* vid = pid = 0 marks the end of the list */
-static u16 ft2232_vid[MAX_USB_IDS+1] = { 0x0403, 0 };
-static u16 ft2232_pid[MAX_USB_IDS+1] = { 0x6010, 0 };
+static u16 ft2232_vid[MAX_USB_IDS + 1] = { 0x0403, 0 };
+static u16 ft2232_pid[MAX_USB_IDS + 1] = { 0x6010, 0 };
typedef struct ft2232_layout_s
{
char* name;
- int(*init)(void);
- void(*reset)(int trst, int srst);
- void(*blink)(void);
+ int (*init)(void);
+ void (*reset)(int trst, int srst);
+ void (*blink)(void);
} ft2232_layout_t;
/* init procedures for supported layouts */
-int usbjtag_init(void);
-int jtagkey_init(void);
-int olimex_jtag_init(void);
-int flyswatter_init(void);
-int turtle_init(void);
-int comstick_init(void);
-int stm32stick_init(void);
-int axm0432_jtag_init(void);
+int usbjtag_init(void);
+int jtagkey_init(void);
+int olimex_jtag_init(void);
+int flyswatter_init(void);
+int turtle_init(void);
+int comstick_init(void);
+int stm32stick_init(void);
+int axm0432_jtag_init(void);
/* reset procedures for supported layouts */
void usbjtag_reset(int trst, int srst);
@@ -130,68 +139,68 @@
void olimex_jtag_blink(void);
void turtle_jtag_blink(void);
-ft2232_layout_t ft2232_layouts[] =
+ft2232_layout_t ft2232_layouts[] =
{
- {"usbjtag", usbjtag_init, usbjtag_reset, NULL},
- {"jtagkey", jtagkey_init, jtagkey_reset, NULL},
- {"jtagkey_prototype_v1", jtagkey_init, jtagkey_reset, NULL},
- {"oocdlink", jtagkey_init, jtagkey_reset, NULL},
- {"signalyzer", usbjtag_init, usbjtag_reset, NULL},
- {"evb_lm3s811", usbjtag_init, usbjtag_reset, NULL},
- {"olimex-jtag", olimex_jtag_init, olimex_jtag_reset, olimex_jtag_blink},
- {"flyswatter", flyswatter_init, flyswatter_reset, NULL},
- {"turtelizer2", turtle_init, turtle_reset, turtle_jtag_blink},
- {"comstick", comstick_init, comstick_reset, NULL},
- {"stm32stick", stm32stick_init, stm32stick_reset, NULL},
- {"axm0432_jtag", axm0432_jtag_init, axm0432_jtag_reset, NULL},
- {NULL, NULL, NULL},
+ { "usbjtag", usbjtag_init, usbjtag_reset, NULL },
+ { "jtagkey", jtagkey_init, jtagkey_reset, NULL },
+ { "jtagkey_prototype_v1", jtagkey_init, jtagkey_reset, NULL },
+ { "oocdlink", jtagkey_init, jtagkey_reset, NULL },
+ { "signalyzer", usbjtag_init, usbjtag_reset, NULL },
+ { "evb_lm3s811", usbjtag_init, usbjtag_reset, NULL },
+ { "olimex-jtag", olimex_jtag_init, olimex_jtag_reset, olimex_jtag_blink },
+ { "flyswatter", flyswatter_init, flyswatter_reset, NULL },
+ { "turtelizer2", turtle_init, turtle_reset, turtle_jtag_blink },
+ { "comstick", comstick_init, comstick_reset, NULL },
+ { "stm32stick", stm32stick_init, stm32stick_reset, NULL },
+ { "axm0432_jtag", axm0432_jtag_init, axm0432_jtag_reset, NULL },
+ { NULL, NULL, NULL },
};
-static u8 nTRST, nTRSTnOE, nSRST, nSRSTnOE;
+static u8 nTRST, nTRSTnOE, nSRST, nSRSTnOE;
-static ft2232_layout_t *layout;
-static u8 low_output = 0x0;
-static u8 low_direction = 0x0;
-static u8 high_output = 0x0;
-static u8 high_direction = 0x0;
+static ft2232_layout_t* layout;
+static u8 low_output = 0x0;
+static u8 low_direction = 0x0;
+static u8 high_output = 0x0;
+static u8 high_direction = 0x0;
#if BUILD_FT2232_FTD2XX == 1
-static FT_HANDLE ftdih = NULL;
+static FT_HANDLE ftdih = NULL;
#elif BUILD_FT2232_LIBFTDI == 1
static struct ftdi_context ftdic;
#endif
-static jtag_command_t *first_unsent; /* next command that has to be sent */
-static int require_send;
+static jtag_command_t* first_unsent; /* next command that has to be sent */
+static int require_send;
-static u8 *ft2232_buffer = NULL;
-static int ft2232_buffer_size = 0;
-static int ft2232_read_pointer = 0;
-static int ft2232_expect_read = 0;
+static u8* ft2232_buffer = NULL;
+static int ft2232_buffer_size = 0;
+static int ft2232_read_pointer = 0;
+static int ft2232_expect_read = 0;
-#define FT2232_BUFFER_SIZE 131072
-#define BUFFER_ADD ft2232_buffer[ft2232_buffer_size++]
-#define BUFFER_READ ft2232_buffer[ft2232_read_pointer++]
+#define FT2232_BUFFER_SIZE 131072
+#define BUFFER_ADD ft2232_buffer[ft2232_buffer_size++]
+#define BUFFER_READ ft2232_buffer[ft2232_read_pointer++]
jtag_interface_t ft2232_interface =
{
- .name = "ft2232",
+ .name = "ft2232",
.execute_queue = ft2232_execute_queue,
- .speed = ft2232_speed,
+ .speed = ft2232_speed,
.speed_div = ft2232_speed_div,
- .khz = ft2232_khz,
- .register_commands = ft2232_register_commands,
+ .khz = ft2232_khz,
+ .register_commands = ft2232_register_commands,
.init = ft2232_init,
.quit = ft2232_quit,
};
-int ft2232_write(u8 *buf, int size, u32* bytes_written)
+int ft2232_write(u8* buf, int size, u32* bytes_written)
{
#if BUILD_FT2232_FTD2XX == 1
FT_STATUS status;
- DWORD dw_bytes_written;
- if ((status = FT_Write(ftdih, buf, size, &dw_bytes_written)) != FT_OK)
+ DWORD dw_bytes_written;
+ if ( ( status = FT_Write(ftdih, buf, size, &dw_bytes_written) ) != FT_OK )
{
*bytes_written = dw_bytes_written;
LOG_ERROR("FT_Write returned: %lu", status);
@@ -204,10 +213,10 @@
}
#elif BUILD_FT2232_LIBFTDI == 1
int retval;
- if ((retval = ftdi_write_data(&ftdic, buf, size)) < 0)
+ if ( ( retval = ftdi_write_data(&ftdic, buf, size) ) < 0 )
{
*bytes_written = 0;
- LOG_ERROR("ftdi_write_data: %s", ftdi_get_error_string(&ftdic));
+ LOG_ERROR( "ftdi_write_data: %s", ftdi_get_error_string(&ftdic) );
return ERROR_JTAG_DEVICE_ERROR;
}
else
@@ -218,18 +227,19 @@
#endif
}
+
int ft2232_read(u8* buf, int size, u32* bytes_read)
{
#if BUILD_FT2232_FTD2XX == 1
- DWORD dw_bytes_read;
+ DWORD dw_bytes_read;
FT_STATUS status;
- int timeout = 5;
+ int timeout = 5;
*bytes_read = 0;
- while ((*bytes_read < size) && timeout--)
+ while ( (*bytes_read < size) && timeout-- )
{
- if ((status = FT_Read(ftdih, buf + *bytes_read, size -
- *bytes_read, &dw_bytes_read)) != FT_OK)
+ if ( ( status = FT_Read(ftdih, buf + *bytes_read, size -
+ *bytes_read, &dw_bytes_read) ) != FT_OK )
{
*bytes_read = 0;
LOG_ERROR("FT_Read returned: %lu", status);
@@ -237,21 +247,23 @@
}
*bytes_read += dw_bytes_read;
}
+
#elif BUILD_FT2232_LIBFTDI == 1
int retval;
int timeout = 100;
*bytes_read = 0;
- while ((*bytes_read < size) && timeout--)
+ while ( (*bytes_read < size) && timeout-- )
{
- if ((retval = ftdi_read_data(&ftdic, buf + *bytes_read, size - *bytes_read)) < 0)
+ if ( ( retval = ftdi_read_data(&ftdic, buf + *bytes_read, size - *bytes_read) ) < 0 )
{
*bytes_read = 0;
- LOG_ERROR("ftdi_read_data: %s", ftdi_get_error_string(&ftdic));
+ LOG_ERROR( "ftdi_read_data: %s", ftdi_get_error_string(&ftdic) );
return ERROR_JTAG_DEVICE_ERROR;
}
*bytes_read += retval;
}
+
#endif
if (*bytes_read < size)
@@ -263,18 +275,19 @@
return ERROR_OK;
}
+
int ft2232_speed(int speed)
{
- u8 buf[3];
+ u8 buf[3];
int retval;
u32 bytes_written;
- buf[0] = 0x86; /* command "set divisor" */
- buf[1] = speed & 0xff; /* valueL (0=6MHz, 1=3MHz, 2=2.0MHz, ...*/
- buf[2] = (speed >> 8) & 0xff; /* valueH */
+ buf[0] = 0x86; /* command "set divisor" */
+ buf[1] = speed & 0xff; /* valueL (0=6MHz, 1=3MHz, 2=2.0MHz, ...*/
+ buf[2] = (speed >> 8) & 0xff; /* valueH */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
- if (((retval = ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
+ if ( ( ( retval = ft2232_write(buf, 3, &bytes_written) ) != ERROR_OK ) || (bytes_written != 3) )
{
LOG_ERROR("couldn't set FT2232 TCK speed");
return retval;
@@ -283,24 +296,27 @@
return ERROR_OK;
}
-int ft2232_speed_div(int speed, int *khz)
+
+int ft2232_speed_div(int speed, int* khz)
{
/* Take a look in the FT2232 manual,
* AN2232C-01 Command Processor for
* MPSSE and MCU Host Bus. Chapter 3.8 */
- *khz = 6000 / (1+speed);
+ *khz = 6000 / (1 + speed);
return ERROR_OK;
}
-int ft2232_khz(int khz, int *jtag_speed)
+
+int ft2232_khz(int khz, int* jtag_speed)
{
if (khz==0)
{
LOG_ERROR("RCLK not supported");
return ERROR_FAIL;
}
+
/* Take a look in the FT2232 manual,
* AN2232C-01 Command Processor for
* MPSSE and MCU Host Bus. Chapter 3.8
@@ -333,25 +349,27 @@
return ERROR_OK;
}
-int ft2232_register_commands(struct command_context_s *cmd_ctx)
+
+int ft2232_register_commands(struct command_context_s* cmd_ctx)
{
register_command(cmd_ctx, NULL, "ft2232_device_desc", ft2232_handle_device_desc_command,
- COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device");
+ COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device");
register_command(cmd_ctx, NULL, "ft2232_serial", ft2232_handle_serial_command,
- COMMAND_CONFIG, "the serial number of the FTDI FT2232 device");
+ COMMAND_CONFIG, "the serial number of the FTDI FT2232 device");
register_command(cmd_ctx, NULL, "ft2232_layout", ft2232_handle_layout_command,
- COMMAND_CONFIG, "the layout of the FT2232 GPIO signals used to control output-enables and reset signals");
+ COMMAND_CONFIG, "the layout of the FT2232 GPIO signals used to control output-enables and reset signals");
register_command(cmd_ctx, NULL, "ft2232_vid_pid", ft2232_handle_vid_pid_command,
- COMMAND_CONFIG, "the vendor ID and product ID of the FTDI FT2232 device");
+ COMMAND_CONFIG, "the vendor ID and product ID of the FTDI FT2232 device");
register_command(cmd_ctx, NULL, "ft2232_latency", ft2232_handle_latency_command,
- COMMAND_CONFIG, "set the FT2232 latency timer to a new value");
+ COMMAND_CONFIG, "set the FT2232 latency timer to a new value");
return ERROR_OK;
}
-void ft2232_end_state(enum tap_state state)
+
+void ft2232_end_state(tap_state_t state)
{
- if (tap_move_map[state] != -1)
- end_state = state;
+ if (tap_is_state_stable(state))
+ tap_set_end_state(state);
else
{
LOG_ERROR("BUG: %i is not a valid end state", state);
@@ -359,13 +377,14 @@
}
}
+
void ft2232_read_scan(enum scan_type type, u8* buffer, int scan_size)
{
int num_bytes = (scan_size + 7) / 8;
int bits_left = scan_size;
- int cur_byte = 0;
+ int cur_byte = 0;
- while(num_bytes-- > 1)
+ while (num_bytes-- > 1)
{
buffer[cur_byte] = BUFFER_READ;
cur_byte++;
@@ -379,15 +398,15 @@
buffer[cur_byte] = BUFFER_READ >> 1;
}
- buffer[cur_byte] = (buffer[cur_byte] | ((BUFFER_READ & 0x02) << 6)) >> (8 - bits_left);
-
+ buffer[cur_byte] = ( buffer[cur_byte] | ( (BUFFER_READ & 0x02) << 6 ) ) >> (8 - bits_left);
}
+
void ft2232_debug_dump_buffer(void)
{
- int i;
- char line[256];
- char *line_p = line;
+ int i;
+ char line[256];
+ char* line_p = line;
for (i = 0; i < ft2232_buffer_size; i++)
{
@@ -403,19 +422,20 @@
LOG_DEBUG("%s", line);
}
-int ft2232_send_and_recv(jtag_command_t *first, jtag_command_t *last)
+
+int ft2232_send_and_recv(jtag_command_t* first, jtag_command_t* last)
{
- jtag_command_t *cmd;
- u8 *buffer;
- int scan_size;
- enum scan_type type;
- int retval;
- u32 bytes_written;
- u32 bytes_read;
+ jtag_command_t* cmd;
+ u8* buffer;
+ int scan_size;
+ enum scan_type type;
+ int retval;
+ u32 bytes_written;
+ u32 bytes_read;
#ifdef _DEBUG_USB_IO_
- struct timeval start, inter, inter2, end;
- struct timeval d_inter, d_inter2, d_end;
+ struct timeval start, inter, inter2, end;
+ struct timeval d_inter, d_inter2, d_end;
#endif
#ifdef _DEBUG_USB_COMMS_
@@ -427,7 +447,7 @@
gettimeofday(&start, NULL);
#endif
- if ((retval = ft2232_write(ft2232_buffer, ft2232_buffer_size, &bytes_written)) != ERROR_OK)
+ if ( ( retval = ft2232_write(ft2232_buffer, ft2232_buffer_size, &bytes_written) ) != ERROR_OK )
{
LOG_ERROR("couldn't write MPSSE commands to FT2232");
return retval;
@@ -446,7 +466,7 @@
gettimeofday(&inter2, NULL);
#endif
- if ((retval = ft2232_read(ft2232_buffer, ft2232_expect_read, &bytes_read)) != ERROR_OK)
+ if ( ( retval = ft2232_read(ft2232_buffer, ft2232_expect_read, &bytes_read) ) != ERROR_OK )
{
LOG_ERROR("couldn't read from FT2232");
return retval;
@@ -459,15 +479,18 @@
timeval_subtract(&d_inter2, &inter2, &start);
timeval_subtract(&d_end, &end, &start);
- LOG_INFO("inter: %i.%06i, inter2: %i.%06i end: %i.%06i", d_inter.tv_sec, d_inter.tv_usec, d_inter2.tv_sec, d_inter2.tv_usec, d_end.tv_sec, d_end.tv_usec);
+ LOG_INFO("inter: %i.%06i, inter2: %i.%06i end: %i.%06i", d_inter.tv_sec, d_inter.tv_usec, d_inter2.tv_sec,
+ d_inter2.tv_usec, d_end.tv_sec,
+ d_end.tv_usec);
#endif
-
ft2232_buffer_size = bytes_read;
if (ft2232_expect_read != ft2232_buffer_size)
{
- LOG_ERROR("ft2232_expect_read (%i) != ft2232_buffer_size (%i) (%i retries)", ft2232_expect_read, ft2232_buffer_size, 100 - timeout);
+ LOG_ERROR("ft2232_expect_read (%i) != ft2232_buffer_size (%i) (%i retries)", ft2232_expect_read,
+ ft2232_buffer_size,
+ 100 - timeout);
ft2232_debug_dump_buffer();
exit(-1);
@@ -479,7 +502,7 @@
#endif
}
- ft2232_expect_read = 0;
+ ft2232_expect_read = 0;
ft2232_read_pointer = 0;
/* return ERROR_OK, unless a jtag_read_buffer returns a failed check
@@ -492,21 +515,23 @@
{
switch (cmd->type)
{
- case JTAG_SCAN:
- type = jtag_scan_type(cmd->cmd.scan);
- if (type != SCAN_OUT)
- {
- scan_size = jtag_scan_size(cmd->cmd.scan);
- buffer = calloc(CEIL(scan_size, 8), 1);
- ft2232_read_scan(type, buffer, scan_size);
- if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
- retval = ERROR_JTAG_QUEUE_FAILED;
- free(buffer);
- }
- break;
- default:
- break;
+ case JTAG_SCAN:
+ type = jtag_scan_type(cmd->cmd.scan);
+ if (type != SCAN_OUT)
+ {
+ scan_size = jtag_scan_size(cmd->cmd.scan);
+ buffer = calloc(CEIL(scan_size, 8), 1);
+ ft2232_read_scan(type, buffer, scan_size);
+ if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
+ retval = ERROR_JTAG_QUEUE_FAILED;
+ free(buffer);
+ }
+ break;
+
+ default:
+ break;
}
+
cmd = cmd->next;
}
@@ -515,71 +540,76 @@
return retval;
}
-void ft2232_add_pathmove(pathmove_command_t *cmd)
+
+void ft2232_add_pathmove(pathmove_command_t* cmd)
{
int num_states = cmd->num_states;
- u8 tms_byte;
- int state_count;
+ int state_count = 0;
- state_count = 0;
while (num_states)
{
+ u8 tms_byte = 0; /* zero this on each MPSSE batch */
+
int bit_count = 0;
int nu...
[truncated message content] |
|
From: <kc...@ma...> - 2009-02-03 05:30:48
|
Author: kc8apf Date: 2009-02-03 05:30:33 +0100 (Tue, 03 Feb 2009) New Revision: 1365 Added: trunk/Doxyfile Log: Doxygen config file Added: trunk/Doxyfile =================================================================== --- trunk/Doxyfile 2009-02-03 04:27:48 UTC (rev 1364) +++ trunk/Doxyfile 2009-02-03 04:30:33 UTC (rev 1365) @@ -0,0 +1,1364 @@ +# Doxyfile 1.5.5 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = OpenOCD + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, +# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, +# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, +# and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text " + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = *.h \ + *.c + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = YES + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = doxygen + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = src/target \ + src/pld \ + src/xsvf \ + src/jtag \ + src/flash \ + src/flash/at91sam7x \ + src/helper \ + src/server + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = *.h + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is enabled by default, which results in a transparent +# background. Warning: Depending on the platform used, enabling this option +# may lead to badly anti-aliased labels on the edges of a graph (i.e. they +# become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO Property changes on: trunk/Doxyfile ___________________________________________________________________ Name: svn:eol-style + native |
|
From: <kc...@ma...> - 2009-02-03 05:27:56
|
Author: kc8apf
Date: 2009-02-03 05:27:48 +0100 (Tue, 03 Feb 2009)
New Revision: 1364
Added:
trunk/tools/uncrustify1.sh
trunk/uncrustify.cfg
Log:
Add uncrustify config file and helper script
Added: trunk/tools/uncrustify1.sh
===================================================================
--- trunk/tools/uncrustify1.sh 2009-01-28 13:08:06 UTC (rev 1363)
+++ trunk/tools/uncrustify1.sh 2009-02-03 04:27:48 UTC (rev 1364)
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Run the beautifier "Uncrustify" on a single file.
+# Because the file "uncrustify.cfg" only exists in the top level of the project
+# you should run this script from there so this script can find your uncrustify.cfg file.
+
+
+UNCRUSTIFYTMP=/tmp/uncrustify.tmp
+
+
+if [ ! -f uncrustify.cfg ]; then
+ echo "unable to find uncrustify.cfg, aborting"
+ exit 1
+fi
+
+UNCRUSTIFYBIN=`which uncrustify`
+
+if [ "$UNCRUSTIFYBIN" = "" ]; then
+ echo "you must specify uncrustify in your PATH, I cannot find it"
+ exit 2
+fi
+
+if [ $# -lt 1 ]; then
+ echo "Usage $0 <filename .c or .h>"
+ exit 3
+fi
+
+uncrustify -c uncrustify.cfg <$1 >$UNCRUSTIFYTMP
+
+# you can comment this out while tuning the uncrustify.cfg file:
+mv $UNCRUSTIFYTMP $1
Property changes on: trunk/tools/uncrustify1.sh
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/x-sh
Name: svn:eol-style
+ native
Added: trunk/uncrustify.cfg
===================================================================
--- trunk/uncrustify.cfg 2009-01-28 13:08:06 UTC (rev 1363)
+++ trunk/uncrustify.cfg 2009-02-03 04:27:48 UTC (rev 1364)
@@ -0,0 +1,1161 @@
+# Uncrustify 0.51+svn
+
+#
+# General options
+#
+
+# The type of line endings
+newlines = auto # auto/lf/crlf/cr
+
+# The original size of tabs in the input
+input_tab_size = 4 # number
+
+# The size of tabs in the output (only used if align_with_tabs=true)
+output_tab_size = 4 # number
+
+# The ascii value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
+string_escape_char = 92 # number
+
+# Alternate string escape char for Pawn. Only works right before the quote char.
+string_escape_char2 = 0 # number
+
+#
+# Indenting
+#
+
+# The number of columns to indent per level.
+# Usually 2, 3, 4, or 8.
+indent_columns = 4 # number
+
+# How to use tabs when indenting code
+# 0=spaces only
+# 1=indent with tabs, align with spaces
+# 2=indent and align with tabs
+indent_with_tabs = 1 # number
+
+# Whether to indent strings broken by '\' so that they line up
+indent_align_string = true # false/true
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=True
+indent_xml_string = 0 # number
+
+# Spaces to indent '{' from level
+indent_brace = 0 # number
+
+# Whether braces are indented to the body level
+indent_braces = false # false/true
+
+# Disabled indenting function braces if indent_braces is true
+indent_braces_no_func = false # false/true
+
+# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # false/true
+
+# Whether the 'namespace' body is indented
+indent_namespace = false # false/true
+
+# Whether the 'extern "C"' body is indented
+indent_extern = false # false/true
+
+# Whether the 'class' body is indented
+indent_class = true # false/true
+
+# Whether to indent the stuff after a leading class colon
+indent_class_colon = false # false/true
+
+# False=treat 'else\nif' as 'else if' for indenting purposes
+# True=indent the 'if' one level
+indent_else_if = true # false/true
+
+# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
+indent_var_def_blk = 0 # number
+
+# True: indent continued function call parameters one indent level
+# False: align parameters under the open paren
+indent_func_call_param = true # false/true
+
+# Same as indent_func_call_param, but for function defs
+indent_func_def_param = true # false/true
+
+# Same as indent_func_call_param, but for function protos
+indent_func_proto_param = true # false/true
+
+# Same as indent_func_call_param, but for class declarations
+indent_func_class_param = false # false/true
+
+# Same as indent_func_call_param, but for class variable constructors
+indent_func_ctor_var_param = false # false/true
+
+# Same as indent_func_call_param, but for templates
+indent_template_param = false # false/true
+
+# Double the indent for indent_func_xxx_param options
+indent_func_param_double = true # false/true
+
+# Indentation column for standalone 'const' function decl/proto qualifier
+indent_func_const = 0 # number
+
+# Indentation column for standalone 'throw' function decl/proto qualifier
+indent_func_throw = 0 # number
+
+# The number of spaces to indent a continued '->' or '.'
+# Usually set to 0, 1, or indent_columns.
+indent_member = 0 # number
+
+# Spaces to indent single line ('//') comments on lines before code
+indent_sing_line_comments = 0 # number
+
+# If set, will indent trailing single line ('//') comments relative
+# to the code instead of trying to keep the same absolute column
+indent_relative_single_line_comments = false # false/true
+
+# Spaces to indent 'case' from 'switch'
+# Usually 0 or indent_columns.
+indent_switch_case = 0 # number
+
+# Spaces to shift the 'case' line, without affecting any other lines
+# Usually 0.
+indent_case_shift = 0 # number
+
+# Spaces to indent '{' from 'case'.
+# By default, the brace will appear under the 'c' in case.
+# Usually set to 0 or indent_columns.
+indent_case_brace = 0 # number
+
+# Whether to indent comments found in first column
+indent_col1_comment = false # false/true
+
+# How to indent goto labels
+# >0 : absolute column where 1 is the leftmost column
+# <=0 : subtract from brace indent
+indent_label = 1 # number
+
+# Same as indent_label, but for access specifiers that are followed by a colon
+indent_access_spec = 1 # number
+
+# Indent the code after an access specifier by one level.
+# If set, this option forces 'indent_access_spec=0'
+indent_access_spec_body = false # false/true
+
+# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
+indent_paren_nl = false # false/true
+
+# Controls the indent of a close paren after a newline.
+# 0: Indent to body level
+# 1: Align under the open paren
+# 2: Indent to the brace level
+indent_paren_close = 0 # number
+
+# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
+indent_comma_paren = false # false/true
+
+# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
+indent_bool_paren = false # false/true
+
+# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
+indent_square_nl = false # false/true
+
+# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
+indent_preserve_sql = false # false/true
+
+# Align continued statements at the '='. Default=True
+# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
+indent_align_assign = true # false/true
+
+#
+# Spacing options
+#
+
+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
+sp_arith = force # ignore/add/remove/force
+
+# Add or remove space around assignment operator '=', '+=', etc
+sp_assign = force # ignore/add/remove/force
+
+# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force
+
+# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force
+
+# Add or remove space around assignment '=' in enum
+sp_enum_assign = force # ignore/add/remove/force
+
+# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force
+
+# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force
+
+# Add or remove space around boolean operators '&&' and '||'
+sp_bool = ignore # ignore/add/remove/force
+
+# Add or remove space around compare operator '<', '>', '==', etc
+sp_compare = ignore # ignore/add/remove/force
+
+# Add or remove space inside '(' and ')'
+sp_inside_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between nested parens
+sp_paren_paren = add # ignore/add/remove/force
+
+# Whether to balance spaces inside nested parens
+sp_balance_nested_parens = true # false/true
+
+# Add or remove space between ')' and '{'
+sp_paren_brace = add # ignore/add/remove/force
+
+# Add or remove space before pointer star '*'
+sp_before_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space before pointer star '*' that isn't followed by a variable name
+# If set to 'ignore', sp_before_ptr_star is used instead.
+sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force
+
+# Add or remove space between pointer stars '*'
+sp_between_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space after pointer star '*', if followed by a word.
+sp_after_ptr_star = add # ignore/add/remove/force
+
+# Add or remove space after a pointer star '*', if followed by a func proto/def.
+sp_after_ptr_star_func = add # ignore/add/remove/force
+
+# Add or remove space before a pointer star '*', if followed by a func proto/def.
+sp_before_ptr_star_func = remove # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&'
+sp_before_byref = remove # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&' that isn't followed by a variable name
+# If set to 'ignore', sp_before_byref is used instead.
+sp_before_unnamed_byref = ignore # ignore/add/remove/force
+
+# Add or remove space after reference sign '&', if followed by a word.
+sp_after_byref = force # ignore/add/remove/force
+
+# Add or remove space after a reference sign '&', if followed by a func proto/def.
+sp_after_byref_func = ignore # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&', if followed by a func proto/def.
+sp_before_byref_func = ignore # ignore/add/remove/force
+
+# Add or remove space between type and word
+sp_after_type = force # ignore/add/remove/force
+
+# Add or remove space in 'template <' vs 'template<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = ignore # ignore/add/remove/force
+
+# Add or remove space before '<>'
+sp_before_angle = ignore # ignore/add/remove/force
+
+# Add or remove space inside '<' and '>'
+sp_inside_angle = ignore # ignore/add/remove/force
+
+# Add or remove space after '<>'
+sp_after_angle = ignore # ignore/add/remove/force
+
+# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
+sp_angle_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between '<>' and a word as in 'List<byte> m;'
+sp_angle_word = ignore # ignore/add/remove/force
+
+# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
+sp_before_sparen = force # ignore/add/remove/force
+
+# Add or remove space inside if-condition '(' and ')'
+sp_inside_sparen = remove # ignore/add/remove/force
+
+# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
+sp_inside_sparen_close = remove # ignore/add/remove/force
+
+# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
+sp_after_sparen = ignore # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
+sp_sparen_brace = add # ignore/add/remove/force
+
+# Add or remove space between 'invariant' and '(' in the D language.
+sp_invariant_paren = ignore # ignore/add/remove/force
+
+# Add or remove space after the ')' in 'invariant (C) c' in the D language.
+sp_after_invariant_paren = ignore # ignore/add/remove/force
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
+sp_special_semi = add # ignore/add/remove/force
+
+# Add or remove space before ';'
+sp_before_semi = remove # ignore/add/remove/force
+
+# Add or remove space before ';' in non-empty 'for' statements
+sp_before_semi_for = remove # ignore/add/remove/force
+
+# Add or remove space before a semicolon of an empty part of a for statment.
+sp_before_semi_for_empty = add # ignore/add/remove/force
+
+# Add or remove space after the final semicolon of an empty part of a for statment: for ( ; ; <here> ).
+sp_after_semi_for_empty = ignore # ignore/add/remove/force
+
+# Add or remove space before '[' (except '[]')
+sp_before_square = remove # ignore/add/remove/force
+
+# Add or remove space before '[]'
+sp_before_squares = ignore # ignore/add/remove/force
+
+# Add or remove space inside '[' and ']'
+sp_inside_square = remove # ignore/add/remove/force
+
+# Add or remove space after ','
+sp_after_comma = force # ignore/add/remove/force
+
+# Add or remove space before ','
+sp_before_comma = remove # ignore/add/remove/force
+
+# Add or remove space after class ':'
+sp_after_class_colon = ignore # ignore/add/remove/force
+
+# Add or remove space before class ':'
+sp_before_class_colon = ignore # ignore/add/remove/force
+
+# Add or remove space before case ':'
+sp_before_case_colon = remove # ignore/add/remove/force
+
+# Add or remove space between 'operator' and operator sign
+sp_after_operator = ignore # ignore/add/remove/force
+
+# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
+sp_after_operator_sym = ignore # ignore/add/remove/force
+
+# Add or remove space after C/D cast, ie 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
+sp_after_cast = force # ignore/add/remove/force
+
+# Add or remove spaces inside cast parens
+sp_inside_paren_cast = remove # ignore/add/remove/force
+
+# Add or remove space between the type and open paren in a C++ cast, ie 'int(exp)' vs 'int (exp)'
+sp_cpp_cast_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between 'sizeof' and '('
+sp_sizeof_paren = remove # ignore/add/remove/force
+
+# Add or remove space after the tag keyword (Pawn)
+sp_after_tag = ignore # ignore/add/remove/force
+
+# Add or remove space inside enum '{' and '}'
+sp_inside_braces_enum = force # ignore/add/remove/force
+
+# Add or remove space inside struct/union '{' and '}'
+sp_inside_braces_struct = add # ignore/add/remove/force
+
+# Add or remove space inside '{' and '}'
+sp_inside_braces = add # ignore/add/remove/force
+
+# Add or remove space inside '{}'
+sp_inside_braces_empty = ignore # ignore/add/remove/force
+
+# Add or remove space between return type and function name
+# A minimum of 1 is forced except for pointer return types.
+sp_type_func = add # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function declaration
+sp_func_proto_paren = remove # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function definition
+sp_func_def_paren = remove # ignore/add/remove/force
+
+# Add or remove space inside empty function '()'
+sp_inside_fparens = remove # ignore/add/remove/force
+
+# Add or remove space inside function '(' and ')'
+sp_inside_fparen = remove # ignore/add/remove/force
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen = ignore # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of function
+sp_fparen_brace = add # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function calls
+sp_func_call_paren = remove # ignore/add/remove/force
+
+# Add or remove space between the user function name and '(' on function calls
+# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
+sp_func_call_user_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between a constructor/destructor and the open paren
+sp_func_class_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'return' and '('
+sp_return_paren = add # ignore/add/remove/force
+
+# Add or remove space between '__attribute__' and '('
+sp_attribute_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
+sp_defined_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'throw' and '(' in 'throw (something)'
+sp_throw_paren = ignore # ignore/add/remove/force
+
+# Add or remove space between macro and value
+sp_macro = add # ignore/add/remove/force
+
+# Add or remove space between macro function ')' and value
+sp_macro_func = add # ignore/add/remove/force
+
+# Add or remove space between 'else' and '{' if on the same line
+sp_else_brace = add # ignore/add/remove/force
+
+# Add or remove space between '}' and 'else' if on the same line
+sp_brace_else = ignore # ignore/add/remove/force
+
+# Add or remove space between '}' and the name of a typedef on the same line
+sp_brace_typedef = ignore # ignore/add/remove/force
+
+# Add or remove space between 'catch' and '{' if on the same line
+sp_catch_brace = add # ignore/add/remove/force
+
+# Add or remove space between '}' and 'catch' if on the same line
+sp_brace_catch = add # ignore/add/remove/force
+
+# Add or remove space between 'finally' and '{' if on the same line
+sp_finally_brace = add # ignore/add/remove/force
+
+# Add or remove space between '}' and 'finally' if on the same line
+sp_brace_finally = add # ignore/add/remove/force
+
+# Add or remove space between 'try' and '{' if on the same line
+sp_try_brace = add # ignore/add/remove/force
+
+# Add or remove space between get/set and '{' if on the same line
+sp_getset_brace = add # ignore/add/remove/force
+
+# Add or remove space before the '::' operator
+sp_before_dc = ignore # ignore/add/remove/force
+
+# Add or remove space after the '::' operator
+sp_after_dc = ignore # ignore/add/remove/force
+
+# Add or remove around the D named array initializer ':' operator
+sp_d_array_colon = ignore # ignore/add/remove/force
+
+# Add or remove space after the '!' (not) operator.
+sp_not = remove # ignore/add/remove/force
+
+# Add or remove space after the '~' (invert) operator.
+sp_inv = remove # ignore/add/remove/force
+
+# Add or remove space after the '&' (address-of) operator.
+# This does not affect the spacing after a '&' that is part of a type.
+sp_addr = remove # ignore/add/remove/force
+
+# Add or remove space around the '.' or '->' operators
+sp_member = remove # ignore/add/remove/force
+
+# Add or remove space after the '*' (dereference) operator.
+# This does not affect the spacing after a '*' that is part of a type.
+sp_deref = remove # ignore/add/remove/force
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'
+sp_sign = remove # ignore/add/remove/force
+
+# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'
+sp_incdec = remove # ignore/add/remove/force
+
+# Add or remove space before a backslash-newline at the end of a line
+sp_before_nl_cont = add # ignore/add/remove/force
+
+# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
+sp_after_oc_scope = ignore # ignore/add/remove/force
+
+# Add or remove space after the colon in message specs
+# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
+sp_after_oc_colon = ignore # ignore/add/remove/force
+
+# Add or remove space before the colon in message specs
+# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
+sp_before_oc_colon = ignore # ignore/add/remove/force
+
+# Add or remove space after the colon in message specs
+# '[object setValue:1];' vs '[object setValue: 1];'
+sp_after_send_oc_colon = ignore # ignore/add/remove/force
+
+# Add or remove space before the colon in message specs
+# '[object setValue:1];' vs '[object setValue :1];'
+sp_before_send_oc_colon = ignore # ignore/add/remove/force
+
+# Add or remove space after the (type) in message specs
+# '-(int) f: (int) x;' vs '-(int) f: (int)x;'
+sp_after_oc_type = ignore # ignore/add/remove/force
+
+# Add or remove space around the ':' in 'b ? t : f'
+sp_cond_colon = add # ignore/add/remove/force
+
+# Add or remove space around the '?' in 'b ? t : f'
+sp_cond_question = add # ignore/add/remove/force
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
+sp_case_label = force # ignore/add/remove/force
+
+# Control the space around the D '..' operator.
+sp_range = ignore # ignore/add/remove/force
+
+# Control the space after the opening of a C++ comment '// A' vs '//A'
+sp_cmt_cpp_start = add # ignore/add/remove/force
+
+#
+# Code alignment (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs
+align_keep_tabs = false # false/true
+
+# Whether to use tabs for alinging
+align_with_tabs = false # false/true
+
+# Whether to bump out to the next tab when aligning
+align_on_tabstop = true # false/true
+
+# Whether to left-align numbers
+align_number_left = false # false/true
+
+# Align variable definitions in prototypes and functions
+align_func_params = false # false/true
+
+# Align parameters in single-line functions that have the same name.
+# The function names must already be aligned with each other.
+align_same_func_call_params = false # false/true
+
+# The span for aligning variable definitions (0=don't align)
+align_var_def_span = 3 # number
+
+# How to align the star in variable definitions.
+# 0=Part of the type 'void * foo;'
+# 1=Part of the variable 'void *foo;'
+# 2=Dangling 'void *foo;'
+align_var_def_star_style = 0 # number
+
+# How to align the '&' in variable definitions.
+# 0=Part of the type
+# 1=Part of the variable
+# 2=Dangling
+align_var_def_amp_style = 0 # number
+
+# The threshold for aligning variable definitions (0=no limit)
+align_var_def_thresh = 12 # number
+
+# The gap for aligning variable definitions
+align_var_def_gap = 0 # number
+
+# Whether to align the colon in struct bit fields
+align_var_def_colon = false # false/true
+
+# Whether to align inline struct/enum/union variable definitions
+align_var_def_inline = true # false/true
+
+# The span for aligning on '=' in assignments (0=don't align)
+align_assign_span = 1 # number
+
+# The threshold for aligning on '=' in assignments (0=no limit)
+align_assign_thresh = 4 # number
+
+# The span for aligning on '=' in enums (0=don't align)
+align_enum_equ_span = 3 # number
+
+# The threshold for aligning on '=' in enums (0=no limit)
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning struct/union (0=don't align)
+align_var_struct_span = 1 # number
+
+# The threshold for aligning struct/union member definitions (0=no limit)
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions
+align_var_struct_gap = 0 # number
+
+# The span for aligning struct initializer values (0=don't align)
+align_struct_init_span = 1 # number
+
+# The minimum space between the type and the synonym of a typedef
+align_typedef_gap = 1 # number
+
+# The span for aligning single-line typedefs (0=don't align)
+align_typedef_span = 2 # number
+
+# How to align typedef'd functions with other typedefs
+# 0: Don't mix them at all
+# 1: align the open paren with the types
+# 2: align the function type name with the other type names
+align_typedef_func = 0 # number
+
+# Controls the positioning of the '*' in typedefs. Just try it.
+# 0: Align on typdef type, ignore '*'
+# 1: The '*' is part of type name: typedef int *pint;
+# 2: The '*' is part of the type, but dangling: typedef int *pint;
+align_typedef_star_style = 0 # number
+
+# Controls the positioning of the '&' in typedefs. Just try it.
+# 0: Align on typdef type, ignore '&'
+# 1: The '&' is part of type name: typedef int &pint;
+# 2: The '&' is part of the type, but dangling: typedef int &pint;
+align_typedef_amp_style = 0 # number
+
+# The span for aligning comments that end lines (0=don't align)
+align_right_cmt_span = 3 # number
+
+# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
+align_right_cmt_mix = false # false/true
+
+# If a trailing comment is more than this number of columns away from the text it follows,
+# it will qualify for being aligned.
+align_right_cmt_gap = 0 # number
+
+# The span for aligning function prototypes (0=don't align)
+align_func_proto_span = 3 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # number
+
+# Align function protos on the 'operator' keyword instead of what follows
+align_on_operator = false # false/true
+
+# Whether to mix aligning prototype and variable declarations.
+# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # false/true
+
+# Align single-line functions with function prototypes, uses align_func_proto_span
+align_single_line_func = false # false/true
+
+# Aligning the open brace of single-line functions.
+# Requires align_single_line_func=true, uses align_func_proto_span
+align_single_line_brace = false # false/true
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # number
+
+# The span for aligning ObjC msg spec (0=don't align)
+align_oc_msg_spec_span = 0 # number
+
+# Whether to align macros wrapped with a backslash and a newline.
+# This will not work right if the macro contains a multi-line comment.
+align_nl_cont = false # false/true
+
+# The minimum space between label and value of a preprocessor define
+align_pp_define_gap = 1 # number
+
+# The span for aligning on '#define' bodies (0=don't align)
+align_pp_define_span = 1 # number
+
+# Align lines that start with '<<' with previous '<<'. Default=true
+align_left_shift = true # false/true
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'
+nl_collapse_empty_body = false # false/true
+
+# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
+nl_assign_leave_one_liners = true # false/true
+
+# Don't split one-line braced statements inside a class xx { } body
+nl_class_leave_one_liners = true # false/true
+
+# Don't split one-line enums: 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = false # false/true
+
+# Don't split one-line get or set functions
+nl_getset_leave_one_liners = true # false/true
+
+# Don't split one-line function definitions - 'int foo() { return 0; }'
+nl_func_leave_one_liners = true # false/true
+
+# Don't split one-line if/else statements - 'if(a) b++;'
+nl_if_leave_one_liners = false # false/true
+
+# Add or remove newlines at the start of the file
+nl_start_of_file = ignore # ignore/add/remove/force
+
+# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
+nl_start_of_file_min = 0 # number
+
+# Add or remove newline at the end of the file
+nl_end_of_file = force # ignore/add/remove/force
+
+# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
+nl_end_of_file_min = 1 # number
+
+# Add or remove newline between '=' and '{'
+nl_assign_brace = add # ignore/add/remove/force
+
+# Add or remove newline between '=' and '[' (D only)
+nl_assign_square = add # ignore/add/remove/force
+
+# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
+nl_after_square_assign = ignore # ignore/add/remove/force
+
+# The number of newlines after a block of variable definitions
+nl_func_var_def_blk = 1 # number
+
+# Add or remove newline between a function call's ')' and '{', as in:
+# list_for_each(item, &list) { }
+nl_fcall_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'enum' and '{'
+nl_enum_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'struct and '{'
+nl_struct_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'union' and '{'
+nl_union_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'if' and '{'
+nl_if_brace = force # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'else'
+nl_brace_else = force # ignore/add/remove/force
+
+# Add or remove newline between 'else if' and '{'
+# If set to ignore, nl_if_brace is used instead
+nl_elseif_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'else' and '{'
+nl_else_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'else' and 'if'
+nl_else_if = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'finally'
+nl_brace_finally = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'finally' and '{'
+nl_finally_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'try' and '{'
+nl_try_brace = force # ignore/add/remove/force
+
+# Add or remove newline between get/set and '{'
+nl_getset_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'for' and '{'
+nl_for_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'catch' and '{'
+nl_catch_brace = force # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'catch'
+nl_brace_catch = force # ignore/add/remove/force
+
+# Add or remove newline between 'while' and '{'
+nl_while_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'do' and '{'
+nl_do_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'while' of 'do' statement
+nl_brace_while = remove # ignore/add/remove/force
+
+# Add or remove newline between 'switch' and '{'
+nl_switch_brace = force # ignore/add/remove/force
+
+# Add or remove newline when condition spans two or more lines
+nl_multi_line_cond = false # false/true
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = false # false/true
+
+# Whether to put a newline before 'case' statement
+nl_before_case = true # false/true
+
+# Add or remove newline between ')' and 'throw'
+nl_before_throw = ignore # ignore/add/remove/force
+
+# Whether to put a newline after 'case' statement
+nl_after_case = true # false/true
+
+# Newline between namespace and {
+nl_namespace_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'template<>' and whatever follows.
+nl_template_class = force # ignore/add/remove/force
+
+# Add or remove newline between 'class' and '{'
+nl_class_brace = force # ignore/add/remove/force
+
+# Add or remove newline after each ',' in the constructor member initialization
+nl_class_init_args = add # ignore/add/remove/force
+
+# Add or remove newline between return type and function name in definition
+nl_func_type_name = remove # ignore/add/remove/force
+
+# Add or remove newline between return type and function name in a prototype
+nl_func_proto_type_name = remove # ignore/add/remove/force
+
+# Add or remove newline between a function name and the opening '('
+nl_func_paren = remove # ignore/add/remove/force
+
+# Add or remove newline after '(' in a function declaration
+nl_func_decl_start = remove # ignore/add/remove/force
+
+# Add or remove newline after each ',' in a function declaration
+nl_func_decl_args = remove # ignore/add/remove/force
+
+# Add or remove newline before the ')' in a function declaration
+nl_func_decl_end = remove # ignore/add/remove/force
+
+# Add or remove newline between function signature and '{'
+nl_fdef_brace = force # ignore/add/remove/force
+
+# Whether to put a newline after 'return' statement
+nl_after_return = false # false/true
+
+# Add or remove a newline between the return keyword and return expression.
+nl_return_expr = ignore # ignore/add/remove/force
+
+# Whether to put a newline after semicolons, except in 'for' statements
+nl_after_semicolon = false # false/true
+
+# Whether to put a newline after brace open.
+# This also adds a newline before the matching brace close.
+nl_after_brace_open = true # false/true
+
+# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
+# placed between the open brace and a trailing single-line comment.
+nl_after_brace_open_cmt = true # false/true
+
+# Whether to put a newline after a virtual brace open.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = true # false/true
+
+# Whether to alter newlines in '#define' macros
+nl_define_macro = false # false/true
+
+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
+nl_squeeze_ifdef = false # false/true
+
+# Add or remove newline before 'if'
+nl_before_if = ignore # ignore/add/remove/force
+
+# Add or remove newline after 'if'
+nl_after_if = ignore # ignore/add/remove/force
+
+# Add or remove newline before 'for'
+nl_before_for = ignore # ignore/add/remove/force
+
+# Add or remove newline after 'for'
+nl_after_for = add # ignore/add/remove/force
+
+# Add or remove newline before 'while'
+nl_before_while = ignore # ignore/add/remove/force
+
+# Add or remove newline after 'while'
+nl_after_while = add # ignore/add/remove/force
+
+# Add or remove newline before 'switch'
+nl_before_switch = ignore # ignore/add/remove/force
+
+# Add or remove newline after 'switch'
+nl_after_switch = add # ignore/add/remove/force
+
+# Add or remove newline before 'do'
+nl_before_do = ignore # ignore/add/remove/force
+
+# Add or remove newline after 'do'
+nl_after_do = add # ignore/add/remove/force
+
+# Whether to double-space commented-entries in struct/enum
+nl_ds_struct_enum_cmt = true # false/true
+
+# Whether to double-space before the close brace of a struct/union/enum
+nl_ds_struct_enum_close_brace = false # false/true
+
+# Add or remove a newline around a class colon.
+# Related to pos_class_colon, nl_class_init_args, and pos_comma.
+nl_class_colon = ignore # ignore/add/remove/force
+
+# Change simple unbraced if statements into a one-liner
+# 'if(b)\n i++;' => 'if(b) i++;'
+nl_create_if_one_liner = false # false/true
+
+# Change simple unbraced for statements into a one-liner
+# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
+nl_create_for_one_liner = false # false/true
+
+# Change simple unbraced while statements into a one-liner
+# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
+nl_create_while_one_liner = false # false/true
+
+#
+# Positioning options
+#
+
+# The position of arithmetic operators in wrapped expressions
+pos_arith = ignore # ignore/lead/trail
+
+# The position of assignment in wrapped expressions
+pos_assign = ignore # ignore/lead/trail
+
+# The position of boolean operators in wrapped expressions
+pos_bool = lead # ignore/lead/trail
+
+# The position of the comma in wrapped expressions
+pos_comma = trail # ignore/lead/trail
+
+# The position of the comma in the constructor initialization list
+pos_class_comma = ignore # ignore/lead/trail
+
+# The position of colons between constructor and member initialization
+pos_class_colon = trail # ignore/lead/trail
+
+#
+# Line Splitting options
+#
+
+# Try to limit code width to N number of columns
+code_width = 120 # number
+
+# Whether to fully split long 'for' statements at semi-colons
+ls_for_split_full = true # false/true
+
+# Whether to fully split long function protos/calls at commas
+ls_func_split_full = false # false/true
+
+#
+# Blank line options
+#
+
+# The maximum consecutive newlines
+nl_max = 3 # number
+
+# The number of newlines after a function prototype, if followed by another function prototype
+nl_after_func_proto = 0 # number
+
+# The number of newlines after a function prototype, if not followed by another function prototype
+nl_after_func_proto_group = 2 # number
+
+# The number of newlines after '}' of a multi-line function body
+nl_after_func_body = 3 # number
+
+# The number of newlines after '}' of a single line function body
+nl_after_func_body_one_liner = 1 # number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 2 # number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 1 # number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 2 # number
+
+# Whether to force a newline after a mulit-line comment.
+nl_after_multiline_comment = false # false/true
+
+# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
+# Will not change the newline count if after a brace open.
+# 0 = No change.
+nl_before_access_spec = 0 # number
+
+# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
+# 0 = No change.
+nl_after_access_spec = 0 # number
+
+# The number of newlines between a function def and the function comment.
+# 0 = No change.
+nl_comment_func_def = 0 # number
+
+# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
+# 0 = No change.
+nl_after_try_catch_finally = 1 # number
+
+# The number of newlines before and after a property, indexer or event decl.
+# 0 = No change.
+nl_around_cs_property = 0 # number
+
+# The number of newlines between the get/set/add/remove handlers in C#.
+# 0 = No change.
+nl_between_get_set = 0 # number
+
+# Whether to remove blank lines after '{'
+eat_blanks_after_open_brace = true # false/true
+
+# Whether to remove blank lines before '}'
+eat_blanks_before_close_brace = true # false/true
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on single-line 'do' statement
+mod_full_brace_do = add # ignore/add/remove/force
+
+# Add or remove braces on single-line 'for' statement
+mod_full_brace_for = ignore # ignore/add/remove/force
+
+# Add or remove braces on single-line function defintions. (Pawn)
+mod_full_brace_function = ignore # ignore/add/remove/force
+
+# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
+mod_full_brace_if = ignore # ignore/add/remove/force
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 3 # number
+
+# Add or remove braces on single-line 'while' statement
+mod_full_brace_while = ignore # ignore/add/remove/force
+
+# Add or remove unnecessary paren on 'return' statement
+mod_paren_on_return = remove # ignore/add/remove/force
+
+# Whether to change optional semicolons to real semicolons
+mod_pawn_semicolon = false # false/true
+
+# Add parens on 'while' and 'if' statement around bools
+mod_full_paren_if_bool = false # false/true
+
+# Whether to remove superfluous semicolons
+mod_remove_extra_semicolon = false # false/true
+
+# If a function body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # number
+
+# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
+mod_sort_import = false # false/true
+
+# If TRUE, will sort consecutive single-line 'using' statements [C#]
+mod_sort_using = false # false/true
+
+# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
+# This is generally a bad idea, as it may break your code.
+mod_sort_include = false # false/true
+
+# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
+mod_move_case_break = false # false/true
+
+# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
+mod_remove_empty_return = false # false/true
+
+#
+# Comment modifications
+#
+
+# Try to wrap comments at cmt_width columns
+cmt_width = 0 # number
+
+# If false, disable all multi-line comment changes, including cmt_width and leading chars.
+# Default is true.
+cmt_indent_multi = true # false/true
+
+# Whether to group c-comments that look like they are in a block
+cmt_c_group = false # false/true
+
+# Whether to put an empty '/*' on the first line of the combined c-comment
+cmt_c_nl_start = false # false/true
+
+# Whether to put a newline before the closing '*/' of the combined c-comment
+cmt_c_nl_end = false # false/true
+
+# Whether to group cpp-comments that look like they are in a block
+cmt_cpp_group = false # false/true
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+cmt_cpp_nl_start = false # false/true
+
+# Whether to put a newline before the closing '*/' of the combined cpp-comment
+cmt_cpp_nl_end = false # false/true
+
+# Whether to change cpp-comments into c-comments
+cmt_cpp_to_c = false # false/true
+
+# Whether to put a star on subsequent comment lines
+cmt_star_cont = true # false/true
+
+# The number of spaces to insert at the start of subsequent comment lines
+cmt_sp_before_star_cont = 0 # number
+
+# The number of spaces to insert after the star on subsequent comment lines
+cmt_sp_after_star_cont = 1 # number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
+# the comment are the same length. Default=True
+cmt_multi_check_last = true # false/true
+
+# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
+# Will substitue $(filename) with the current file's name.
+cmt_insert_file_header = "" # string
+
+# The filename that contains text to insert before a function implementation if the function isn't preceeded with a C/C++ comment.
+# Will substitue $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
+# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
+cmt_insert_func_header = "" # string
+
+# The filename that contains text to insert before a class if the class isn't preceeded with a C/C++ comment.
+# Will substitue $(class) with the class name.
+cmt_insert_class_header = "" # string
+
+# If a preprocessor is encountered when stepping backwards from a function name, then
+# this option decides whether the comment should be inserted.
+# Affects cmt_insert_func_header and cmt_insert_class_header.
+cmt_insert_before_preproc = false # false/true
+
+#
+# Preprocessor options
+#
+
+# Control indent of preprocessors inside #if blocks at brace level 0
+pp_indent = ignore # ignore/add/remove/force
+
+# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
+pp_indent_at_level = false # false/true
+
+# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1.
+pp_indent_count = 1 # number
+
+# Add or remove space after # based on pp_level of #if blocks
+pp_space = ignore # ignore/add/remove/force
+
+# Sets the number of spaces added with pp_space
+pp_space_count = 1 # number
+
+# The indent for #region and #endregion in C# and '#pragma region' in C/C++
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion
+pp_region_indent_code = false # false/true
+
+# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level
+pp_indent_if = 1 # number
+
+# Control whether to indent the code between #if, #else and #endif when not at file-level
+pp_if_indent_code = false # false/true
+
+# Whether to indent '#define' at the brace level (true) or from column 1 (false)
+pp_define_at_level = false # false/true
+
+# You can force a token to be a type with the 'type' option.
+# Example:
+# type myfoo1 myfoo2
+#
+# You can create custom macro-based indentation using macro-open,
+# macro-else and macro-close.
+# Example:
+# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
+# macro-open BEGIN_MESSAGE_MAP
+# macro-close END_MESSAGE_MAP
+#
+# You can assign any keyword to any type with the set option.
+# set func_call_user _ N_
Property changes on: trunk/uncrustify.cfg
___________________________________________________________________
Name: svn:eol-style
+ native
|
|
From: <oh...@ma...> - 2009-01-28 14:08:12
|
Author: oharboe
Date: 2009-01-28 14:08:06 +0100 (Wed, 28 Jan 2009)
New Revision: 1363
Added:
trunk/src/target/test/
trunk/src/target/test/syntax1.cfg
Modified:
trunk/src/target/Makefile.am
trunk/src/target/target.c
Log:
chain position is now required when creating a target
Modified: trunk/src/target/Makefile.am
===================================================================
--- trunk/src/target/Makefile.am 2009-01-26 07:38:08 UTC (rev 1362)
+++ trunk/src/target/Makefile.am 2009-01-28 13:08:06 UTC (rev 1363)
@@ -29,4 +29,7 @@
# Various preconfigured boards
nobase_dist_pkglib_DATA += $(wildcard $(srcdir)/board/*.cfg)
+# test files
+nobase_dist_pkglib_DATA += $(wildcard $(srcdir)/test/*.cfg)
+
MAINTAINERCLEANFILES = Makefile.in
Modified: trunk/src/target/target.c
===================================================================
--- trunk/src/target/target.c 2009-01-26 07:38:08 UTC (rev 1362)
+++ trunk/src/target/target.c 2009-01-28 13:08:06 UTC (rev 1363)
@@ -3341,6 +3341,8 @@
break;
}
} /* while( goi->argc ) */
+
+
/* done - we return */
return JIM_OK;
}
@@ -3839,6 +3841,13 @@
/* Do the rest as "configure" options */
goi->isconfigure = 1;
e = target_configure( goi, target);
+
+ if (target->tap == NULL)
+ {
+ Jim_SetResultString( interp, "-chain-position required when creating target", -1);
+ e=JIM_ERR;
+ }
+
if( e != JIM_OK ){
free( target->type );
free( target );
Added: trunk/src/target/test/syntax1.cfg
===================================================================
--- trunk/src/target/test/syntax1.cfg 2009-01-26 07:38:08 UTC (rev 1362)
+++ trunk/src/target/test/syntax1.cfg 2009-01-28 13:08:06 UTC (rev 1363)
@@ -0,0 +1,29 @@
+jtag_nsrst_delay 200
+jtag_ntrst_delay 200
+
+#use combined on interfaces or targets that can't set TRST/SRST separately
+reset_config trst_and_srst srst_pulls_trst
+
+#LPCs need reset pulled while RTCK is low. 0 to activate JTAG, power-on reset is not enough
+jtag_reset 1 1
+jtag_reset 0 0
+
+#jtag scan chain
+#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
+jtag newtap lpc2148 one -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x4f1f0f0f
+
+#target configuration
+#daemon_startup reset
+
+set _TARGETNAME [format "%s.cpu" lpc2148]
+target create lpc2148.cpu arm7tdmi -endian little -work-area-size 0x4000 -work-area-phys 0x40000000 -work-area-virt 0 -work-area-backup 0
+
+$_TARGETNAME configure -event reset-init {
+soft_reset_halt
+mvb 0xE01FC040 0x01
+}
+
+
+
+flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765
+
|
|
From: <oh...@ma...> - 2009-01-26 08:38:10
|
Author: oharboe Date: 2009-01-26 08:38:08 +0100 (Mon, 26 Jan 2009) New Revision: 1362 Modified: trunk/testing/examples/ledtest-imx31pdk/test.elf Log: update symbols to match source file Modified: trunk/testing/examples/ledtest-imx31pdk/test.elf =================================================================== (Binary files differ) |
|
From: ntfreak at B. <nt...@ma...> - 2009-01-23 13:07:18
|
Author: ntfreak
Date: 2009-01-23 13:07:15 +0100 (Fri, 23 Jan 2009)
New Revision: 1361
Modified:
trunk/configure.in
Log:
- AC_CHECK_FILE not supported when cross-compiling
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2009-01-23 07:10:11 UTC (rev 1360)
+++ trunk/configure.in 2009-01-23 12:07:15 UTC (rev 1361)
@@ -33,9 +33,11 @@
AS_HELP_STRING([--enable-release], [Enable Release Build, default no]),
[build_release=$enableval], [build_release=no])
-if test $build_release = no; then
- # check we can find guess-rev.sh
- AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
+if test $cross_compiling = no; then
+ if test $build_release = no; then
+ # check we can find guess-rev.sh
+ AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
+ fi
fi
# We are not *ALWAYS* being installed in the standard place.
|
|
From: <kc...@ma...> - 2009-01-23 08:10:23
|
Author: kc8apf
Date: 2009-01-23 08:10:11 +0100 (Fri, 23 Jan 2009)
New Revision: 1360
Modified:
trunk/src/jtag/bitbang.c
trunk/src/jtag/ft2232.c
trunk/src/jtag/jtag.c
trunk/src/jtag/jtag.h
trunk/src/xsvf/xsvf.c
Log:
xvsf player fixes by Dick Hollenbeck <di...@so...>
Modified: trunk/src/jtag/bitbang.c
===================================================================
--- trunk/src/jtag/bitbang.c 2009-01-23 07:08:18 UTC (rev 1359)
+++ trunk/src/jtag/bitbang.c 2009-01-23 07:10:11 UTC (rev 1360)
@@ -38,6 +38,14 @@
#include <unistd.h>
+/**
+ * Function bitbang_stableclocks
+ * issues a number of clock cycles while staying in a stable state.
+ * Because the TMS value required to stay in the RESET state is a 1, whereas
+ * the TMS value required to stay in any of the other stable states is a 0,
+ * this function checks the current stable state to decide on the value of TMS
+ * to use.
+ */
static void bitbang_stableclocks(int num_cycles);
@@ -162,13 +170,14 @@
static void bitbang_stableclocks(int num_cycles)
{
+ int tms = (cur_state == TAP_RESET ? 1 : 0);
int i;
/* send num_cycles clocks onto the cable */
for (i = 0; i < num_cycles; i++)
{
- bitbang_interface->write(1, 0, 0);
- bitbang_interface->write(0, 0, 0);
+ bitbang_interface->write(1, tms, 0);
+ bitbang_interface->write(0, tms, 0);
}
}
@@ -293,6 +302,9 @@
break;
case JTAG_STABLECLOCKS:
+ /* this is only allowed while in a stable state. A check for a stable
+ * state was done in jtag_add_clocks()
+ */
bitbang_stableclocks(cmd->cmd.stableclocks->num_cycles);
break;
Modified: trunk/src/jtag/ft2232.c
===================================================================
--- trunk/src/jtag/ft2232.c 2009-01-23 07:08:18 UTC (rev 1359)
+++ trunk/src/jtag/ft2232.c 2009-01-23 07:10:11 UTC (rev 1360)
@@ -1415,22 +1415,9 @@
break;
case JTAG_STABLECLOCKS:
- /* "if (tap_move_map[cur_state] != -1)" is of no help when cur_state==TAP_IDLE */
- switch(cur_state)
- {
- case TAP_DRSHIFT:
- case TAP_IDLE:
- case TAP_RESET:
- case TAP_DRPAUSE:
- case TAP_IRSHIFT:
- case TAP_IRPAUSE:
- break; /* above stable states are OK */
- default:
- LOG_ERROR( "jtag_add_clocks() was called with TAP in non-stable state \"%s\"",
- jtag_state_name(cur_state) );
- retval = ERROR_JTAG_QUEUE_FAILED;
- }
-
+ /* this is only allowed while in a stable state. A check for a stable
+ * state was done in jtag_add_clocks()
+ */
if (ft2232_stableclocks(cmd->cmd.stableclocks->num_cycles, cmd) != ERROR_OK)
retval = ERROR_JTAG_QUEUE_FAILED;
#ifdef _DEBUG_JTAG_IO_
@@ -2336,11 +2323,15 @@
{
int retval = 0;
+ /* 7 bits of either ones or zeros. */
+ u8 tms = (cur_state == TAP_RESET ? 0x7F : 0x00);
+
while (num_cycles > 0)
{
/* the command 0x4b, "Clock Data to TMS/CS Pin (no Read)" handles
* at most 7 bits per invocation. Here we invoke it potentially
* several times.
+ * see: http://www.ftdichip.com/Documents/AppNotes/AN2232C-01_MPSSE_Cmnd.pdf
*/
int bitcount_per_command = (num_cycles > 7) ? 7 : num_cycles;
@@ -2358,8 +2349,8 @@
/* scan 7 bit */
BUFFER_ADD = bitcount_per_command - 1;
- /* TMS data bits are all zeros to stay in the current stable state */
- BUFFER_ADD = 0x0;
+ /* TMS data bits are either all zeros or ones to stay in the current stable state */
+ BUFFER_ADD = tms;
require_send = 1;
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-01-23 07:08:18 UTC (rev 1359)
+++ trunk/src/jtag/jtag.c 2009-01-23 07:10:11 UTC (rev 1360)
@@ -1093,11 +1093,31 @@
{
int retval;
- jtag_prelude1();
+ /* "if (tap_move_map[cm_queue_cur_state] != -1)" is of no help when cur_state==TAP_IDLE */
+ switch(cmd_queue_cur_state)
+ {
+ case TAP_DRSHIFT:
+ case TAP_IDLE:
+ case TAP_RESET:
+ case TAP_DRPAUSE:
+ case TAP_IRSHIFT:
+ case TAP_IRPAUSE:
+ break; /* above stable states are OK */
+ default:
+ LOG_ERROR( "jtag_add_clocks() was called with TAP in non-stable state \"%s\"",
+ jtag_state_name(cmd_queue_cur_state) );
+ jtag_error = ERROR_JTAG_NOT_STABLE_STATE;
+ return;
+ }
- retval=interface_jtag_add_clocks(num_cycles);
- if (retval!=ERROR_OK)
- jtag_error=retval;
+ if( num_cycles > 0 )
+ {
+ jtag_prelude1();
+
+ retval=interface_jtag_add_clocks(num_cycles);
+ if (retval!=ERROR_OK)
+ jtag_error=retval;
+ }
}
void jtag_add_reset(int req_tlr_or_trst, int req_srst)
@@ -1287,7 +1307,7 @@
if (cmd->fields[i].out_value)
{
#ifdef _DEBUG_JTAG_IO_
- char* char_buf = buf_to_str(cmd->fields[i].out_value, (cmd->fields[i].num_bits > 64) ? 64 : cmd->fields[i].num_bits, 16);
+ char* char_buf = buf_to_str(cmd->fields[i].out_value, (cmd->fields[i].num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : cmd->fields[i].num_bits, 16);
#endif
buf_set_buf(cmd->fields[i].out_value, 0, *buffer, bit_count, cmd->fields[i].num_bits);
#ifdef _DEBUG_JTAG_IO_
@@ -1297,9 +1317,6 @@
}
bit_count += cmd->fields[i].num_bits;
-#ifdef _DEBUG_JTAG_IO_
- LOG_DEBUG("bit_count totalling: %i", bit_count );
-#endif
}
return bit_count;
@@ -1325,7 +1342,7 @@
u8 *captured = buf_set_buf(buffer, bit_count, malloc(CEIL(num_bits, 8)), 0, num_bits);
#ifdef _DEBUG_JTAG_IO_
- char *char_buf = buf_to_str(captured, (num_bits > 64) ? 64 : num_bits, 16);
+ char *char_buf = buf_to_str(captured, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
LOG_DEBUG("fields[%i].in_value[%i]: 0x%s", i, num_bits, char_buf);
free(char_buf);
#endif
@@ -1391,13 +1408,13 @@
jtag_tap_name(field->tap));
if (compare_failed)
{
- char *captured_char = buf_to_str(captured, (num_bits > 64) ? 64 : num_bits, 16);
- char *in_check_value_char = buf_to_str(field->in_check_value, (num_bits > 64) ? 64 : num_bits, 16);
+ char *captured_char = buf_to_str(captured, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
+ char *in_check_value_char = buf_to_str(field->in_check_value, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
if (field->in_check_mask)
{
char *in_check_mask_char;
- in_check_mask_char = buf_to_str(field->in_check_mask, (num_bits > 64) ? 64 : num_bits, 16);
+ in_check_mask_char = buf_to_str(field->in_check_mask, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
LOG_WARNING("value captured during scan didn't pass the requested check:");
LOG_WARNING("captured: 0x%s check_value: 0x%s check_mask: 0x%s",
captured_char, in_check_value_char, in_check_mask_char);
Modified: trunk/src/jtag/jtag.h
===================================================================
--- trunk/src/jtag/jtag.h 2009-01-23 07:08:18 UTC (rev 1359)
+++ trunk/src/jtag/jtag.h 2009-01-23 07:10:11 UTC (rev 1360)
@@ -34,6 +34,11 @@
#define _DEBUG_JTAG_IO_
#endif
+#ifndef DEBUG_JTAG_IOZ
+#define DEBUG_JTAG_IOZ 64
+#endif
+
+
/* 16 Tap States, from page 21 of ASSET InterTech, Inc.'s svf.pdf
*/
typedef enum tap_state
@@ -499,12 +504,14 @@
* JTAG subsystem uses codes between -100 and -199 */
#define ERROR_JTAG_INIT_FAILED (-100)
-#define ERROR_JTAG_INVALID_INTERFACE (-101)
+#define ERROR_JTAG_INVALID_INTERFACE (-101)
#define ERROR_JTAG_NOT_IMPLEMENTED (-102)
-#define ERROR_JTAG_TRST_ASSERTED (-103)
+#define ERROR_JTAG_TRST_ASSERTED (-103)
#define ERROR_JTAG_QUEUE_FAILED (-104)
+#define ERROR_JTAG_NOT_STABLE_STATE (-105)
#define ERROR_JTAG_DEVICE_ERROR (-107)
+
/* this allows JTAG devices to implement the entire jtag_xxx() layer in hw/sw */
#ifdef HAVE_JTAG_MINIDRIVER_H
/* Here a #define MINIDRIVER() and an inline version of hw fifo interface_jtag_add_dr_out can be defined */
Modified: trunk/src/xsvf/xsvf.c
===================================================================
--- trunk/src/xsvf/xsvf.c 2009-01-23 07:08:18 UTC (rev 1359)
+++ trunk/src/xsvf/xsvf.c 2009-01-23 07:10:11 UTC (rev 1360)
@@ -107,6 +107,7 @@
#define LCOUNT 0x19
#define LDELAY 0x1A
#define LSDR 0x1B
+#define XTRST 0x1C
/* XSVF valid state values for the XSTATE command, from appendix B of xapp503.pdf */
@@ -127,6 +128,11 @@
#define XSV_IREXIT2 0x0E
#define XSV_IRUPDATE 0x0F
+/* arguments to XTRST */
+#define XTRST_ON 0
+#define XTRST_OFF 1
+#define XTRST_Z 2
+#define XTRST_ABSENT 3
#define XSTATE_MAX_PATH 12
@@ -210,7 +216,7 @@
int xsvf_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "xsvf", handle_xsvf_command,
- COMMAND_EXEC, "run xsvf <file> [virt2]");
+ COMMAND_EXEC, "run xsvf <file> [virt2] [quiet]");
return ERROR_OK;
}
@@ -288,6 +294,8 @@
int unsupported = 0;
int tdo_mismatch = 0;
int result;
+ int verbose = 1;
+ char* filename;
int runtest_requires_tck = 0; /* a flag telling whether to clock TCK during waits, or simply sleep, controled by virt2 */
@@ -300,10 +308,12 @@
if (argc < 2)
{
- command_print(cmd_ctx, "usage: xsvf <device#|plain> <file> <variant>");
+ command_print(cmd_ctx, "usage: xsvf <device#|plain> <file> [<variant>] [quiet]");
return ERROR_FAIL;
}
+ filename = args[1]; /* we mess with args starting point below, snapshot filename here */
+
if (strcmp(args[0], "plain") != 0)
{
tap = jtag_TapByString( args[0] );
@@ -314,9 +324,9 @@
}
}
- if ((xsvf_fd = open(args[1], O_RDONLY)) < 0)
+ if ((xsvf_fd = open(filename, O_RDONLY)) < 0)
{
- command_print(cmd_ctx, "file \"%s\" not found", args[1]);
+ command_print(cmd_ctx, "file \"%s\" not found", filename);
return ERROR_FAIL;
}
@@ -324,10 +334,17 @@
if ((argc > 2) && (strcmp(args[2], "virt2") == 0))
{
runtest_requires_tck = 1;
+ --argc;
+ ++args;
}
- LOG_USER("xsvf processing file: \"%s\"", args[1]);
+ if ((argc > 2) && (strcmp(args[2], "quiet") == 0))
+ {
+ verbose = 0;
+ }
+ LOG_USER("xsvf processing file: \"%s\"", filename);
+
while( read(xsvf_fd, &opcode, 1) > 0 )
{
/* record the position of the just read opcode within the file */
@@ -462,7 +479,8 @@
jtag_add_pathmove( sizeof(exception_path)/sizeof(exception_path[0]), exception_path);
- LOG_USER("%s %d retry %d", op_name, xsdrsize, attempt);
+ if (verbose)
+ LOG_USER("%s %d retry %d", op_name, xsdrsize, attempt);
}
field.tap = tap;
@@ -749,7 +767,8 @@
} while (uc != 0);
comment[sizeof(comment)-1] = 0; /* regardless, terminate */
- LOG_USER(comment);
+ if (verbose)
+ LOG_USER(comment);
}
break;
@@ -918,20 +937,24 @@
{
scan_field_t field;
+ xsvf_add_statemove( loop_state );
+ jtag_add_clocks(loop_clocks);
+ jtag_add_sleep(loop_usecs);
+
field.tap = tap;
field.num_bits = xsdrsize;
field.out_value = dr_out_buf;
field.out_mask = NULL;
field.in_value = NULL;
- if (attempt > 0)
+ if (attempt > 0 && verbose)
LOG_USER("LSDR retry %d", attempt);
jtag_set_check_value(&field, dr_in_buf, dr_in_mask, NULL);
if (tap == NULL)
- jtag_add_plain_dr_scan(1, &field, loop_state);
+ jtag_add_plain_dr_scan(1, &field, TAP_DRPAUSE);
else
- jtag_add_dr_scan(1, &field, loop_state);
+ jtag_add_dr_scan(1, &field, TAP_DRPAUSE);
/* LOG_DEBUG("FLUSHING QUEUE"); */
result = jtag_execute_queue();
@@ -940,9 +963,6 @@
matched = 1;
break;
}
-
- jtag_add_clocks(loop_clocks);
- jtag_add_sleep(loop_usecs);
}
if (!matched )
@@ -954,6 +974,34 @@
}
break;
+ case XTRST:
+ {
+ u8 trst_mode;
+
+ if (read(xsvf_fd, &trst_mode, 1) < 0)
+ {
+ do_abort = 1;
+ break;
+ }
+
+ switch( trst_mode )
+ {
+ case XTRST_ON:
+ jtag_add_reset(1, 0);
+ break;
+ case XTRST_OFF:
+ case XTRST_Z:
+ jtag_add_reset(0, 0);
+ break;
+ case XTRST_ABSENT:
+ break;
+ default:
+ LOG_ERROR( "XTRST mode argument (0x%02X) out of range", trst_mode );
+ do_abort = 1;
+ }
+ }
+ break;
+
default:
LOG_ERROR("unknown xsvf command (0x%02X)\n", uc);
unsupported = 1;
|
|
From: <kc...@ma...> - 2009-01-23 08:08:21
|
Author: kc8apf
Date: 2009-01-23 08:08:18 +0100 (Fri, 23 Jan 2009)
New Revision: 1359
Modified:
trunk/src/svf/svf.c
Log:
Fixes for svf player by Simon Qian <sim...@Si...>
Modified: trunk/src/svf/svf.c
===================================================================
--- trunk/src/svf/svf.c 2009-01-23 07:07:02 UTC (rev 1358)
+++ trunk/src/svf/svf.c 2009-01-23 07:08:18 UTC (rev 1359)
@@ -37,6 +37,7 @@
#include "jtag.h"
#include "command.h"
#include "log.h"
+#include "time_support.h"
#include <ctype.h>
#include <stdlib.h>
@@ -187,10 +188,12 @@
static int svf_line_number = 1;
static jtag_tap_t *tap = NULL;
+static tap_state_t last_state = TAP_RESET;
#define SVF_MAX_BUFFER_SIZE_TO_COMMIT (4 * 1024)
static u8 *svf_tdi_buffer = NULL, *svf_tdo_buffer = NULL, *svf_mask_buffer = NULL;
static int svf_buffer_index = 0, svf_buffer_size = 0;
+static int svf_quiet = 0;
int svf_register_commands(struct command_context_s *cmd_ctx)
@@ -230,23 +233,47 @@
static int handle_svf_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
+#define SVF_NUM_OF_OPTIONS 1
int command_num = 0, i;
int ret = ERROR_OK;
+ long long time_ago;
- if (argc < 1)
+ if ((argc < 1) || (argc > (1 + SVF_NUM_OF_OPTIONS)))
{
- command_print(cmd_ctx, "usage: svf <file>");
+ command_print(cmd_ctx, "usage: svf <file> [quiet]");
return ERROR_FAIL;
}
+ // parse variant
+ svf_quiet = 0;
+ for (i = 1; i < argc; i++)
+ {
+ if (!strcmp(args[i], "quiet"))
+ {
+ svf_quiet = 1;
+ }
+ else
+ {
+ LOG_ERROR("unknown variant for svf: %s", args[i]);
+
+ // no need to free anything now
+ return ERROR_FAIL;
+ }
+ }
+
if ((svf_fd = open(args[0], O_RDONLY)) < 0)
{
command_print(cmd_ctx, "file \"%s\" not found", args[0]);
+
+ // no need to free anything now
return ERROR_FAIL;
}
LOG_USER("svf processing file: \"%s\"", args[0]);
+ // get time
+ time_ago = timeval_ms();
+
// init
svf_line_number = 1;
svf_command_buffer_size = 0;
@@ -315,6 +342,9 @@
ret = ERROR_FAIL;
}
+ // print time
+ command_print(cmd_ctx, "%d ms used", timeval_ms() - time_ago);
+
free_all:
close(svf_fd);
@@ -655,6 +685,22 @@
return ERROR_OK;
}
+static int svf_execute_tap(void)
+{
+ if (ERROR_OK != jtag_execute_queue())
+ {
+ return ERROR_FAIL;
+ }
+ else if (ERROR_OK != svf_check_tdo())
+ {
+ return ERROR_FAIL;
+ }
+
+ svf_buffer_index = 0;
+
+ return ERROR_OK;
+}
+
// not good to use this
extern jtag_command_t** jtag_get_last_command_p(void);
extern void* cmd_queue_alloc(size_t size);
@@ -681,7 +727,10 @@
// for STATE
tap_state_t *path = NULL, state;
- LOG_DEBUG("%s", cmd_str);
+ if (!svf_quiet)
+ {
+ LOG_USER("%s", svf_command_buffer);
+ }
if (ERROR_OK != svf_parse_cmd_string(cmd_str, strlen(cmd_str), argus, &num_of_argu))
{
@@ -736,6 +785,10 @@
LOG_ERROR("HZ not found in FREQUENCY command");
return ERROR_FAIL;
}
+ if (ERROR_OK != svf_execute_tap())
+ {
+ return ERROR_FAIL;
+ }
svf_para.frequency = atof(argus[1]);
// TODO: set jtag speed to
if (svf_para.frequency > 0)
@@ -776,7 +829,7 @@
xxr_para_tmp->data_mask = 0;
for (i = 2; i < num_of_argu; i += 2)
{
- if ((argus[i + 1][0] != '(') || (argus[i + 1][strlen(argus[i + 1]) - 1] != ')'))
+ if ((strlen(argus[i + 1]) < 3) || (argus[i + 1][0] != '(') || (argus[i + 1][strlen(argus[i + 1]) - 1] != ')'))
{
LOG_ERROR("data section error");
return ERROR_FAIL;
@@ -931,6 +984,7 @@
jtag_add_plain_dr_scan(1, &field, svf_para.dr_end_state);
svf_buffer_index += (i + 7) >> 3;
+ last_state = svf_para.dr_end_state;
}
else if (SIR == command)
{
@@ -1031,6 +1085,7 @@
jtag_add_plain_ir_scan(1, &field, svf_para.ir_end_state);
svf_buffer_index += (i + 7) >> 3;
+ last_state = svf_para.ir_end_state;
}
break;
case PIO:
@@ -1126,14 +1181,50 @@
{
if (run_count > 0)
{
+ // run_state and end_state is checked to be stable state
// TODO: do runtest
+#if 1
+ // enter into run_state if necessary
+ if (last_state != svf_para.runtest_run_state)
+ {
+ last_cmd = jtag_get_last_command_p();
+ *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
+ last_comand_pointer = &((*last_cmd)->next);
+ (*last_cmd)->next = NULL;
+ (*last_cmd)->type = JTAG_STATEMOVE;
+ (*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
+ (*last_cmd)->cmd.statemove->end_state = svf_para.runtest_run_state;
+
+ cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
+ }
+
+ // call jtag_add_clocks
+ jtag_add_clocks(run_count);
+
+ if (svf_para.runtest_end_state != svf_para.runtest_run_state)
+ {
+ // move to end_state
+ last_cmd = jtag_get_last_command_p();
+ *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
+ last_comand_pointer = &((*last_cmd)->next);
+ (*last_cmd)->next = NULL;
+ (*last_cmd)->type = JTAG_STATEMOVE;
+ (*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
+ (*last_cmd)->cmd.statemove->end_state = svf_para.runtest_end_state;
+
+ cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
+ }
+ last_state = svf_para.runtest_end_state;
+#else
if (svf_para.runtest_run_state != TAP_IDLE)
{
// RUNTEST can only executed in TAP_IDLE
LOG_ERROR("cannot runtest in %s state", svf_tap_state_name[svf_para.runtest_run_state]);
return ERROR_FAIL;
}
+
jtag_add_runtest(run_count, svf_para.runtest_end_state);
+#endif
}
}
else
@@ -1158,32 +1249,45 @@
LOG_ERROR("not enough memory");
return ERROR_FAIL;
}
- for (i = 1; i < num_of_argu; i++)
+ num_of_argu--; // num of path
+ i_tmp = 1; // path is from patameter 1
+ for (i = 0; i < num_of_argu; i++)
{
- path[i - 1] = svf_find_string_in_array(argus[i], (char **)svf_tap_state_name, dimof(svf_tap_state_name));
- if (!svf_tap_state_is_valid(path[i - 1]))
+ path[i] = svf_find_string_in_array(argus[i_tmp++], (char **)svf_tap_state_name, dimof(svf_tap_state_name));
+ if (!svf_tap_state_is_valid(path[i]))
{
- LOG_ERROR("%s is not valid state", svf_tap_state_name[path[i - 1]]);
+ LOG_ERROR("%s is not valid state", svf_tap_state_name[path[i]]);
return ERROR_FAIL;
}
- if (TAP_RESET == path[i - 1])
+ if (TAP_RESET == path[i])
{
- LOG_ERROR("TAP_RESET is not allowed in pathmove");
- return ERROR_FAIL;
+ if (i > 0)
+ {
+ jtag_add_pathmove(i, path);
+ }
+ jtag_add_tlr();
+ num_of_argu -= i + 1;
+ i = -1;
}
}
- if (svf_tap_state_is_stable(path[num_of_argu - 1]))
+ if (num_of_argu > 0)
{
- // last state MUST be stable state
- // TODO: call path_move
- jtag_add_pathmove(num_of_argu - 1, path);
- LOG_DEBUG("\tmove to %s by path_move", svf_tap_state_name[path[num_of_argu - 1]]);
+ // execute last path if necessary
+ if (svf_tap_state_is_stable(path[num_of_argu - 1]))
+ {
+ // last state MUST be stable state
+ // TODO: call path_move
+ jtag_add_pathmove(num_of_argu, path);
+ last_state = path[num_of_argu - 1];
+ LOG_DEBUG("\tmove to %s by path_move", svf_tap_state_name[path[num_of_argu - 1]]);
+ }
+ else
+ {
+ LOG_ERROR("%s is not valid state", svf_tap_state_name[path[num_of_argu - 1]]);
+ return ERROR_FAIL;
+ }
}
- else
- {
- LOG_ERROR("%s is not valid state", svf_tap_state_name[path[num_of_argu - 1]]);
- return ERROR_FAIL;
- }
+ // no need to keep this memory, in jtag_add_pathmove, path will be duplicated
if (NULL != path)
{
free(path);
@@ -1205,6 +1309,9 @@
(*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
(*last_cmd)->cmd.statemove->end_state = state;
+ cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
+ last_state = state;
+
LOG_DEBUG("\tmove to %s by state_move", svf_tap_state_name[state]);
}
else
@@ -1223,17 +1330,21 @@
}
if (svf_para.trst_mode != TRST_ABSENT)
{
+ if (ERROR_OK != svf_execute_tap())
+ {
+ return ERROR_FAIL;
+ }
i_tmp = svf_find_string_in_array(argus[1], (char **)svf_trst_mode_name, dimof(svf_trst_mode_name));
switch (i_tmp)
{
case TRST_ON:
+ last_state = TAP_RESET;
jtag_add_reset(1, 0);
break;
+ case TRST_Z:
case TRST_OFF:
- jtag_add_reset(1, 1);
+ jtag_add_reset(0, 0);
break;
- case TRST_Z:
- break;
case TRST_ABSENT:
break;
default:
@@ -1262,22 +1373,17 @@
(((command != STATE) && (command != RUNTEST)) || \
((command == STATE) && (num_of_argu == 2))))
{
- // there is data to be executed
- if (ERROR_OK != jtag_execute_queue())
+ if (ERROR_OK != svf_execute_tap())
{
return ERROR_FAIL;
}
+
// output debug info
if ((SIR == command) || (SDR == command))
{
+ // in debug mode, data is from index 0
LOG_DEBUG("\tTDO read = 0x%X", (*(int*)svf_tdi_buffer) & ((1 << (svf_check_tdo_para[0].bit_len)) - 1));
}
- if (ERROR_OK != svf_check_tdo())
- {
- return ERROR_FAIL;
- }
-
- svf_buffer_index = 0;
}
}
else
@@ -1288,16 +1394,7 @@
(((command != STATE) && (command != RUNTEST)) || \
((command == STATE) && (num_of_argu == 2))))
{
- if (ERROR_OK != jtag_execute_queue())
- {
- return ERROR_FAIL;
- }
- else if (ERROR_OK != svf_check_tdo())
- {
- return ERROR_FAIL;
- }
-
- svf_buffer_index = 0;
+ return svf_execute_tap();
}
}
|
|
From: <kc...@ma...> - 2009-01-23 08:07:07
|
Author: kc8apf
Date: 2009-01-23 08:07:02 +0100 (Fri, 23 Jan 2009)
New Revision: 1358
Modified:
trunk/src/helper/options.c
Log:
Search path fixes for MinGW builds. Courtesy of Dimitar Dimitrov <di...@gm...>
Modified: trunk/src/helper/options.c
===================================================================
--- trunk/src/helper/options.c 2009-01-23 07:05:04 UTC (rev 1357)
+++ trunk/src/helper/options.c 2009-01-23 07:07:02 UTC (rev 1358)
@@ -80,6 +80,28 @@
strcat(strExePath, "\\..");
add_script_search_dir(strExePath);
}
+ /*
+ * Add support for the default (as of 20080121) layout when
+ * using autotools and cygwin to build native MinGW binary.
+ * Path separator is converted to UNIX style so that MinGW is
+ * pleased.
+ *
+ * bin/openocd.exe
+ * lib/openocd/event/at91eb40a_reset.cfg
+ * lib/openocd/target/at91eb40a.cfg
+ */
+ {
+ char strExePath [MAX_PATH];
+ char *p;
+ GetModuleFileName (NULL, strExePath, MAX_PATH);
+ *strrchr(strExePath, '\\')=0;
+ strcat(strExePath, "/../lib/"PACKAGE);
+ for(p=strExePath; *p; p++) {
+ if(*p == '\\')
+ *p = '/';
+ }
+ add_script_search_dir(strExePath);
+ }
#else
/* Add dir for openocd supplied scripts last so that user can over
ride those scripts if desired. */
|
|
From: <kc...@ma...> - 2009-01-23 08:05:12
|
Author: kc8apf
Date: 2009-01-23 08:05:04 +0100 (Fri, 23 Jan 2009)
New Revision: 1357
Modified:
trunk/tools/xsvf_tools/svf2xsvf.py
trunk/tools/xsvf_tools/xsvfdump.py
Log:
Add TRST support to xsvf tools. Courtesy of Dick Hollenbeck <di...@so...>
Modified: trunk/tools/xsvf_tools/svf2xsvf.py
===================================================================
--- trunk/tools/xsvf_tools/svf2xsvf.py 2009-01-23 07:02:47 UTC (rev 1356)
+++ trunk/tools/xsvf_tools/svf2xsvf.py 2009-01-23 07:05:04 UTC (rev 1357)
@@ -57,6 +57,11 @@
doCOMMENTs = True # Save XCOMMENTs in the output xsvf file
#doCOMMENTs = False # Save XCOMMENTs in the output xsvf file
+# pick your file encoding
+file_encoding = 'ISO-8859-1'
+#file_encoding = 'utf-8'
+
+
xrepeat = 0 # argument to XREPEAT, gives retry count for masked compares
@@ -74,7 +79,8 @@
(XCOMPLETE,XTDOMASK,XSIR,XSDR,XRUNTEST,hole0,hole1,XREPEAT,XSDRSIZE,XSDRTDO,
XSETSDRMASKS,XSDRINC,XSDRB,XSDRC,XSDRE,XSDRTDOB,XSDRTDOC,
- XSDRTDOE,XSTATE,XENDIR,XENDDR,XSIR2,XCOMMENT,XWAIT,XWAITSTATE,LCOUNT,LDELAY,LSDR) = range(28)
+ XSDRTDOE,XSTATE,XENDIR,XENDDR,XSIR2,XCOMMENT,XWAIT,XWAITSTATE,
+ LCOUNT,LDELAY,LSDR,XTRST) = range(29)
#Note: LCOUNT, LDELAY, and LSDR are Lattice extensions to SVF and provide a way to loop back
# and check a completion status, essentially waiting on a part until it signals that it is done.
@@ -90,6 +96,8 @@
TDO (1);
"""
+#XTRST is an opcode Xilinx seemed to have missed and it comes from the SVF TRST statement.
+
LineNumber = 1
def s_ident(scanner, token): return ("ident", token.upper(), LineNumber)
@@ -127,9 +135,14 @@
re.MULTILINE
)
+# open the file using the given encoding
+file = open( sys.argv[1], encoding=file_encoding )
+
# read all svf file input into string "input"
-input = open( sys.argv[1] ).read()
+input = file.read()
+file.close()
+
# Lexer:
# create a list of tuples containing (tokenType, tokenValue, LineNumber)
tokens = scanner.scan( input )[0]
@@ -368,6 +381,8 @@
enddr_state_allowed = ('DRPAUSE', 'IDLE')
endir_state_allowed = ('IRPAUSE', 'IDLE')
+trst_mode_allowed = ('ON', 'OFF', 'Z', 'ABSENT')
+
enddr_state = IDLE
endir_state = IDLE
@@ -681,6 +696,19 @@
if tokVal != ';':
raise ParseError( tokLn, tokVal, "Expecting ';' after FREQUENCY cycles HZ")
+ elif tokVal == 'TRST':
+ nextTok()
+ if tokVal not in trst_mode_allowed:
+ raise ParseError( tokLn, tokVal, "Expecting 'ON|OFF|Z|ABSENT' after TRST")
+ trst_mode = tokVal
+ nextTok()
+ if tokVal != ';':
+ raise ParseError( tokLn, tokVal, "Expecting ';' after TRST trst_mode")
+ obuf = bytearray( 2 )
+ obuf[0] = XTRST
+ obuf[1] = trst_mode_allowed.index( trst_mode ) # use the index as the binary argument to XTRST opcode
+ output.write( obuf )
+
else:
raise ParseError( tokLn, tokVal, "Unknown token '%s'" % tokVal)
Modified: trunk/tools/xsvf_tools/xsvfdump.py
===================================================================
--- trunk/tools/xsvf_tools/xsvfdump.py 2009-01-23 07:02:47 UTC (rev 1356)
+++ trunk/tools/xsvf_tools/xsvfdump.py 2009-01-23 07:05:04 UTC (rev 1357)
@@ -39,7 +39,8 @@
(XCOMPLETE,XTDOMASK,XSIR,XSDR,XRUNTEST,hole0,hole1,XREPEAT,XSDRSIZE,XSDRTDO,
XSETSDRMASKS,XSDRINC,XSDRB,XSDRC,XSDRE,XSDRTDOB,XSDRTDOC,
- XSDRTDOE,XSTATE,XENDIR,XENDDR,XSIR2,XCOMMENT,XWAIT,XWAITSTATE,LCOUNT,LDELAY,LSDR) = range(28)
+ XSDRTDOE,XSTATE,XENDIR,XENDDR,XSIR2,XCOMMENT,XWAIT,XWAITSTATE,
+ LCOUNT,LDELAY,LSDR,XTRST) = range(29)
(RESET,IDLE,
@@ -51,6 +52,10 @@
"DRSELECT","DRCAPTURE","DRSHIFT","DREXIT1","DRPAUSE","DREXIT2","DRUPDATE",
"IRSELECT","IRCAPTURE","IRSHIFT","IREXIT1","IRPAUSE","IREXIT2","IRUPDATE")
+
+trst_mode_allowed = ('ON', 'OFF', 'Z', 'ABSENT')
+
+
Setsdrmasks = 0
SetsdrmasksOnesCount = 0
@@ -229,6 +234,14 @@
tdo = bytes2hexString( f, Xsdrsize )
print("LSDR 0x%s 0x%s" % (tdi, tdo) )
+ elif op == XTRST:
+ # the argument is a single byte and it is the index into "trst_mode_allowed"
+ trst_mode = ReadByte(f)
+ if trst_mode <= 3:
+ print("TRST %s" % trst_mode_allowed[trst_mode] )
+ else:
+ print("TRST 0x%02X" % trst_mode );
+
else:
print("UNKNOWN op 0x%02X %d" % (op, op))
exit(1)
|
|
From: <kc...@ma...> - 2009-01-23 08:03:00
|
Author: kc8apf
Date: 2009-01-23 08:02:47 +0100 (Fri, 23 Jan 2009)
New Revision: 1356
Modified:
trunk/src/jtag/vsllink.c
Log:
vsllink support for stable clocks by Simon Qian <sim...@Si...>
Modified: trunk/src/jtag/vsllink.c
===================================================================
--- trunk/src/jtag/vsllink.c 2009-01-21 04:16:20 UTC (rev 1355)
+++ trunk/src/jtag/vsllink.c 2009-01-23 07:02:47 UTC (rev 1356)
@@ -44,7 +44,7 @@
#endif
#ifdef _DEBUG_JTAG_IO_
-#define DEBUG_JTAG_IO(expr ...) LOG_DEBUG(expr)
+#define DEBUG_JTAG_IO(expr ...) LOG_DEBUG(expr)
#else
#define DEBUG_JTAG_IO(expr ...)
#endif
@@ -54,7 +54,7 @@
u8 vsllink_bulkout;
u8 vsllink_bulkin;
-#define VSLLINK_USB_TIMEOUT 5000
+#define VSLLINK_USB_TIMEOUT 10000
static int VSLLINK_BufferSize = 1024;
@@ -76,7 +76,7 @@
#define VSLLINK_CMD_HW_SWDCMD 0xA2
#define VSLLINK_CMDJTAGSEQ_TMSBYTE 0x00
-#define VSLLINK_CMDJTAGSEQ_TMS0BYTE 0x40
+#define VSLLINK_CMDJTAGSEQ_TMSCLOCK 0x40
#define VSLLINK_CMDJTAGSEQ_SCAN 0x80
#define VSLLINK_CMDJTAGSEQ_CMDMSK 0xC0
@@ -92,7 +92,7 @@
#define JTAG_PINMSK_TDO (1 << 7)
-#define VSLLINK_TAP_MOVE(from, to) VSLLINK_tap_move[tap_move_map[from]][tap_move_map[to]]
+#define VSLLINK_TAP_MOVE(from, to) VSLLINK_tap_move[tap_move_map[from]][tap_move_map[to]]
/* VSLLINK_tap_move[i][j]: tap movement command to go from state i to state j
* 0: Test-Logic-Reset
@@ -206,6 +206,7 @@
void vsllink_state_move(void);
void vsllink_path_move(int num_states, enum tap_state *path);
void vsllink_runtest(int num_cycles);
+void vsllink_stableclocks(int num_cycles, int tms);
void vsllink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command);
void vsllink_reset(int trst, int srst);
void vsllink_simple_command(u8 command);
@@ -257,7 +258,7 @@
enum scan_type type;
u8 *buffer;
- DEBUG_JTAG_IO("--------------------------------------------------------------------------------");
+ DEBUG_JTAG_IO("--------------------------------- vsllink -------------------------------------");
vsllink_usb_out_buffer[0] = VSLLINK_CMD_HW_JTAGSEQCMD;
vsllink_usb_out_buffer_idx = 3;
@@ -332,7 +333,7 @@
DEBUG_JTAG_IO("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
vsllink_tap_execute();
-
+
if (cmd->cmd.reset->trst == 1)
{
cur_state = TAP_RESET;
@@ -348,9 +349,33 @@
vsllink_tap_execute();
jtag_sleep(cmd->cmd.sleep->us);
break;
-
+
+ case JTAG_STABLECLOCKS:
+ DEBUG_JTAG_IO("add %d clocks", cmd->cmd.stableclocks->num_cycles);
+ switch(cur_state)
+ {
+ case TAP_RESET:
+ // tms should be '1' to stay in TAP_RESET mode
+ scan_size = 1;
+ break;
+ case TAP_DRSHIFT:
+ case TAP_IDLE:
+ case TAP_DRPAUSE:
+ case TAP_IRSHIFT:
+ case TAP_IRPAUSE:
+ // in other mode, tms should be '0'
+ scan_size = 0;
+ break; /* above stable states are OK */
+ default:
+ LOG_ERROR( "jtag_add_clocks() was called with TAP in non-stable state \"%s\"",
+ jtag_state_name(cur_state) );
+ exit(-1);
+ }
+ vsllink_stableclocks(cmd->cmd.stableclocks->num_cycles, scan_size);
+ break;
+
default:
- LOG_ERROR("BUG: unknown JTAG command type encountered");
+ LOG_ERROR("BUG: unknown JTAG command type encountered: %d", cmd->type);
exit(-1);
}
cmd = cmd->next;
@@ -752,92 +777,94 @@
}
}
-void vsllink_runtest(int num_cycles)
+void vsllink_stableclocks(int num_cycles, int tms)
{
int tms_len;
- enum tap_state saved_end_state = end_state;
+ u16 tms_append_byte;
- if (cur_state != TAP_IDLE)
+ if (vsllink_tms_data_len > 0)
{
- // enter into IDLE state
- vsllink_end_state(TAP_IDLE);
- vsllink_state_move();
- }
- else
- {
- // cur_state == TAP_IDLE
- if (vsllink_tms_data_len > 0)
+ // there are vsllink_tms_data_len more tms bits to be shifted
+ // so there are vsllink_tms_data_len + num_cycles tms bits in all
+ tms_len = vsllink_tms_data_len + num_cycles;
+ if (tms > 0)
{
- // there are vsllink_tms_data_len more tms bits to be shifted
- // so there are vsllink_tms_data_len + num_cycles tms bits in all
- tms_len = vsllink_tms_data_len + num_cycles;
- if (tms_len <= 16)
+ // append '1' for tms
+ tms_append_byte = (u16)((((1 << num_cycles) - 1) << vsllink_tms_data_len) & 0xFFFF);
+ }
+ else
+ {
+ // append '0' for tms
+ tms_append_byte = 0;
+ }
+ if (tms_len <= 16)
+ {
+ // merge into last tms shift
+ if (tms_len < 8)
{
- // merge into last tms shift
- if (tms_len < 8)
+ // just add to vsllink_tms_data_len
+ // same result if tun through
+ //vsllink_tms_data_len += num_cycles;
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] |= (u8)(tms_append_byte & 0xFF);
+ }
+ else if (tms_len == 8)
+ {
+ // end last tms shift command
+ // just reduce it, and append last tms byte
+ (*vsllink_tms_cmd_pos)--;
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] |= (u8)(tms_append_byte & 0xFF);
+ }
+ else if (tms_len < 16)
+ {
+ if ((*vsllink_tms_cmd_pos & VSLLINK_CMDJTAGSEQ_LENMSK) < VSLLINK_CMDJTAGSEQ_LENMSK)
{
- // just add to vsllink_tms_data_len
- // same result if tun through
- //vsllink_tms_data_len += num_cycles;
+ // every tms shift command can contain VSLLINK_CMDJTAGSEQ_LENMSK + 1 bytes in most
+ // there is enought tms length in the current tms shift command
+ // increase the tms byte length by 1 and set the last byte to 0
+ (*vsllink_tms_cmd_pos)++;
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] |= (u8)(tms_append_byte & 0xFF);
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = (u8)(tms_append_byte >> 8);
}
- else if (tms_len == 8)
+ else
{
- // end last tms shift command
- // just reduce it, no need to append_tms
+ // every tms shift command can contain VSLLINK_CMDJTAGSEQ_LENMSK + 1 bytes in most
+ // not enough tms length in the current tms shift command
+ // so a new command should be added
+ // first decrease byte length of last tms shift command
(*vsllink_tms_cmd_pos)--;
- vsllink_usb_out_buffer_idx++;
+ // append last tms byte and move the command pointer to the next empty position
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] |= (u8)(tms_append_byte & 0xFF);
+ // add new command(3 bytes)
+ vsllink_tap_ensure_space(0, 3);
+ vsllink_tms_cmd_pos = &vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx];
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMSBYTE | 1;
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = (u8)(tms_append_byte >> 8);
}
- else if (tms_len < 16)
- {
- if ((*vsllink_tms_cmd_pos & VSLLINK_CMDJTAGSEQ_LENMSK) < VSLLINK_CMDJTAGSEQ_LENMSK)
- {
- // every tms shift command can contain VSLLINK_CMDJTAGSEQ_LENMSK + 1 bytes in most
- // there is enought tms length in the current tms shift command
- // increase the tms byte length by 1 and set the last byte to 0
- (*vsllink_tms_cmd_pos)++;
- vsllink_usb_out_buffer_idx++;
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = 0;
- }
- else
- {
- // every tms shift command can contain VSLLINK_CMDJTAGSEQ_LENMSK + 1 bytes in most
- // not enough tms length in the current tms shift command
- // so a new command should be added
- // first decrease byte length of last tms shift command
- (*vsllink_tms_cmd_pos)--;
- // move the command pointer to the next empty position
- vsllink_usb_out_buffer_idx++;
- // add new command(3 bytes)
- vsllink_tap_ensure_space(0, 3);
- vsllink_tms_cmd_pos = &vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx];
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMSBYTE | 1;
- vsllink_usb_out_buffer[++vsllink_usb_out_buffer_idx] = 0;
- }
- }
- else if (tms_len == 16)
- {
- // end last tms shift command
- vsllink_usb_out_buffer_idx++;
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = 0;
- }
-
- vsllink_tms_data_len = (vsllink_tms_data_len + num_cycles) & 7;
- if (vsllink_tms_data_len == 0)
- {
- vsllink_tms_cmd_pos = NULL;
- }
- num_cycles = 0;
}
- else
+ else if (tms_len == 16)
{
- vsllink_usb_out_buffer_idx++;
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = 0;
+ // end last tms shift command
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] |= (u8)(tms_append_byte & 0xFF);
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = (u8)(tms_append_byte >> 8);
+ }
- num_cycles -= 16 - vsllink_tms_data_len;
- vsllink_tms_data_len = 0;
+ vsllink_tms_data_len = tms_len & 7;
+ if (vsllink_tms_data_len == 0)
+ {
vsllink_tms_cmd_pos = NULL;
}
+ num_cycles = 0;
}
+ else
+ {
+ // more shifts will be needed
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] |= (u8)(tms_append_byte & 0xFF);
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = (u8)(tms_append_byte >> 8);
+
+ num_cycles -= 16 - vsllink_tms_data_len;
+ vsllink_tms_data_len = 0;
+ vsllink_tms_cmd_pos = NULL;
+ }
}
// from here vsllink_tms_data_len == 0 or num_cycles == 0
@@ -860,7 +887,15 @@
vsllink_tap_ensure_space(1, 5);
// if tms_len > 0, vsllink_tms_data_len == 0
// so just add new command
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMS0BYTE;
+ // LSB of the command byte is the tms value when do the shifting
+ if (tms > 0)
+ {
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMSCLOCK | 1;
+ }
+ else
+ {
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMSCLOCK;
+ }
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = (tms_len >> 0) & 0xff;
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = (tms_len >> 8) & 0xff;
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = (tms_len >> 16) & 0xff;
@@ -873,21 +908,43 @@
if (tms_len > 0xFFFF)
{
vsllink_tap_execute();
- vsllink_usb_out_buffer[0] = VSLLINK_CMD_HW_JTAGSEQCMD;
- vsllink_usb_out_buffer_idx = 3;
}
}
+ // post-process
vsllink_tms_data_len = num_cycles & 7;
if (vsllink_tms_data_len > 0)
{
vsllink_tap_ensure_space(0, 3);
vsllink_tms_cmd_pos = &vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx];
vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx++] = VSLLINK_CMDJTAGSEQ_TMSBYTE | 1;
- vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = 0;
+ if (tms > 0)
+ {
+ // append '1' for tms
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = (1 << vsllink_tms_data_len) - 1;
+ }
+ else
+ {
+ // append '0' for tms
+ vsllink_usb_out_buffer[vsllink_usb_out_buffer_idx] = 0x00;
+ }
}
}
+}
+void vsllink_runtest(int num_cycles)
+{
+ enum tap_state saved_end_state = end_state;
+
+ if (cur_state != TAP_IDLE)
+ {
+ // enter into IDLE state
+ vsllink_end_state(TAP_IDLE);
+ vsllink_state_move();
+ }
+
+ vsllink_stableclocks(num_cycles, 0);
+
// post-process
// set end_state
vsllink_end_state(saved_end_state);
@@ -1122,8 +1179,6 @@
if (scans > available_scans || bytes > available_bytes)
{
vsllink_tap_execute();
- vsllink_usb_out_buffer[0] = VSLLINK_CMD_HW_JTAGSEQCMD;
- vsllink_usb_out_buffer_idx = 3;
}
}
@@ -1238,7 +1293,10 @@
vsllink_tap_init();
}
-
+
+ vsllink_usb_out_buffer[0] = VSLLINK_CMD_HW_JTAGSEQCMD;
+ vsllink_usb_out_buffer_idx = 3;
+
return ERROR_OK;
}
|
|
From: <kc...@ma...> - 2009-01-21 05:16:35
|
Author: kc8apf
Date: 2009-01-21 05:16:20 +0100 (Wed, 21 Jan 2009)
New Revision: 1355
Added:
branches/openocd-0.1/contrib/openocd.udev
tags/openocd-0.1.0/contrib/openocd.udev
Modified:
branches/openocd-0.1/Makefile.am
branches/openocd-0.1/configure.in
branches/openocd-0.1/doc/openocd.texi
tags/openocd-0.1.0/Makefile.am
tags/openocd-0.1.0/configure.in
tags/openocd-0.1.0/doc/openocd.texi
Log:
Merge r1351, r1352, and r1354 into 0.1.x and 0.1.0
Modified: branches/openocd-0.1/Makefile.am
===================================================================
--- branches/openocd-0.1/Makefile.am 2009-01-21 04:13:16 UTC (rev 1354)
+++ branches/openocd-0.1/Makefile.am 2009-01-21 04:16:20 UTC (rev 1355)
@@ -6,7 +6,8 @@
contrib/libdcc/dcc_stdio.c \
contrib/libdcc/dcc_stdio.h \
contrib/libdcc/example.c \
- contrib/libdcc/README
+ contrib/libdcc/README \
+ contrib/openocd.udev
SUBDIRS = src doc
Modified: branches/openocd-0.1/configure.in
===================================================================
--- branches/openocd-0.1/configure.in 2009-01-21 04:13:16 UTC (rev 1354)
+++ branches/openocd-0.1/configure.in 2009-01-21 04:16:20 UTC (rev 1355)
@@ -35,7 +35,7 @@
if test $build_release = no; then
# check we can find guess-rev.sh
- AC_CHECK_FILE("guess-rev.sh", build_release=no, build_release=yes)
+ AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
fi
# We are not *ALWAYS* being installed in the standard place.
Copied: branches/openocd-0.1/contrib/openocd.udev (from rev 1354, trunk/contrib/openocd.udev)
Modified: branches/openocd-0.1/doc/openocd.texi
===================================================================
--- branches/openocd-0.1/doc/openocd.texi 2009-01-21 04:13:16 UTC (rev 1354)
+++ branches/openocd-0.1/doc/openocd.texi 2009-01-21 04:16:20 UTC (rev 1355)
@@ -331,7 +331,12 @@
@itemize @bullet
@item
-@option{--enable-gccwarnings} - enable extra gcc warnings during build
+@option{--enable-gccwarnings} - enable extra gcc warnings during build.
+Default is enabled.
+@item
+@option{--enable-release} - enable building of a openocd release, generally
+this is for developers. It simply omits the svn version string when the
+openocd @option{-v} is executed.
@end itemize
@node JTAG Hardware Dongles
Modified: tags/openocd-0.1.0/Makefile.am
===================================================================
--- tags/openocd-0.1.0/Makefile.am 2009-01-21 04:13:16 UTC (rev 1354)
+++ tags/openocd-0.1.0/Makefile.am 2009-01-21 04:16:20 UTC (rev 1355)
@@ -6,7 +6,8 @@
contrib/libdcc/dcc_stdio.c \
contrib/libdcc/dcc_stdio.h \
contrib/libdcc/example.c \
- contrib/libdcc/README
+ contrib/libdcc/README \
+ contrib/openocd.udev
SUBDIRS = src doc
Modified: tags/openocd-0.1.0/configure.in
===================================================================
--- tags/openocd-0.1.0/configure.in 2009-01-21 04:13:16 UTC (rev 1354)
+++ tags/openocd-0.1.0/configure.in 2009-01-21 04:16:20 UTC (rev 1355)
@@ -35,7 +35,7 @@
if test $build_release = no; then
# check we can find guess-rev.sh
- AC_CHECK_FILE("guess-rev.sh", build_release=no, build_release=yes)
+ AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
fi
# We are not *ALWAYS* being installed in the standard place.
Copied: tags/openocd-0.1.0/contrib/openocd.udev (from rev 1354, trunk/contrib/openocd.udev)
Modified: tags/openocd-0.1.0/doc/openocd.texi
===================================================================
--- tags/openocd-0.1.0/doc/openocd.texi 2009-01-21 04:13:16 UTC (rev 1354)
+++ tags/openocd-0.1.0/doc/openocd.texi 2009-01-21 04:16:20 UTC (rev 1355)
@@ -331,7 +331,12 @@
@itemize @bullet
@item
-@option{--enable-gccwarnings} - enable extra gcc warnings during build
+@option{--enable-gccwarnings} - enable extra gcc warnings during build.
+Default is enabled.
+@item
+@option{--enable-release} - enable building of a openocd release, generally
+this is for developers. It simply omits the svn version string when the
+openocd @option{-v} is executed.
@end itemize
@node JTAG Hardware Dongles
|
|
From: <kc...@ma...> - 2009-01-21 05:13:28
|
Author: kc8apf
Date: 2009-01-21 05:13:16 +0100 (Wed, 21 Jan 2009)
New Revision: 1354
Added:
trunk/contrib/openocd.udev
Modified:
trunk/Makefile.am
Log:
Add udev rules to contrib. Courtesy of Uwe Hermann <uw...@he...>
Modified: trunk/Makefile.am
===================================================================
--- trunk/Makefile.am 2009-01-20 16:07:10 UTC (rev 1353)
+++ trunk/Makefile.am 2009-01-21 04:13:16 UTC (rev 1354)
@@ -6,7 +6,8 @@
contrib/libdcc/dcc_stdio.c \
contrib/libdcc/dcc_stdio.h \
contrib/libdcc/example.c \
- contrib/libdcc/README
+ contrib/libdcc/README \
+ contrib/openocd.udev
SUBDIRS = src doc
Added: trunk/contrib/openocd.udev
===================================================================
--- trunk/contrib/openocd.udev 2009-01-20 16:07:10 UTC (rev 1353)
+++ trunk/contrib/openocd.udev 2009-01-21 04:13:16 UTC (rev 1354)
@@ -0,0 +1,25 @@
+BUS!="usb", ACTION!="add", SUBSYSTEM!=="usb_device", GOTO="openocd_rules_end"
+
+# Olimex ARM-USB-OCD
+SYSFS{idVendor}=="15ba", SYSFS{idProduct}=="0003", MODE="664", GROUP="plugdev"
+
+# Olimex ARM-USB-OCD-TINY
+SYSFS{idVendor}=="15ba", SYSFS{idProduct}=="0004", MODE="664", GROUP="plugdev"
+
+# USBprog with OpenOCD firmware
+SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c63", MODE="664", GROUP="plugdev"
+
+# Amontec JTAGkey
+SYSFS{idVendor}=="0403", SYSFS{idProduct}=="cff8", MODE="664", GROUP="plugdev"
+
+# Amontec JTAGkey-HiSpeed
+SYSFS{idVendor}=="0fbb", SYSFS{idProduct}=="1000", MODE="664", GROUP="plugdev"
+
+# IAR J-Link USB
+SYSFS{idVendor}=="1366", SYSFS{idProduct}=="0101", MODE="664", GROUP="plugdev"
+
+# Raisonance RLink
+SYSFS{idVendor}=="138e", SYSFS{idProduct}=="9000", MODE="664", GROUP="plugdev"
+
+LABEL="openocd_rules_end"
+
|